+++ /dev/null
-INTRODUCTION
-============
-
-This file describes the basic steps to install Roundcube Webmail on your
-web server. For additional information, please also consult the project's
-wiki page at http://trac.roundcube.net/wiki
-
-
-REQUIREMENTS
-============
-
-* The Apache, Lighttpd, Cherokee or Hiawatha web server
-* .htaccess support allowing overrides for DirectoryIndex
-* PHP Version 5.2.1 or greater including
- - PCRE, DOM, JSON, XML, Session, Sockets (required)
- - libiconv (recommended)
- - mbstring, fileinfo, mcrypt (optional)
-* PEAR packages distributed with Roundcube or external:
- - MDB2 2.5.0 or newer
- - Mail_Mime 1.8.1 or newer
- - Net_SMTP 1.4.2 or newer
- - Net_IDNA2 0.1.1 or newer
- - Auth_SASL 1.0.3 or newer
-* php.ini options (see .htaccess file):
- - error_reporting E_ALL & ~E_NOTICE (or lower)
- - memory_limit > 16MB (increase as suitable to support large attachments)
- - file_uploads enabled (for attachment upload features)
- - session.auto_start disabled
- - zend.ze1_compatibility_mode disabled
- - suhosin.session.encrypt disabled
- - mbstring.func_overload disabled
- - magic_quotes_runtime disabled
-* PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
-* A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine
- or the SQLite extension for PHP
-* One of the above databases with permission to create tables
-* An SMTP server (recommended) or PHP configured for mail delivery
-
-
-INSTALLATION
-============
-
-1. Decompress and put this folder somewhere inside your document root
-2. Make sure that the following directories (and the files within)
- are writable by the webserver
- - /temp
- - /logs
-3. Create a new database and a database user for Roundcube (see DATABASE SETUP)
-4. Point your browser to http://url-to-roundcube/installer/
-5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
-6. After creating and testing the configuration, remove the installer directory
-7. Done!
-
-
-CONFIGURATION HINTS
-===================
-
-Roundcube writes internal errors to the 'errors' log file located in the logs
-directory which can be configured in config/main.inc.php. If you want ordinary
-PHP errors to be logged there as well, enable the 'php_value error_log' line
-in the .htaccess file and set the path to the log file accordingly.
-
-By default the session_path settings of PHP are not modified by Roundcube.
-However if you want to limit the session cookies to the directory where
-Roundcube resides you can uncomment and configure the according line
-in the .htaccess file.
-
-
-DATABASE SETUP
-==============
-
-Note: Database for Roundcube must use UTF-8 character set.
-
-* MySQL
--------
-Setting up the mysql database can be done by creating an empty database,
-importing the table layout and granting the proper permissions to the
-roundcube user. Here is an example of that procedure:
-
-# mysql
-> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
- IDENTIFIED BY 'password';
-> quit
-
-# mysql roundcubemail < SQL/mysql.initial.sql
-
-Note 1: 'password' is the master password for the roundcube user. It is strongly
-recommended you replace this with a more secure password. Please keep in
-mind: You need to specify this password later in 'config/db.inc.php'.
-
-
-* SQLite
---------
-You need sqlite 2 (preferably 2.8) to setup the sqlite db
-(sqlite 3.x also doesn't work at the moment). Here is
-an example how you can setup the sqlite.db for roundcube:
-
-# sqlite -init SQL/sqlite.initial.sql sqlite.db
-Loading resources from SQL/sqlite.initial.sql
-SQLite version 2.8.16
-Enter ".help" for instructions
-sqlite> .exit
-# chmod o+rw sqlite.db
-
-Make sure your configuration points to the sqlite.db file and that the
-webserver can write to the file and the directory containing the file.
-
-
-* PostgreSQL
-------------
-To use Roundcube with PostgreSQL support you have to follow these
-simple steps, which have to be done as the postgres system user (or
-which ever is the database superuser):
-
-$ createuser roundcube
-$ createdb -O roundcube -E UNICODE roundcubemail
-$ psql roundcubemail
-
-roundcubemail =# ALTER USER roundcube WITH PASSWORD 'the_new_password';
-roundcubemail =# \c - roundcube
-roundcubemail => \i SQL/postgres.initial.sql
-
-All this has been tested with PostgreSQL 8.x and 7.4.x. Older
-versions don't have a -O option for the createdb, so if you are
-using that version you'll have to change ownership of the DB later.
-
-
-Database cleaning
------------------
-Do keep your database slick and clean we recommend to periodically execute
-bin/cleandb.sh which finally removes all records that are marked as deleted.
-Best solution is to install a cronjob running this script daily.
-
-
-
-MANUAL CONFIGURATION
-====================
-
-First of all, rename the files config/*.inc.php.dist to config/*.inc.php.
-You can then change these files according to your environment and your needs.
-Details about the config parameters can be found in the config files.
-See http://trac.roundcube.net/wiki/Howto_Install for even more guidance.
-
-You can also modify the default .htaccess file. This is necessary to
-increase the allowed size of file attachments, for example:
- php_value upload_max_filesize 2M
-
-
-UPGRADING
-=========
-
-If you already have a previous version of Roundcube installed,
-please refer to the instructions in UPGRADING guide.
-
-
-OPTIMISING
-==========
-
-There are two forms of optimisation here, compression and caching, both aimed
-at increasing an end user's experience using Roundcube Webmail. Compression
-allows the static web pages to be delivered with less bandwidth. The index.php
-of Roundcube Webmail already enables compression on its output. The settings
-below allow compression to occur for all static files. Caching sets HTTP
-response headers that enable a user's web client to understand what is static
-and how to cache it.
-
-The caching directives used are:
- * Etags - sets at tag so the client can request is the page has changed
- * Cache-control - defines the age of the page and that the page is 'public'
- This enables clients to cache javascript files that don't have private
- information between sessions even if using HTTPS. It also allows proxies
- to share the same cached page between users.
- * Expires - provides another hint to increase the lifetime of static pages.
-
-For more information refer to RFC 2616.
-
-Side effects:
--------------
-These directives are designed for production use. If you are using this in
-a development environment you may get horribly confused if your webclient
-is caching stuff that you changed on the server. Disabling the expires
-parts below should save you some grief.
-
-If you are changing the skins, it is recommended that you copy content to
-a different directory apart from 'default'.
-
-Apache:
--------
-To enable these features in apache the following modules need to be enabled:
- * mod_deflate
- * mod_expires
- * mod_headers
-
-The optimisation is already included in the .htaccess file in the top
-directory of your installation.
-
-If you are using Apache version 2.2.9 and later, in the .htaccess file
-change the 'append' word to 'merge' for a more correct response. Keeping
-as 'append' shouldn't cause any problems though changing to merge will
-eliminate the possibility of duplicate 'public' headers in Cache-control.
-
-Lighttpd:
----------
-With Lightty the addition of Expire: tags by mod_expire is incompatible with
-the addition of "Cache-control: public". Using Cache-control 'public' is
-used below as it is assumed to give a better caching result.
-
-Enable modules in server.modules:
- "mod_setenv"
- "mod_compress"
-
-Mod_compress is a server side cache of compressed files to improve its performance.
-
-$HTTP["host"] == "www.example.com" {
-
- static-file.etags = "enable"
- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
- etag.use-mtime = "enable"
-
- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
- $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
- setenv.add-response-header = ( "Cache-Control" => "public, max-age=2592000")
- }
-
- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
- # set compress.cache-dir to somewhere outside the docroot.
- compress.cache-dir = var.statedir + "/cache/compress"
-
- compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
-}
-
-
--- /dev/null
+Submit-As: roundcube
+Report-With: roundcube-core
--- /dev/null
+roundcube (0.7.1-2) unstable; urgency=high
+
+ * Remove roundcube-sqlite package since php5 package does not ship
+ SQLite 2.x support anymore. Roundcube is incompatible with SQLite 3.x.
+ Closes: #657092.
+ * Urgency set to high for php5 migration into testing.
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 07 Feb 2012 17:37:52 +0100
+
+roundcube (0.7.1-1) unstable; urgency=low
+
+ * New upstream version. Closes: #656093.
+ * Add Dutch debconf translation, thanks to Jeroen Schot.
+ Closes: #656082.
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 17 Jan 2012 08:57:11 +0100
+
+roundcube (0.7-3) unstable; urgency=low
+
+ * Ship jqueryui plugin. Closes: #653274.
+ + Depend on libjs-jquery-ui package (instead of builtin copy).
+ + Conflict with versions of roundcube-plugins-extra providing this
+ plugin.
+ * More SQL fixes on update. Closes: #654297.
+
+ -- Vincent Bernat <bernat@debian.org> Mon, 02 Jan 2012 21:45:42 +0100
+
+roundcube (0.7-2) unstable; urgency=low
+
+ * Fix SQLite upgrade file. Closes: #653217.
+ * Also fixes MySQL upgrade file and SQLite regular file.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 25 Dec 2011 16:14:04 +0100
+
+roundcube (0.7-1) unstable; urgency=low
+
+ * New upstream version. Closes: #652564.
+ + Does not ship SWF with TinyMCE anymore.
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 23 Dec 2011 22:04:39 +0100
+
+roundcube (0.6+dfsg-1) unstable; urgency=low
+
+ * New upstream version. Closes: #643707.
+ + Repack to remove SWF file without source from TinyMCE.
+ + Add SQL upgrade procedures.
+ + Add new plugins: acl, enigma and newmail_notifier.
+ + Update jQuery dependency to jQuery 1.6.4.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 02 Oct 2011 15:20:57 +0200
+
+roundcube (0.5.4+dfsg-1) unstable; urgency=high
+
+ [ Vincent Bernat ]
+ * New upstream version.
+ + Fix XSS vulnerability in UI messages (Closes: #641996).
+ * Switch to Git for version control thanks to Jérémy
+ Bobbio. debian/control updated.
+ * Ship INSTALL. Closes: #633698.
+
+ [ Jérémy Bobbio ]
+ * Re-add 'password' plugin to roundcube-plugins.
+
+ -- Vincent Bernat <bernat@debian.org> Wed, 13 Jul 2011 08:33:01 +0200
+
+roundcube (0.5.3+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ + Fix identities "reply-to" and "bcc" fields have a bogus value when
+ left empty (Closes: #628553).
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 10 Jun 2011 22:48:57 +0200
+
+roundcube (0.5.2+dfsg-1) unstable; urgency=low
+
+ * New upstream release
+ * Update logrotate configuration. Closes: #619410.
+ * Make debian-db.php owned by root. This really closes: #608976.
+ * Bump Standards-Version. No changes required.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 24 Apr 2011 00:35:34 +0200
+
+roundcube (0.5.1+dfsg-7) unstable; urgency=low
+
+ * Make dbconfig-common use sqlite by default to ensure that the package
+ can be configured non-interactively in most cases. Closes: #617754.
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 11 Mar 2011 09:08:32 +0100
+
+roundcube (0.5.1+dfsg-6) unstable; urgency=low
+
+ * Handle incorrect upgrade from 0.3.1-6 when "changed" column already
+ exists for table "identities". Closes: #617312.
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 08 Mar 2011 07:37:56 +0100
+
+roundcube (0.5.1+dfsg-5) unstable; urgency=low
+
+ * Don't use awk. Use plain shell to modify main.inc.php.
+ Closes: #616074.
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 04 Mar 2011 20:46:57 +0100
+
+roundcube (0.5.1+dfsg-4) unstable; urgency=low
+
+ * Fix debian/watch to remove "+dfsg" suffix.
+ * Use awk instead of sed to modify main.inc.php. Closes: #615277.
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 01 Mar 2011 19:59:00 +0100
+
+roundcube (0.5.1+dfsg-3) unstable; urgency=low
+
+ * Install show_additional_headers plugin in roundcube-plugins package.
+ * Use dbconfig-common to force some upgrade commands using some ugly
+ hacks. This should fix any remaining problems with MySQL
+ upgrade. Closes: #613586.
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 18 Feb 2011 22:04:12 +0100
+
+roundcube (0.5.1+dfsg-2) unstable; urgency=low
+
+ * Remove all "ADD INDEX" from MySQL 0.5-1 upgrade file and put them in
+ postinst script. If you have a problem during the upgrade, please, let
+ me know. This upload is only done to prevent users who did not upgrade
+ to 0.5 yet to have a problem during their upgrade. If you already
+ upgraded to 0.5 and if the upgrade failed (or if some feature are
+ missing like identities management), please look at bug #613586.
+
+ -- Vincent Bernat <bernat@debian.org> Wed, 16 Feb 2011 20:54:48 +0100
+
+roundcube (0.5.1+dfsg-1) unstable; urgency=low
+
+ * Add plugins. Closes: #550454.
+ * Rewrite (and update) of debian/copyright.
+ * Use of yui-compressor to re-minify Javascript files.
+ * Drop correct-magic-path.patch: libmagic1 now provides a symlink to the
+ correct location since 4.24-4.
+ * Repack orig.tar.gz to remove swf file shipped with TinyMCE with no
+ sources available.
+
+ -- Vincent Bernat <bernat@debian.org> Mon, 14 Feb 2011 22:33:51 +0100
+
+roundcube (0.5.1-1) unstable; urgency=low
+
+ * New upstream version. Some bugs are corrected in this release or in a
+ previous release:
+ + when switching to HTML mode, content type is now correctly set.
+ Closes: #611321.
+ + header delimiters handling has been fixed in 0.5.
+ Closes: #603489.
+ * Don't assign "skins" directory to www-data. Closes: #612552.
+ * Add instructions on how to install and upgrade when not using
+ dbconfig-common. We do not ship UPGRADING file any more since it is
+ misleading. Closes: #612511.
+ * Fix MySQL indexes if upgrading from 0.5-2 or lesser. Closes: #610725.
+ * Rework how symlinks work. The only directory to use is
+ /var/lib/roundcube. We use symlink from /usr/share/roundcube to
+ /var/lib/roundcube and not the other way. Moreover, plugins and skins
+ are also symlinked. A user should be able to add plugins and skins in
+ /var/lib/roundcube while default ones are in
+ /usr/share/roundcube. Closes: #612553.
+
+ -- Vincent Bernat <bernat@debian.org> Wed, 09 Feb 2011 07:32:42 +0100
+
+roundcube (0.5-2) experimental; urgency=low
+
+ * If 0.3.1 was installed from scratch, upgrade does not work on MySQL
+ and PostgreSQL because we try to create an index which already
+ exists. With SQLite, the error is ignored, no fix needed. When using
+ PostgreSQL, fix this by dropping the index if it already
+ exists. Nothing similar seems to exist with MySQL. Therefore, just
+ don't create the index. We need to handle this later. See bug
+ #610725. Not closing.
+
+ -- Vincent Bernat <bernat@debian.org> Fri, 21 Jan 2011 21:44:05 +0100
+
+roundcube (0.5-1) experimental; urgency=low
+
+ * New upstream release. Closes: #592312.
+ + Drop patches included upstream (DNS prefetching, jQuery 1.4
+ handling, email address validation, duplicate headers, incorrectly
+ formatted received headers). Adapt other patches. One of the patch
+ now correctly states to use dpkg-reconfigure roundcube-core.
+ Closes: #608977.
+ + Update SQL commands to use to upgrade database.
+ That also closes: #602922. Unfortunately, the user may get some
+ harmless error messages because there is no way to know if
+ 0.3.1 was installed from scratch or upgraded from 0.3.
+ + Update dependencies to match INSTALL file. Only exception is the
+ use of Mail_Mime 1.8.0 in place of 1.8.1 which is not available in
+ Debian. We depends on jQuery 1.4.2 because 1.4.4 is not available in
+ Debian.
+ + All folders are correctly checked since 0.4. Closes: #552430.
+ + Also, closes: #553194 since it seems to have been fixed too.
+ + There is also the possibility to not top-quote since 0.4.
+ Closes: #491063.
+ + Closes: #602144. Also fixed.
+ * Move .htaccess to /etc/roundcube and use a symlink (Closes: #591369).
+ * Don't let www-data overwrite debian-db.php. Closes: #608976.
+ * Bump Standards-Version. No changes required.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 15 Jan 2011 12:40:27 +0100
+
+roundcube (0.3.1-6) unstable; urgency=low
+
+ * Update Arabic debconf translation, thanks to Ossama Khayat.
+ Closes: #596181.
+ * Update Portuguese debconf translation, thanks to Christian Perrier.
+ Closes: #599575.
+ * Add a patch to avoid duplicate boundaries in headers when adding an
+ attachment. Closes: #599586.
+
+ -- Vincent Bernat <bernat@debian.org> Mon, 18 Oct 2010 23:14:37 +0200
+
+roundcube (0.3.1-5) unstable; urgency=low
+
+ * Depends on php-mail-mime 1.7.0 or more recent to handle correctly
+ 'mime_param_folding' directive. Closes: #588295.
+ * Add Danish debconf translation, thanks to Joe Dalton.
+ Closes: #593271.
+ * Add a patch to fix Received header to behave better with Spam
+ Assassin. Closes: #595204.
+
+ -- Vincent Bernat <bernat@debian.org> Thu, 02 Sep 2010 07:54:58 +0200
+
+roundcube (0.3.1-4) unstable; urgency=low
+
+ * Update README.Debian to state that the variable to modify is
+ 'htmleditor' instead of 'enable_htmleditor'. Thanks to Hans
+ Spaans. Closes: #575556.
+ * Add Brazilian Portuguese debconf translation, thanks to Eder
+ L. Marques. Closes: #581745.
+ * Switch default encoding to UTF-8 instead of ISO-8859-1.
+ Closes: #588084.
+ * Add more explanations on how to install roundcube in a Debian system
+ in README.Debian. Closes: #584458, #582894.
+ * Bump Standards-Version. No changes required.
+ * Switch to 3.0 (quilt) format.
+ * Use Breaks instead of Conflicts to move files from older roundcube
+ installations.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 17 Jul 2010 17:23:30 +0200
+
+roundcube (0.3.1-3) unstable; urgency=high
+
+ * RFC 5321, section 4.5.3.1, asks to not impose any limits on length if
+ possible. We respect this by dropping limitation of the local-part of
+ an email address. Closes: #568360, #568537.
+ * Suggests php-auth-sasl to enable use of SASL mechanisms for mail
+ servers. Closes: #567550.
+ * Disable DNS prefetching to avoid information leakage through links
+ embedded in messages. This fixes CVE-2010-0464. Closes: #569660.
+ * Bump Standards-Version. No changes required.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 13 Feb 2010 10:21:49 +0100
+
+roundcube (0.3.1-2) unstable; urgency=low
+
+ * Fix VCS links in debian/control, thanks to Torsten Landschoff.
+ Closes: #555900.
+ * Really ship NEWS.Debian.
+ * Add changesets 3170 and 3202 from upstream to handle gracefully jQuery
+ 1.4. Thanks to Volker Gropp for the report. Closes: #565715.
+
+ -- Vincent Bernat <bernat@debian.org> Mon, 18 Jan 2010 23:11:01 +0100
+
+roundcube (0.3.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Add a notice in NEWS.Debian about php.ini options that should be set
+ to get Roundcube working properly. Closes: #549428, #552508.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 07 Nov 2009 17:41:37 +0100
+
+roundcube (0.3-2) unstable; urgency=low
+
+ * Really fix #544579 since the default value is null without
+ quotes. This really Closes: #544579.
+ * Enlarge login box to accommodate sk_SK locale. Closes: #542933.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 27 Sep 2009 11:26:56 +0200
+
+roundcube (0.3-1) unstable; urgency=low
+
+ * New upstream release. Closes: #545498.
+ * Update debconf translations:
+ + Italian, thanks to Luca Monducci. Closes: #544199.
+ + Czech, thanks to Miroslav Kure. Closes: #546413.
+ * Roundcube configuration now uses 'language' instead of 'locale_string'
+ to specify the default language. Update postinst to reflect this
+ change. Thanks to Richard van den Berg for noticing this. Closes: #544579.
+ * Depends on libjs-jquery (>= 1.3) since this is now used by roundcube.
+ * Don't ship any plugins for now but ship an empty plugins directory.
+ * Ship main .htaccess since it is needed to setup correctly PHP (for
+ example, to disable PHP Suhosin cookie encryption).
+ * Bump Standards-Version. No changes required.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 27 Sep 2009 11:00:30 +0200
+
+roundcube (0.2.2-1) unstable; urgency=low
+
+ * New upstream release
+ * Bump Standards-Version. No changes required.
+ * Remove *.js.src which are not needed at runtime.
+ * Don't send email contents to Google by default by using php5-pspell
+ instead. Thanks to Anand Kumria. Closes: #529563.
+ * Update debconf translations:
+ + Basque, thanks to Piarres Beobide. Closes: #534282.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 05 Jul 2009 09:53:17 +0200
+
+roundcube (0.2.1-2) unstable; urgency=low
+
+ * Update debconf translations:
+ + German, thanks to Helge Kreutzmann. Closes: #520004.
+ + Japanese, thanks to Hideki Yamane. Closes: #520024.
+ + Spanish, thanks to Francisco Javier. Closes: #526696.
+ + Russian, thanks to Yuri Kozlov. Closes: #528796.
+ * Depend on php-mdb2-* (>= 1.5.0b2) since it is needed to fix some
+ bugs. Closes: #519104, #519293. Remove not needed any more patch from
+ debian/patches/series. Keep it in debian/patches to help backports.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 16 May 2009 15:30:17 +0200
+
+roundcube (0.2.1-1) unstable; urgency=low
+
+ * New upstream release:
+ + Fix use_packaged_tinymce.patch to apply to this new version
+ + Remove cve-2009-0413.patch which has been applied upstream
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 14 Mar 2009 17:42:07 +0100
+
+roundcube (0.2~stable-2) unstable; urgency=low
+
+ * Update debconf translations:
+ + French, thanks to Christian Perrier. Closes: #515806.
+ + Swedish, thanks to Martin Bagge. Closes: #516683.
+ * Drop virtual package roundcube-db and add dependencies on real package
+ instead: this way, we can have versioned dependencies on those to avoid
+ version mismatch between packages.
+ * Add a patch to not use a MDB2 feature not present in the Debian
+ package. Thanks to Grzegorz Sobański for the patch. Closes: #519104.
+
+ -- Vincent Bernat <bernat@debian.org> Wed, 11 Mar 2009 18:49:32 +0100
+
+roundcube (0.2~stable-1) unstable; urgency=low
+
+ * New upstream version. Closes: #503573, #504570.
+ + Add SQL update scripts for this new release and for
+ 0.2~alpha. Remove copy of SQL upgrade script from debian/rules.
+ + Remove patch for CVE-2008-5620 which is now fixed upstream.
+ + Remove patch correcting a vulnerability in html2text.php.
+ + Remove patch fixing login issue. This is fixed upstream.
+ + Remove patch setting the default backend to db instead of mdb2:
+ this is not possible any more. We depend on php-mdb2 now.
+ + Update patch to use packaged tinymce.
+ * Upload to unstable since Lenny is out.
+ * Apply fix for XSS issue (CVE-2009-0413). Closes: #514179.
+ * Remove hack to update a SQLite table for an upgrade from a quite old
+ version of roundcube.
+ * Fix pending l10n issues:
+ + Update English debconf template. Closes: #473794.
+ + Add Swedish translation thanks to Martin Bagge. Closes: #508752.
+ * Fix debian/copyright to make lintian happy.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 15 Feb 2009 16:18:58 +0100
+
+roundcube (0.2~alpha-4) experimental; urgency=low
+
+ * Add missing ${misc:Depends} to make Lintian happy.
+ * Add description to each patch.
+ * Execute cron job only if the directory to clean exists.
+ * Reload web server configuration instead of restart, thanks to a patch
+ from Tiago Bortoletto Vaz. Closes: #508633.
+ * Fix a vulnerability in quota image generation. This fixes
+ CVE-2008-5620. Thanks to Nico Golde for reporting it. Closes: #509596.
+ * Add missing dependency on php5-gd, used for quota bar.
+ * For roundcube-pgsql, depends on postgresql-client only. This package
+ is provided by the currently supported real package.
+
+ -- Vincent Bernat <bernat@debian.org> Thu, 25 Dec 2008 11:38:13 +0100
+
+roundcube (0.2~alpha-3) experimental; urgency=high
+
+ [ Vincent Bernat ]
+ * Fix a vulnerability in the use of preg_replace (Closes: #508628).
+ * Adapt descriptions of roundcube-database packages to refer them as
+ metapackages instead of virtual package (Closes: #495434).
+ * Add robots.txt from upstream, even if in some configuration, it will
+ not be considered (Closes: #499108).
+ * Do not ship .htaccess files. Restrictions are set in Apache or
+ Lighttpd configuration files (Closes: #500202).
+
+ [ Romain Beauxis ]
+ * Changed versioned dependency of rouncube from binary:Version to
+ source:Version since these are all architecture independent packages.
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 13 Dec 2008 14:36:02 +0100
+
+roundcube (0.2~alpha-2) experimental; urgency=low
+
+ [ Vincent Bernat ]
+ * Fix lintian warnings introduced by previous upload
+ * Fix lighttpd.conf to make it work with latest versions (Closes: #494044)
+ * Do not prepend path to lighty util in postinst and postrm, as per
+ Policy Manual section 6.1
+ * Ship a bug/control file to have all bugs submitted against roundcube
+ metapackage
+ * Fix debian/roundcube-core.cron.daily to use
+ /etc/default/roundcube-core instead of /etc/default/roundcube which
+ should not exist any more
+
+ [ Romain Beauxis ]
+ * Versioned roundcube-core dependency for roundcube
+
+ -- Vincent Bernat <bernat@debian.org> Sat, 16 Aug 2008 13:22:08 +0200
+
+roundcube (0.2~alpha-1) experimental; urgency=low
+
+ * New upstream release
+ * Update debian/watch file to correctly consider those new releases
+ * Remove the following patches:
+ + messageid-headers-ordering
+ + mysql-update-fix
+ + disable-tinymce-spellchecker
+ * Update the following patches:
+ + correct_install_path
+ + use_packaged_tinymce
+ * Add a new patch to fix a login problem
+ * Depends on tinymce >= 3
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 22 Jun 2008 14:10:44 +0200
+
+roundcube (0.1.1-7) unstable; urgency=low
+
+ * Another fix for incorrect tinymce path. This should be the last one!
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 22 Jun 2008 12:36:59 +0200
+
+roundcube (0.1.1-6) unstable; urgency=low
+
+ * Fix use_packaged_tinymce patch which was incorrect after switch to
+ tinymce2 package.
+
+ -- Vincent Bernat <bernat@debian.org> Sun, 22 Jun 2008 12:19:16 +0200
+
+roundcube (0.1.1-5) unstable; urgency=low
+
+ * Fix ordering of message-id in message headers, thanks to Reinhard
+ Tartler (Closes: #486493)
+ * Update Standards-Version to 3.8.0
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 17 Jun 2008 00:33:40 +0200
+
+roundcube (0.1.1-4) unstable; urgency=low
+
+ * Add Slovak debconf translation, thanks to Ivan Masár (Closes: #481376)
+ * Fix debian/copyright:
+ + RoundCube is GPL-2 licensed, not GPL-2+
+ + Add an explanation on the BSD license present at the top of
+ index.php (Closes: #477119)
+ * We do not support tinymce 3, yet. Depends on tinymce2 | tinymce (<<
+ 3). Closes: #481145, #483053, #482295
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 20 May 2008 20:51:52 +0200
+
+roundcube (0.1.1-3) unstable; urgency=low
+
+ * Fix an error introduced when fixing bug #476803. Thanks to Micah
+ Anderson for spotting it (Closes: #479775).
+ * Avoid to pop language question at every upgrade. Thanks to Ivan Vucica
+ for spotting this. The problem lied in the use of db_metaget to get
+ the value of a key set by db_subst in a previous invocation. It seems
+ this is not possible any more (Closes: #480043). The fix implies that
+ we won't ask the question again if more languages are available since
+ last upgrade.
+
+ -- Vincent Bernat <bernat@debian.org> Thu, 08 May 2008 09:50:24 +0200
+
+roundcube (0.1.1-2) unstable; urgency=low
+
+ * Comment by default Alias directive for tinymce in Apache configuration
+ file (Closes: #476162).
+ * Allow to preseed language value (Closes: #476803).
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 19 Apr 2008 16:50:28 +0200
+
+roundcube (0.1.1-1) unstable; urgency=low
+
+ * New upstream release
+ - Copy old SQL upgrade scripts into debian/sql to allow upgrade from
+ versions older than 0.1
+ - Patch new MySQL upgrade script to fix a typo
+ * Debconf translation updates:
+ - Spanish. Closes: #473788
+ * Depends on php-mail-mime (>= 1.5.0) and drop compatibility patch
+ * Install upstream changelog in /usr/share/doc/roundcube*
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 05 Apr 2008 18:16:33 +0200
+
+roundcube (0.1-4) unstable; urgency=low
+
+ * Debconf translation updates:
+ - French. Closes: #469802
+ - Russian. Closes: #469847
+ - Galician. Closes: #469866
+ - German. Closes: #469875
+ - Finnish. Closes: #469922
+ - Italian. Closes: #469987
+ - Czech. Closes: #470150
+ - Portuguese. Closes: #470156
+ - Spanish. Closes: #470732
+ - Basque. Closes: #470871
+ - Arabic. Closes: #471470
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 08 Mar 2008 11:15:00 +0100
+
+roundcube (0.1-3) unstable; urgency=low
+
+ * Fix problem with too old php-mail-mime package (Closes: #469814)
+
+ -- Vincent Bernat <bernat@luffy.cx> Fri, 07 Mar 2008 11:06:49 +0100
+
+roundcube (0.1-2) unstable; urgency=low
+
+ * Ship bin/ directory as well. This fix conversion from HTML to text in
+ composition.
+ * Disable spellchecker for tinymce since it is not shipped with Debian
+ package of tinymce.
+
+ -- Vincent Bernat <bernat@luffy.cx> Fri, 07 Mar 2008 09:42:39 +0100
+
+roundcube (0.1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #469487).
+ - This release seems to fix failure to set some fields when replying,
+ with bincimap as IMAP server (Closes: #443562)
+ - It also fixes the deletion of multiple messages, still with
+ bincimap (Closes: #451404)
+ * Remove 'ob_gzhandler.patch' and 'xss-fix.patch'. They have been
+ merged upstream.
+ * Upstream has switched to MDB2 database backend which is not packaged
+ in Debian yet. We switch back to old backend.
+ * Fix debian/watch to handle correctly detection of new versions.
+ * Add support for lighttpd and remove support for older version of
+ Apache. The debconf question about webserver autoconfiguration is
+ reworded (Closes: #462961).
+ * Do not depend on a specific revision of cdbs.
+ * Move po-debconf from Build-Depends-Indep to Build-Depends since it is
+ needed for clean target.
+ * Correct path to /usr/share/file/magic, provided by libmagic1. Provide
+ license information about this file in debian/copyright.
+
+ -- Vincent Bernat <bernat@luffy.cx> Wed, 05 Mar 2008 20:49:03 +0100
+
+roundcube (0.1~rc2-6) unstable; urgency=high
+
+ * Bug fix: "CVE-2007-6321: Cross-site scripting (XSS) vulnerability",
+ thanks to Micah Anderson (Closes: #455840). The patch is from
+ http://lists.roundcube.net/mail-archive/dev/2007-12/0000038.html and
+ provided by Robin Elfrink. It has been modified with some functions
+ stolen from Squirrelmail.
+ * Finnish debconf template, thanks to Esko Arajärvi (Closes: #458244).
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 29 Dec 2007 21:55:17 +0100
+
+roundcube (0.1~rc2-5) unstable; urgency=low
+
+ * Deal with old /etc/logrotate.d/roundcube by removing it if left
+ untouched (Closes: #456546). Also deal with /etc/default/roundcube and
+ /etc/cron.daily/roundcube.
+
+ -- Vincent Bernat <bernat@luffy.cx> Tue, 18 Dec 2007 23:02:46 +0100
+
+roundcube (0.1~rc2-4) unstable; urgency=low
+
+ * Thightened dependencies for a safe upgrade
+ * Finally removed any circular dependency, -db packages no longer pull
+ a full roundcube install
+
+ -- Romain Beauxis <toots@rastageeks.org> Sun, 09 Dec 2007 14:24:24 +0100
+
+roundcube (0.1~rc2-3) unstable; urgency=low
+
+ * Upload to unstable
+ * Bumped standard version to 3.7.3 (no changes)
+
+ -- Romain Beauxis <toots@rastageeks.org> Sun, 09 Dec 2007 14:19:28 +0100
+
+roundcube (0.1~rc2-2) experimental; urgency=low
+
+ [ Vincent Bernat ]
+ * Fix a conflict between ob_gzhandler and zlib output compression,
+ thanks to kaouete (Closes: #450482).
+
+ [ Romain Beauxis ]
+ * Fix tinymce patch and inclusion
+ Closes: #452016
+ * Splitted virtual packages to avoid circular dependencies.
+ Uploading to experimental, as this is an important change and we may
+ expect issues..
+
+ -- Romain Beauxis <toots@rastageeks.org> Mon, 26 Nov 2007 11:54:21 +0100
+
+roundcube (0.1~rc2-1) unstable; urgency=low
+
+ * New upstream, thanks to Nicolas Stransky (Closes: #447503). This
+ release support tinymce as HTML editor. Look at README.Debian for more
+ information.
+ * Update Galician debconf template, thanks to Jacobo Tarrio (Closes: #447943).
+
+ -- Vincent Bernat <bernat@luffy.cx> Mon, 29 Oct 2007 22:08:43 +0100
+
+roundcube (0.1~rc1-3) unstable; urgency=low
+
+ * In respect to policy 12.3, do not put main.inc.php.dist in
+ /usr/share/doc, thanks to Jonas Smedegaard (Closes: #446502).
+ * Update German and French debconf templates, thanks to Christian
+ Perrier (Closes: #446458) and Helge Kreutzmann (Closes: #446532).
+
+ -- Vincent Bernat <bernat@luffy.cx> Sun, 14 Oct 2007 08:41:24 +0200
+
+roundcube (0.1~rc1-2) unstable; urgency=low
+
+ * Fix dependencies by creating virtual packages for each database
+ backend, thanks to Joey Hess (Closes: #444925).
+
+ -- Vincent Bernat <bernat@luffy.cx> Tue, 02 Oct 2007 20:09:19 +0200
+
+roundcube (0.1~rc1-1) unstable; urgency=low
+
+ * New upstream release
+ * Removed non gpl file des.inc
+
+ -- Romain Beauxis <toots@rastageeks.org> Tue, 24 Jul 2007 13:36:20 +0200
+
+roundcube (0.1~rc1~dfsg-3) unstable; urgency=low
+
+ * Add php5-mcrypt dependency (Closes: #431177)
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 30 Jun 2007 19:36:21 +0200
+
+roundcube (0.1~rc1~dfsg-2) unstable; urgency=low
+
+ * Removed custom unix_timestamp for sqlite: solved upstream
+ * Debconf templates and debian/control reviewed by the debian-l10n-
+ english team as part of the Smith review project.
+ Closes: #426086, #427546, #427546
+ * Debconf translation updates:
+ - Galician. Closes: #426140
+ - Basque. Closes: #426150
+ - Czech. Closes: #426428
+ - Portuguese. Closes: #426451
+ - Arabic. Closes: #427110
+ - Italian. Closes: #427206
+ - German. Closes: #427536
+ - French. Closes: #427736
+ - Tamil. Closes: #428254
+ - Russian. Closes: #428364
+ - Spanish. Closes: #428573
+
+ -- Romain Beauxis <toots@rastageeks.org> Tue, 05 Jun 2007 15:22:36 +0200
+
+roundcube (0.1~rc1~dfsg-1) unstable; urgency=low
+
+ [ Vincent Bernat ]
+ * New upstream release
+ * Update script for sqlite in postinst
+ [ Romain Beauxis ]
+ * Fixed dh_link calls
+ Closes: #423824
+ * Added custom patch to use php unix timestamp support
+ with sqlite since UNIX_TIMESTAMP is not supported by sqlite.
+ * Dropped php4 dependencies
+
+ -- Vincent Bernat <bernat@luffy.cx> Sun, 20 May 2007 13:59:44 +0200
+
+roundcube (0.1~beta2.2~dfsg-2) unstable; urgency=low
+
+ * Fix a security issue by disallowing access to logs.
+ * First upload to unstable.
+
+ -- Vincent Bernat <bernat@luffy.cx> Sat, 5 May 2007 00:23:40 +0200
+
+roundcube (0.1~beta2.2~dfsg-1) experimental; urgency=low
+
+ * Initial release. (Closes: #333756, #344949)
+
+ -- Romain Beauxis <toots@rastageeks.org> Tue, 13 Mar 2007 13:28:05 +0100
--- /dev/null
+# Those aliases do not work properly with several hosts on your apache server
+# Uncomment them to use it or adapt them to your configuration
+# Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
+# Alias /roundcube /var/lib/roundcube
+
+# Access to tinymce files
+<Directory "/usr/share/tinymce/www/">
+ Options Indexes MultiViews FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ allow from all
+</Directory>
+
+<Directory /var/lib/roundcube/>
+ Options +FollowSymLinks
+ # This is needed to parse /var/lib/roundcube/.htaccess. See its
+ # content before setting AllowOverride to None.
+ AllowOverride All
+ order allow,deny
+ allow from all
+</Directory>
+
+# Protecting basic directories:
+<Directory /var/lib/roundcube/config>
+ Options -FollowSymLinks
+ AllowOverride None
+</Directory>
+
+<Directory /var/lib/roundcube/temp>
+ Options -FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ Deny from all
+</Directory>
+
+<Directory /var/lib/roundcube/logs>
+ Options -FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ Deny from all
+</Directory>
+
--- /dev/null
+# You may want to set up this alias differently depending on your
+# virtual host configuration. Do not forget to adapt the rest of the
+# configuration.
+
+# Look at /var/lib/roundcube/.htaccess. You may need to migrate some
+# of those php_flag/php_value to your setup.
+
+alias.url += ("/roundcube/program/js/tiny_mce" => "/usr/share/tinymce/www")
+alias.url += ("/roundcube" => "/var/lib/roundcube")
+
+$HTTP["url"] =~ "^/roundcube" {
+ server.follow-symlink = "enable"
+}
+
+$HTTP["url"] =~ "^/roundcube/config|/roundcube/temp|/roundcube/logs" {
+ url.access-deny = ( "" )
+}
--- /dev/null
+Source: roundcube
+Section: web
+Priority: extra
+Maintainer: Debian Roundcube Maintainers <pkg-roundcube-maintainers@lists.alioth.debian.org>
+Uploaders: Vincent Bernat <bernat@debian.org>, Romain Beauxis <toots@rastageeks.org>
+Build-Depends: cdbs, debhelper (>= 5), dh-buildinfo, po-debconf, yui-compressor
+Homepage: http://www.roundcube.net/
+Standards-Version: 3.9.2
+Vcs-Git: git://anonscm.debian.org/pkg-roundcube/roundcube.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-roundcube/roundcube.git
+
+Package: roundcube-core
+Architecture: all
+Depends: dbconfig-common, debconf | debconf-2.0, ucf,
+ apache2 | lighttpd | httpd,
+ php5, php5-mcrypt, php5-gd, php5-intl,
+ php-mdb2 (>= 2.5.0), php-auth, php-net-smtp (>= 1.4.2),
+ php-net-socket, php-mail-mime (>= 1.8.0), php5-pspell,
+ tinymce (>= 3), libjs-jquery (>= 1.6.4), libjs-jquery-ui (>= 1.8),
+ libmagic1,
+ roundcube-mysql (= ${source:Version}) | roundcube-pgsql (= ${source:Version}),
+ ${misc:Depends}
+Suggests: php-auth-sasl (>= 1.0.3), php-crypt-gpg, roundcube-plugins
+Replaces: roundcube
+Breaks: roundcube (<< 0.1~rc2-2)
+Conflicts: roundcube-plugins-extra (<= 0.6-20111030)
+Description: skinnable AJAX based webmail solution for IMAP servers
+ RoundCube Webmail is a browser-based multilingual IMAP client with an
+ application-like user interface. It provides full functionality
+ expected from an e-mail client, including MIME support, address book,
+ folder manipulation and message filters.
+ .
+ The user interface is fully skinnable using XHTML and CSS 2.
+ .
+ This package provides the core code for roundcube. You should install
+ it along with one of the roundcube database metapackages.
+
+Package: roundcube
+Architecture: all
+Depends: roundcube-core (= ${source:Version}), ${misc:Depends}
+Description: skinnable AJAX based webmail solution for IMAP servers - metapackage
+ RoundCube Webmail is a browser-based multilingual IMAP client with an
+ application-like user interface. It provides full functionality
+ expected from an e-mail client, including MIME support, address book,
+ folder manipulation and message filters.
+ .
+ The user interface is fully skinnable using XHTML and CSS 2.
+ .
+ This package will install a full roundcube application.
+
+Package: roundcube-mysql
+Architecture: all
+Depends: php-mdb2-driver-mysql (>= 1.5.0b2), mysql-client | virtual-mysql-client, ${misc:Depends}
+Suggests: mysql-server
+Description: metapackage providing MySQL dependencies for RoundCube
+ This package provides MySQL dependencies for RoundCube Webmail, a
+ skinnable AJAX based webmail solution for IMAP servers. Install this
+ one if you want to use a MySQL database with RoundCube.
+
+Package: roundcube-pgsql
+Architecture: all
+Depends: php-mdb2-driver-pgsql (>= 1.5.0b2), postgresql-client-8.1 | postgresql-client, ${misc:Depends}
+Suggests: postgresql-server
+Description: metapackage providing PostgreSQL dependencies for RoundCube
+ This package provides PostgreSQL dependencies for RoundCube Webmail,
+ a skinnable AJAX based webmail solution for IMAP servers. Install
+ this one if you want to use a PostgreSQL database with RoundCube.
+
+Package: roundcube-plugins
+Architecture: all
+Depends: roundcube-core (= ${source:Version}), ${misc:Depends}
+Description: skinnable AJAX based webmail solution for IMAP servers - plugins
+ RoundCube Webmail is a browser-based multilingual IMAP client with an
+ application-like user interface. It provides full functionality
+ expected from an e-mail client, including MIME support, address book,
+ folder manipulation and message filters.
+ .
+ The user interface is fully skinnable using XHTML and CSS 2.
+ .
+ This package provides several plugins for Roundcube. They should be
+ enabled in the configuration of Roundcube.
--- /dev/null
+Format: http://dep.debian.net/deps/dep5/
+Upstream-Name: Roundcube Dev. - Switzerland
+Upstream-Contact: http://roundcube.net/support
+Source: http://roundcube.net/download
+
+Files: *
+Copyright: 2005-2011, Roundcube Dev. - Switzerland
+License: GPL-2
+
+Files: skins/default/*
+Copyright: 2005-2011, Roundcube Dev. - Switzerland
+License: CC-BY-SA-3
+
+Files: program/js/googiespell.js*
+Copyright: 2006 Amir Salihefendic
+ 2009 Aleksander Machniak
+License: GPL-2
+
+Files: program/js/jquery*.js
+Copyright: 2010 John Resig
+ 2010 The Dojo Foundation
+License: GPL-2 or Expat
+ Also includes sizzle.js, licensed under Expat, BSD-3-clause and
+ GPL-2. This file is not shipped in the resulting Debian packages. We
+ use system-included jQuery.
+
+Files: program/js/tiny_mce/*
+Copyright: 2003-2006 Moxiecode Systems AB
+License: LGPL-2.1
+
+Files: program/lib/enriched.inc
+Copyright: 2000-2003 Ryo Chijiiwa <Ryo@IlohaMail.org>
+License: GPL-2
+
+Files: program/lib/html2text.php
+Copyright: 2005-2007 Jon Abernathy <jon@chuggnutt.com>
+License: GPL-2+
+
+Files: program/lib/tnef_decoder.php
+Copyright: 2002-2010 The Horde Project (http://www.horde.org/)
+License: LGPL-2.1
+
+Files: program/lib/utf7.inc
+Copyright: 2000 Edmund Grimley Evans <edmundo@rano.org>
+License: GPL-2+
+
+Files: program/lib/washtml.php
+Copyright: 2007 Frederic Motte <fmotte@ubixis.com>
+License: BSD-2-clause
+
+Files: plugins/managesieve/lib/Net/Sieve.php
+Copyright: 2002-2003 Richard Heyes
+ 2006-2008 Anish Mistry
+License: BSD-2-clause
+
+Files: plugins/enigma/lib/Crypt/*
+Copyright: 2005-2010 silverorange
+License: LGPL-2.1
+
+Files: plugins/acl/acl.php
+Copyright: Copyright (C) 2011, Kolab Systems AG
+License: GPL-2
+
+Files: plugins/redundant_attachments/redundant_attachments.php
+Copyright: Copyright (C) 2011, The Roundcube Dev Team
+ Copyright (C) 2011, Kolab Systems AG
+License: GPL-2
+
+Files: debian/*
+Copyright: 2007-2011, Vincent Bernat <bernat@debian.org>
+ 2007-2011, Romain Beauxis <toots@rastageeks.org>
+License: GPL-2
+
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: CC-BY-SA-3
+ The theme uses icons originally designed by Stephen Horlander and
+ Kevin Gerich for Mozilla.org. In case of redistribution giving credit
+ to these artwork creators is mandatory.
+ .
+ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
+ CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
+ PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
+ WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS
+ PROHIBITED.
+ .
+ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
+ AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS
+ LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU
+ THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH
+ TERMS AND CONDITIONS.
+ .
+ 1. Definitions
+ .
+ a. "Adaptation" means a work based upon the Work, or upon the Work
+ and other pre-existing works, such as a translation, adaptation,
+ derivative work, arrangement of music or other alterations of a
+ literary or artistic work, or phonogram or performance and includes
+ cinematographic adaptations or any other form in which the Work may
+ be recast, transformed, or adapted including in any form
+ recognizably derived from the original, except that a work that
+ constitutes a Collection will not be considered an Adaptation for
+ the purpose of this License. For the avoidance of doubt, where the
+ Work is a musical work, performance or phonogram, the
+ synchronization of the Work in timed-relation with a moving image
+ ("synching") will be considered an Adaptation for the purpose of
+ this License.
+ .
+ b. "Collection" means a collection of literary or artistic works,
+ such as encyclopedias and anthologies, or performances, phonograms
+ or broadcasts, or other works or subject matter other than works
+ listed in Section 1(f) below, which, by reason of the selection and
+ arrangement of their contents, constitute intellectual creations,
+ in which the Work is included in its entirety in unmodified form
+ along with one or more other contributions, each constituting
+ separate and independent works in themselves, which together are
+ assembled into a collective whole. A work that constitutes a
+ Collection will not be considered an Adaptation (as defined below)
+ for the purposes of this License.
+ .
+ c. "Creative Commons Compatible License" means a license that is
+ listed at http://creativecommons.org/compatiblelicenses that has
+ been approved by Creative Commons as being essentially equivalent
+ to this License, including, at a minimum, because that license: (i)
+ contains terms that have the same purpose, meaning and effect as
+ the License Elements of this License; and, (ii) explicitly permits
+ the relicensing of adaptations of works made available under that
+ license under this License or a Creative Commons jurisdiction
+ license with the same License Elements as this License.
+ .
+ d. "Distribute" means to make available to the public the original
+ and copies of the Work or Adaptation, as appropriate, through sale
+ or other transfer of ownership.
+ .
+ e. "License Elements" means the following high-level license
+ attributes as selected by Licensor and indicated in the title of
+ this License: Attribution, ShareAlike.
+ .
+ f. "Licensor" means the individual, individuals, entity or entities
+ that offer(s) the Work under the terms of this License.
+ .
+ g. "Original Author" means, in the case of a literary or artistic
+ work, the individual, individuals, entity or entities who created
+ the Work or if no individual or entity can be identified, the
+ publisher; and in addition (i) in the case of a performance the
+ actors, singers, musicians, dancers, and other persons who act,
+ sing, deliver, declaim, play in, interpret or otherwise perform
+ literary or artistic works or expressions of folklore; (ii) in the
+ case of a phonogram the producer being the person or legal entity
+ who first fixes the sounds of a performance or other sounds; and,
+ (iii) in the case of broadcasts, the organization that transmits
+ the broadcast.
+ .
+ h. "Work" means the literary and/or artistic work offered under the
+ terms of this License including without limitation any production
+ in the literary, scientific and artistic domain, whatever may be
+ the mode or form of its expression including digital form, such as
+ a book, pamphlet and other writing; a lecture, address, sermon or
+ other work of the same nature; a dramatic or dramatico-musical
+ work; a choreographic work or entertainment in dumb show; a musical
+ composition with or without words; a cinematographic work to which
+ are assimilated works expressed by a process analogous to
+ cinematography; a work of drawing, painting, architecture,
+ sculpture, engraving or lithography; a photographic work to which
+ are assimilated works expressed by a process analogous to
+ photography; a work of applied art; an illustration, map, plan,
+ sketch or three-dimensional work relative to geography, topography,
+ architecture or science; a performance; a broadcast; a phonogram; a
+ compilation of data to the extent it is protected as a
+ copyrightable work; or a work performed by a variety or circus
+ performer to the extent it is not otherwise considered a literary
+ or artistic work.
+ .
+ i. "You" means an individual or entity exercising rights under this
+ License who has not previously violated the terms of this License
+ with respect to the Work, or who has received express permission
+ from the Licensor to exercise rights under this License despite a
+ previous violation.
+ .
+ j. "Publicly Perform" means to perform public recitations of the
+ Work and to communicate to the public those public recitations, by
+ any means or process, including by wire or wireless means or public
+ digital performances; to make available to the public Works in such
+ a way that members of the public may access these Works from a
+ place and at a place individually chosen by them; to perform the
+ Work to the public by any means or process and the communication to
+ the public of the performances of the Work, including by public
+ digital performance; to broadcast and rebroadcast the Work by any
+ means including signs, sounds or images.
+ .
+ k. "Reproduce" means to make copies of the Work by any means
+ including without limitation by sound or visual recordings and the
+ right of fixation and reproducing fixations of the Work, including
+ storage of a protected performance or phonogram in digital form or
+ other electronic medium.
+ .
+ 2. Fair Dealing Rights. Nothing in this License is intended to
+ reduce, limit, or restrict any uses free from copyright or rights
+ arising from limitations or exceptions that are provided for in
+ connection with the copyright protection under copyright law or other
+ applicable laws.
+ .
+ 3. License Grant. Subject to the terms and conditions of this
+ License, Licensor hereby grants You a worldwide, royalty-free,
+ non-exclusive, perpetual (for the duration of the applicable
+ copyright) license to exercise the rights in the Work as stated
+ below:
+ .
+ a. to Reproduce the Work, to incorporate the Work into one or more
+ Collections, and to Reproduce the Work as incorporated in the
+ Collections;
+ .
+ b. to create and Reproduce Adaptations provided that any such
+ Adaptation, including any translation in any medium, takes
+ reasonable steps to clearly label, demarcate or otherwise identify
+ that changes were made to the original Work. For example, a
+ translation could be marked "The original work was translated from
+ English to Spanish," or a modification could indicate "The
+ original work has been modified.";
+ .
+ c. to Distribute and Publicly Perform the Work including as
+ incorporated in Collections; and,
+ .
+ d. to Distribute and Publicly Perform Adaptations.
+ e.
+ .
+ For the avoidance of doubt:
+ .
+ i. Non-waivable Compulsory License Schemes. In those
+ jurisdictions in which the right to collect royalties through
+ any statutory or compulsory licensing scheme cannot be
+ waived, the Licensor reserves the exclusive right to collect
+ such royalties for any exercise by You of the rights granted
+ under this License;
+ .
+ ii. Waivable Compulsory License Schemes. In those
+ jurisdictions in which the right to collect royalties through
+ any statutory or compulsory licensing scheme can be waived,
+ the Licensor waives the exclusive right to collect such
+ royalties for any exercise by You of the rights granted under
+ this License; and,
+ .
+ iii. Voluntary License Schemes. The Licensor waives the right
+ to collect royalties, whether individually or, in the event
+ that the Licensor is a member of a collecting society that
+ administers voluntary licensing schemes, via that society,
+ from any exercise by You of the rights granted under this
+ License.
+ .
+ The above rights may be exercised in all media and formats whether
+ now known or hereafter devised. The above rights include the right to
+ make such modifications as are technically necessary to exercise the
+ rights in other media and formats. Subject to Section 8(f), all
+ rights not expressly granted by Licensor are hereby reserved.
+ .
+ 4. Restrictions. The license granted in Section 3 above is expressly
+ made subject to and limited by the following restrictions:
+ .
+ a. You may Distribute or Publicly Perform the Work only under the
+ terms of this License. You must include a copy of, or the Uniform
+ Resource Identifier (URI) for, this License with every copy of the
+ Work You Distribute or Publicly Perform. You may not offer or
+ impose any terms on the Work that restrict the terms of this
+ License or the ability of the recipient of the Work to exercise the
+ rights granted to that recipient under the terms of the
+ License. You may not sublicense the Work. You must keep intact all
+ notices that refer to this License and to the disclaimer of
+ warranties with every copy of the Work You Distribute or Publicly
+ Perform. When You Distribute or Publicly Perform the Work, You may
+ not impose any effective technological measures on the Work that
+ restrict the ability of a recipient of the Work from You to
+ exercise the rights granted to that recipient under the terms of
+ the License. This Section 4(a) applies to the Work as incorporated
+ in a Collection, but this does not require the Collection apart
+ from the Work itself to be made subject to the terms of this
+ License. If You create a Collection, upon notice from any Licensor
+ You must, to the extent practicable, remove from the Collection any
+ credit as required by Section 4(c), as requested. If You create an
+ Adaptation, upon notice from any Licensor You must, to the extent
+ practicable, remove from the Adaptation any credit as required by
+ Section 4(c), as requested.
+ .
+ b. You may Distribute or Publicly Perform an Adaptation only under
+ the terms of: (i) this License; (ii) a later version of this
+ License with the same License Elements as this License; (iii) a
+ Creative Commons jurisdiction license (either this or a later
+ license version) that contains the same License Elements as this
+ License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative
+ Commons Compatible License. If you license the Adaptation under one
+ of the licenses mentioned in (iv), you must comply with the terms
+ of that license. If you license the Adaptation under the terms of
+ any of the licenses mentioned in (i), (ii) or (iii) (the
+ "Applicable License"), you must comply with the terms of the
+ Applicable License generally and the following provisions: (I) You
+ must include a copy of, or the URI for, the Applicable License with
+ every copy of each Adaptation You Distribute or Publicly Perform;
+ (II) You may not offer or impose any terms on the Adaptation that
+ restrict the terms of the Applicable License or the ability of the
+ recipient of the Adaptation to exercise the rights granted to that
+ recipient under the terms of the Applicable License; (III) You must
+ keep intact all notices that refer to the Applicable License and to
+ the disclaimer of warranties with every copy of the Work as
+ included in the Adaptation You Distribute or Publicly Perform; (IV)
+ when You Distribute or Publicly Perform the Adaptation, You may not
+ impose any effective technological measures on the Adaptation that
+ restrict the ability of a recipient of the Adaptation from You to
+ exercise the rights granted to that recipient under the terms of
+ the Applicable License. This Section 4(b) applies to the Adaptation
+ as incorporated in a Collection, but this does not require the
+ Collection apart from the Adaptation itself to be made subject to
+ the terms of the Applicable License.
+ .
+ c. If You Distribute, or Publicly Perform the Work or any
+ Adaptations or Collections, You must, unless a request has been
+ made pursuant to Section 4(a), keep intact all copyright notices
+ for the Work and provide, reasonable to the medium or means You are
+ utilizing: (i) the name of the Original Author (or pseudonym, if
+ applicable) if supplied, and/or if the Original Author and/or
+ Licensor designate another party or parties (e.g., a sponsor
+ institute, publishing entity, journal) for attribution
+ ("Attribution Parties") in Licensor's copyright notice, terms of
+ service or by other reasonable means, the name of such party or
+ parties; (ii) the title of the Work if supplied; (iii) to the
+ extent reasonably practicable, the URI, if any, that Licensor
+ specifies to be associated with the Work, unless such URI does not
+ refer to the copyright notice or licensing information for the
+ Work; and (iv) , consistent with Ssection 3(b), in the case of an
+ Adaptation, a credit identifying the use of the Work in the
+ Adaptation (e.g., "French translation of the Work by Original
+ Author," or "Screenplay based on original Work by Original
+ Author"). The credit required by this Section 4(c) may be
+ implemented in any reasonable manner; provided, however, that in
+ the case of a Adaptation or Collection, at a minimum such credit
+ will appear, if a credit for all contributing authors of the
+ Adaptation or Collection appears, then as part of these credits and
+ in a manner at least as prominent as the credits for the other
+ contributing authors. For the avoidance of doubt, You may only use
+ the credit required by this Section for the purpose of attribution
+ in the manner set out above and, by exercising Your rights under
+ this License, You may not implicitly or explicitly assert or imply
+ any connection with, sponsorship or endorsement by the Original
+ Author, Licensor and/or Attribution Parties, as appropriate, of You
+ or Your use of the Work, without the separate, express prior
+ written permission of the Original Author, Licensor and/or
+ Attribution Parties.
+ .
+ d. Except as otherwise agreed in writing by the Licensor or as may
+ be otherwise permitted by applicable law, if You Reproduce,
+ Distribute or Publicly Perform the Work either by itself or as part
+ of any Adaptations or Collections, You must not distort, mutilate,
+ modify or take other derogatory action in relation to the Work
+ which would be prejudicial to the Original Author's honor or
+ reputation. Licensor agrees that in those jurisdictions
+ (e.g. Japan), in which any exercise of the right granted in Section
+ 3(b) of this License (the right to make Adaptations) would be
+ deemed to be a distortion, mutilation, modification or other
+ derogatory action prejudicial to the Original Author's honor and
+ reputation, the Licensor will waive or not assert, as appropriate,
+ this Section, to the fullest extent permitted by the applicable
+ national law, to enable You to reasonably exercise Your right under
+ Section 3(b) of this License (right to make Adaptations) but not
+ otherwise.
+ .
+ 5. Representations, Warranties and Disclaimer
+ .
+ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING,
+ LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR
+ WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED,
+ STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF
+ TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY,
+ OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT
+ DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF
+ IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+ .
+ 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
+ APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY
+ LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR
+ EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK,
+ EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ .
+ 7. Termination
+ .
+ a. This License and the rights granted hereunder will terminate
+ automatically upon any breach by You of the terms of this
+ License. Individuals or entities who have received Adaptations or
+ Collections from You under this License, however, will not have
+ their licenses terminated provided such individuals or entities
+ remain in full compliance with those licenses. Sections 1, 2, 5, 6,
+ 7, and 8 will survive any termination of this License.
+ .
+ b. Subject to the above terms and conditions, the license granted
+ here is perpetual (for the duration of the applicable copyright in
+ the Work). Notwithstanding the above, Licensor reserves the right
+ to release the Work under different license terms or to stop
+ distributing the Work at any time; provided, however that any such
+ election will not serve to withdraw this License (or any other
+ license that has been, or is required to be, granted under the
+ terms of this License), and this License will continue in full
+ force and effect unless terminated as stated above.
+ .
+ 8. Miscellaneous
+ .
+ a. Each time You Distribute or Publicly Perform the Work or a
+ Collection, the Licensor offers to the recipient a license to the
+ Work on the same terms and conditions as the license granted to You
+ under this License.
+ .
+ b. Each time You Distribute or Publicly Perform an Adaptation,
+ Licensor offers to the recipient a license to the original Work on
+ the same terms and conditions as the license granted to You under
+ this License.
+ .
+ c. If any provision of this License is invalid or unenforceable
+ under applicable law, it shall not affect the validity or
+ enforceability of the remainder of the terms of this License, and
+ without further action by the parties to this agreement, such
+ provision shall be reformed to the minimum extent necessary to make
+ such provision valid and enforceable.
+ .
+ d. No term or provision of this License shall be deemed waived and
+ no breach consented to unless such waiver or consent shall be in
+ writing and signed by the party to be charged with such waiver or
+ consent.
+ .
+ e. This License constitutes the entire agreement between the
+ parties with respect to the Work licensed here. There are no
+ understandings, agreements or representations with respect to the
+ Work not specified here. Licensor shall not be bound by any
+ additional provisions that may appear in any communication from
+ You. This License may not be modified without the mutual written
+ agreement of the Licensor and You.
+ .
+ f. The rights granted under, and the subject matter referenced, in
+ this License were drafted utilizing the terminology of the Berne
+ Convention for the Protection of Literary and Artistic Works (as
+ amended on September 28, 1979), the Rome Convention of 1961, the
+ WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms
+ Treaty of 1996 and the Universal Copyright Convention (as revised
+ on July 24, 1971). These rights and subject matter take effect in
+ the relevant jurisdiction in which the License terms are sought to
+ be enforced according to the corresponding provisions of the
+ implementation of those treaty provisions in the applicable
+ national law. If the standard suite of rights granted under
+ applicable copyright law includes additional rights not granted
+ under this License, such additional rights are deemed to be
+ included in the License; this License is not intended to restrict
+ the license of any rights under applicable law.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: LGPL-2.1
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2.1
+ as published by the Free Software Foundation.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU Lesser General Public
+ License version 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at
+ your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
--- /dev/null
+On Debian, the magic file is in /usr/share/file/magic.
+
+Index: b/config/main.inc.php.dist
+===================================================================
+--- a/config/main.inc.php.dist 2009-10-21 10:47:40.000000000 +0200
++++ b/config/main.inc.php.dist 2010-07-17 17:33:23.000000000 +0200
+@@ -301,7 +301,7 @@
+ $rcmail_config['identities_level'] = 0;
+
+ // mime magic database
+-$rcmail_config['mime_magic'] = '/usr/share/misc/magic';
++$rcmail_config['mime_magic'] = '/usr/share/file/magic';
+
+ // Enable DNS checking for e-mail address validation
+ $rcmail_config['email_dns_check'] = false;
--- /dev/null
+Install path is /var/lib/roundcube for Debian. Don't try to guess it.
+
+Index: b/program/include/iniset.php
+===================================================================
+--- a/program/include/iniset.php 2010-07-17 17:33:04.000000000 +0200
++++ b/program/include/iniset.php 2010-07-17 17:33:23.000000000 +0200
+@@ -42,7 +42,7 @@
+ define('RCMAIL_START', microtime(true));
+
+ if (!defined('INSTALL_PATH')) {
+- define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
++ define('INSTALL_PATH', '/var/lib/roundcube/');
+ }
+
+ if (!defined('RCMAIL_CONFIG_DIR')) {
--- /dev/null
+The default db.inc.php is modified to adapt it to the use of dbconfig-common package.
+
+Index: b/config/db.inc.php.dist
+===================================================================
+--- a/config/db.inc.php.dist 2010-07-17 17:33:04.000000000 +0200
++++ b/config/db.inc.php.dist 2010-07-17 17:33:23.000000000 +0200
+@@ -14,15 +14,20 @@
+
+ $rcmail_config = array();
+
+-// PEAR database DSN for read/write operations
+-// format is db_provider://user:password@host/database
+-// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
+-// currently supported db_providers: mysql, mysqli, pgsql, sqlite, mssql or sqlsrv
++/* Do not set db_dsnw here, use dpkg-reconfigure roundcube-core to configure database ! */
+
+-$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
+-// postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
+-// Warning: for SQLite use absolute path in DSN:
+-// sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646';
++include_once("/etc/roundcube/debian-db.php");
++
++switch ($dbtype) {
++ case "sqlite":
++ $rcmail_config['db_dsnw'] = "sqlite:///$basepath/$dbname?mode=0640";
++ break;
++ default:
++ if ($dbport != '') $dbport=":$dbport";
++ if ($dbserver == '') $dbserver="localhost";
++ $rcmail_config['db_dsnw'] = "$dbtype://$dbuser:$dbpass@$dbserver$dbport/$dbname";
++ break;
++ }
+
+ // PEAR database DSN for read only operations (if empty write database will be used)
+ // useful for database replication
--- /dev/null
+Description: specify Debian path and group names in password plugin
+Forwarded: not-needed
+Author: Jérémy Bobbio <lunar@debian.org>
+
+diff --git a/plugins/password/README b/plugins/password/README
+index 81e4f1e..bdb8264 100644
+--- a/plugins/password/README
++++ b/plugins/password/README
+@@ -133,7 +133,8 @@
+
+ Installation:
+
+- Change into the drivers directory. Edit the chgsaslpasswd.c file as is
++ Change into the drivers directory. Copy and edit
++ /usr/share/roundcube-plugins/examples/chgsaslpasswd.c as is
+ documented within it.
+
+ Compile the wrapper program:
+@@ -200,7 +201,8 @@
+ ----------------------------
+
+ As in sasl driver this one allows to change password using shell
+- utility called "virtualmin". See drivers/chgvirtualminpasswd.c for
++ utility called "virtualmin". See
++ /usr/share/doc/roundcube-plugins/examples/chgvirtualminpasswd.c for
+ installation instructions. See also config.inc.php.dist file.
+
+
+@@ -225,8 +227,9 @@
+ Driver that adds functionality to change the systems user password via
+ the 'chpasswd' command. See config.inc.php.dist file.
+
+- Attached wrapper script (chpass-wrapper.py) restricts password changes
+- to uids >= 1000 and can deny requests based on a blacklist.
++ Attached wrapper script
++ (/usr/share/doc/roundcube-plugins/examples/chpass-wrapper.py) restricts
++ password changes to uids >= 1000 and can deny requests based on a blacklist.
+
+
+ 2.12. LDAP - no PEAR (ldap_simple)
+diff --git a/plugins/password/drivers/chgsaslpasswd.c b/plugins/password/drivers/chgsaslpasswd.c
+index bcdcb2e..2c3bbf9 100644
+--- a/plugins/password/drivers/chgsaslpasswd.c
++++ b/plugins/password/drivers/chgsaslpasswd.c
+@@ -8,7 +8,7 @@
+
+ /* INSTALLING:
+ gcc -o chgsaslpasswd chgsaslpasswd.c
+- chown cyrus.apache chgsaslpasswd
++ chown cyrus:www-data chgsaslpasswd
+ strip chgsaslpasswd
+ chmod 4550 chgsaslpasswd
+ */
+diff --git a/plugins/password/drivers/chgvirtualminpasswd.c b/plugins/password/drivers/chgvirtualminpasswd.c
+index 4e2299c..12989c6 100644
+--- a/plugins/password/drivers/chgvirtualminpasswd.c
++++ b/plugins/password/drivers/chgvirtualminpasswd.c
+@@ -7,7 +7,7 @@
+
+ /* INSTALLING:
+ gcc -o chgvirtualminpasswd chgvirtualminpasswd.c
+- chown root.apache chgvirtualminpasswd
++ chown root:www-data chgvirtualminpasswd
+ strip chgvirtualminpasswd
+ chmod 4550 chgvirtualminpasswd
+ */
--- /dev/null
+Switch to UTF-8 as default charset
+
+Index: b/config/main.inc.php.dist
+===================================================================
+--- a/config/main.inc.php.dist 2010-07-17 17:33:24.000000000 +0200
++++ b/config/main.inc.php.dist 2010-07-17 17:33:25.000000000 +0200
+@@ -489,7 +489,7 @@
+ // ----------------------------------
+
+ // Use this charset as fallback for message decoding
+-$rcmail_config['default_charset'] = 'ISO-8859-1';
++$rcmail_config['default_charset'] = 'UTF-8';
+
+ // skin name: folder from skins/
+ $rcmail_config['skin'] = 'default';
--- /dev/null
+Disable DNS prefetching to solve CVE-2010-0464.
+
+Index: b/program/include/rcube_html_page.php
+===================================================================
+--- a/program/include/rcube_html_page.php 2009-06-22 18:20:34.000000000 +0200
++++ b/program/include/rcube_html_page.php 2010-07-17 17:33:25.000000000 +0200
+@@ -165,6 +165,13 @@
+ $__page_header.= $this->charset . '" />'."\n";
+ }
+
++ // add hint to disable DNS prefetching
++ if (!headers_sent()) {
++ header('X-DNS-Prefetch-Control: off');
++ } else {
++ $__page_header.= '<meta http-equiv="x-dns-prefetch-control" content="off" />'."\n";
++ }
++
+ // definition of the code to be placed in the document header and footer
+ if (is_array($this->script_files['head'])) {
+ foreach ($this->script_files['head'] as $file) {
--- /dev/null
+To fix #568360 and #568537, don't limit local part size.
+Index: b/program/include/main.inc
+===================================================================
+--- a/program/include/main.inc 2009-10-31 14:44:19.000000000 +0100
++++ b/program/include/main.inc 2010-07-17 17:33:25.000000000 +0200
+@@ -1427,7 +1427,7 @@
+ return false;
+
+ // Check that there's one @ symbol, and that the lengths are right
+- if (!preg_match('/^([^@]{1,64})@([^@]{1,255})$/', $email, $email_array))
++ if (!preg_match('/^([^@]+)@([^@]{1,255})$/', $email, $email_array))
+ return false;
+
+ // Check local part
--- /dev/null
+Fix #599586 which was caused by duplicate boundaries. The fix is to
+simply use _addMixedPart from original Mail_Mime class which is recent
+enough in our case.
+
+--- roundcube/program/include/rcube_mail_mime.php~ 2009-05-01 19:58:12.000000000 +0200
++++ roundcube/program/include/rcube_mail_mime.php 2010-10-18 19:31:33.751930400 +0200
+@@ -102,12 +102,12 @@
+ * @return object The multipart/mixed mimePart object
+ * @access private
+ */
+- function &_addMixedPart()
++ /* function &_addMixedPart()
+ {
+ $params['content_type'] = $this->_headers['Content-Type'] ? $this->_headers['Content-Type'] : 'multipart/mixed';
+ $ret = new Mail_mimePart('', $params);
+ return $ret;
+- }
++ } */
+
+
+ /**
--- /dev/null
+Fix size of login box to accommodate sk_SK locale
+
+Index: b/skins/default/common.css
+===================================================================
+--- a/skins/default/common.css 2009-10-06 12:00:33.000000000 +0200
++++ b/skins/default/common.css 2010-07-17 17:33:24.000000000 +0200
+@@ -677,7 +677,7 @@
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 50px;
+- width: 400px;
++ width: 420px;
+ border: 1px solid #999;
+ }
+
--- /dev/null
+Fix Received headers to behave better with SpamAssassin?
+ http://trac.roundcube.net/changeset/3291
+ http://trac.roundcube.net/ticket/1486513
+
+--- a/program/steps/mail/sendmail.inc 2009-11-16 23:49:07 +0000
++++ a/program/steps/mail/sendmail.inc 2010-02-24 00:48:24 +0000
+@@ -259,8 +259,8 @@
+ $http_header .= ' ('. rcmail_encrypt_header($host) . ')';
+ } else {
+ $http_header .= (($host != $hostname) ? $hostname : '[' . $host . ']');
+- $http_header .= ' ('. ($host == $hostname ? '' : $hostname . ' ') .
+- '[' . $host .'])';
++ if ($host != $hostname)
++ $http_header .= ' (['. $host .'])';
+ }
+ $http_header .= $nldlm . ' via ';
+ }
+@@ -272,14 +272,14 @@
+ $http_header .= ' ('. rcmail_encrypt_header($host) . ')';
+ } else {
+ $http_header .= (($host != $hostname) ? $hostname : '[' . $host . ']');
+- $http_header .= ' ('. ($host == $hostname ? '' : $hostname . ' ') .
+- '[' . $host .'])';
++ if ($host != $hostname)
++ $http_header .= ' (['. $host .'])';
+ }
+ // BY
+ $http_header .= $nldlm . 'by ' . $_SERVER['HTTP_HOST'];
+ // WITH
+- $http_header .= $nldlm . 'with ' . $_SERVER['SERVER_PROTOCOL'] .
+- ' ('.$_SERVER['REQUEST_METHOD'] . '); ' . date('r');
++ $http_header .= $nldlm . 'with HTTP (' . $_SERVER['SERVER_PROTOCOL'] .
++ ' '.$_SERVER['REQUEST_METHOD'] . '); ' . date('r');
+ $http_header = wordwrap($http_header, 69, $nldlm);
+
+ $headers['Received'] = $http_header;
+
--- /dev/null
+dbconfig-common_support.patch
+correct_install_path.patch
+use_packaged_tinymce.patch
+use_pspell.patch
+loginbox-size.patch
+default-charset-utf8.patch
+debianize_password_plugin.patch
+use-debian-jquery-ui.patch
--- /dev/null
+Don't use disable_smart_seqname which is not present in our version of MDB2.
+
+--- roundcube-0.2~stable/program/include/rcube_mdb2.php 2008-10-14 14:49:44.000000000 +0200
++++ roundcube-0.2~stable-patched/program/include/rcube_mdb2.php 2009-03-11 11:16:43.000000000 +0100
+@@ -86,7 +86,8 @@
+ 'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL);
+
+ if ($this->db_provider == 'pgsql') {
+- $db_options['disable_smart_seqname'] = true;
++ // commented out due toa php-mdb2-driver-pgsql < 1.5.0a in debian
++ // $db_options['disable_smart_seqname'] = true;
+ $db_options['seqname_format'] = '%s';
+ }
+
--- /dev/null
+Use packaged libjs-jquery-ui.
+
+diff --git a/plugins/jqueryui/jqueryui.php b/plugins/jqueryui/jqueryui.php
+index 7ed2018..5f4545c 100644
+--- a/plugins/jqueryui/jqueryui.php
++++ b/plugins/jqueryui/jqueryui.php
+@@ -21,18 +21,18 @@ class jqueryui extends rcube_plugin
+ $this->load_config();
+
+ // include UI scripts
+- $this->include_script("js/jquery-ui-$version.custom.min.js");
++ $this->include_script("js/jquery-ui.min.js");
+
+ // include UI stylesheet
+ $skin = $rcmail->config->get('skin', 'default');
+ $ui_map = $rcmail->config->get('jquery_ui_skin_map', array());
+- $ui_theme = $ui_map[$skin] ? $ui_map[$skin] : 'default';
++ $ui_theme = $ui_map[$skin] ? $ui_map[$skin] : 'smoothness';
+
+- if (file_exists($this->home . "/themes/$ui_theme/jquery-ui-$version.custom.css")) {
+- $this->include_stylesheet("themes/$ui_theme/jquery-ui-$version.custom.css");
++ if (file_exists($this->home . "/css/$ui_theme/jquery-ui.custom.css")) {
++ $this->include_stylesheet("css/$ui_theme/jquery-ui.min.css");
+ }
+ else {
+- $this->include_stylesheet("themes/default/jquery-ui-$version.custom.css");
++ $this->include_stylesheet("css/smoothness/jquery-ui.min.css");
+ }
+
+ // jquery UI localization
--- /dev/null
+Use tinymce from tinycme package instead of the shipped one.
+
+Index: b/program/steps/mail/sendmail.inc
+===================================================================
+--- a/program/steps/mail/sendmail.inc 2009-10-14 12:52:27.000000000 +0200
++++ b/program/steps/mail/sendmail.inc 2010-07-17 17:33:23.000000000 +0200
+@@ -115,7 +115,7 @@
+
+ // sanitize image name so resulting attachment doesn't leave images dir
+ $image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i', '', $image_name);
+- $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
++ $img_file = '/usr/share/tinymce/www/plugins/emotions/img/' . $image_name;
+
+ if (! in_array($image_name, $included_images)) {
+ // add the image to the MIME message
--- /dev/null
+Instead of using Google by default, we use pspell to avoid to send each mail to Google...
+
+Index: b/config/main.inc.php.dist
+===================================================================
+--- a/config/main.inc.php.dist 2010-07-17 17:33:23.000000000 +0200
++++ b/config/main.inc.php.dist 2010-07-17 17:33:24.000000000 +0200
+@@ -376,7 +376,7 @@
+
+ // Set the spell checking engine. 'googie' is the default. 'pspell' is also available,
+ // but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here.
+-$rcmail_config['spellcheck_engine'] = 'googie';
++$rcmail_config['spellcheck_engine'] = 'pspell';
+
+ // For a locally installed Nox Spell Server, please specify the URI to call it.
+ // Get Nox Spell Server from http://orangoo.com/labs/?page_id=72
--- /dev/null
+[type: gettext/rfc822deb] templates
--- /dev/null
+# translation of ar.po to Arabic
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Ossama M. Khayat <okhayat@yahoo.com>, 2007, 2008, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: ar\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2010-09-09 05:05+0300\n"
+"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
+"Language-Team: Arabic <support@arabeyes.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "خادم الوب المطلوب تهيئته آلياً:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"يدعم RoundCube أي خادم وب يدعمه PHP، ولكن يمكن تهيئة Apache وlighttpd فقط "
+"آلياً."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr "الرجاء اختيار خادم الوب الذي يجب أن يقوم RoundCube بتهيئته آلياً."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "هل تريد تشغيل خادم الوب الآن؟"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"لتنشيط التهيئة الجديدة، يجب إعادة تشغيل خادمات الوب التي تمت إعادة تهيئتها."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "خادمات IMAP المستخدمة مع RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "رجاء اختر خادم IMAP الذي يجب استخدامه مع RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"إن ترك هذا الحقل فارغاً، فسيتم إظهار مربع نص عند تسجيل الدخول. إدخال أسماء "
+"مضيفين تفصل بينهم مسافات سيظهر قائمة منسدلة بهذه الأسماء. وإدخال اسم مضيف "
+"هنا سيجبر استخدام هذا المضيف."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"لاستخدام اتصالات SSL، الرجاء إدخال اسم المضيف بالشكل 'ssl://hostname:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "اللغة الافتراضية:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "الرجاء اختيار اللغة الافتراضية للحزمة RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "يمكن تخطي هذا الخيار من قبل المستخدمين عبر تغيير تفضيلاتهم."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"على أي، سيتم استخدام اللغة الافتراضية لشاشة تسجيل الدخول والاتصال الأول "
+"للمستخدمين."
--- /dev/null
+# Czech translation of roundcube debconf messages.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the roundcube package.
+# Miroslav Kure <kurem@debian.cz>, 2008,2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-09-13 09:23+0200\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Webové servery, které se mají nastavit automaticky:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube podporuje libovolný webový server, pod kterým běží PHP, ovšem "
+"automaticky lze nastavit pouze Apache 2 a lighttpd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Vyberte prosím webové servery, které se mají automaticky nastavit pro "
+"RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Mají se webové servery restartovat nyní?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Aby se nové nastavení projevilo, musí se příslušné webové servery "
+"restartovat."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP servery používané s RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Vyberte prosím IMAP server, který se má s RoundCube použít."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Ponecháte-li prázdné, zobrazí se při přihlášení textové pole. Zadáte-li "
+"mezerami oddělený seznam serverů, zobrazí roletové menu. Zadání jediného "
+"serveru vynutí použití daného serveru."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Pro použití SSL spojení zadejte jména serverů ve tvaru 'ssl://"
+"jmenoserveru:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Výchozí jazyk:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Zadejte prosím výchozí jazyk RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Tuto volbu mohou jednotliví uživatelé přepsat ve svých předvolbách."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Výchozí jazyk se však použije na přihlašovací obrazovce a při prvním "
+"připojení uživatelů."
--- /dev/null
+# Danish translation roundcube.
+# Copyright (C) 2010 roundcube & nedenstående oversættere.
+# This file is distributed under the same license as the roundcube package.
+# Joe Hansen (joedalton2@yahoo.dk), 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2010-08-16 17:30+01:00\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <debian-l10n-danish@lists.debian.org> \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Internetservere at konfigurere automatisk:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube understøtter enhver internetserver, der er understøttet af PHP, "
+"dog kan kun Apache 2 og lighttpd konfigureres automatisk."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Vælg venligst de internetservere som skal konfigureres automatisk for "
+"RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Skal internetserverne genstartes nu?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"For at aktivere den nye konfiguration, skal de rekonfigurerede "
+"internetservere genstartes."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP-servere brugt med RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Vælg venligst IMAP-serveren som skal bruges med RoundCube."
+
+# engelsk fejl? pull-down menu -> drop down menu
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Hvis denne efterlades tom, vil en tekstboks blive vist ved logind. "
+"Indtastning af en mellemrumsadskilt liste af værter vil vise en "
+"rullegardinsmenu. Indtastning af en enkelt vært vil fremtvinge brug af denne "
+"vært."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"For at bruge SSL-forbindelser, indtast venligst værtsnavne som »ssl://"
+"hostname:993«."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Standardsprog:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Vælg venligst standardsproget for RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Dette valg kan overskrives af individuelle brugere i deres indstillinger."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Standardsproget vil blive brugt til logindskærmen og den første forbindelse "
+"for brugere."
--- /dev/null
+# German translation of roundcube templates
+# Helge Kreutzmann <debian@helgefjell.de>, 2007-2009.
+# This file is distributed under the same license as the roundcube package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.2.1-1\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-03-16 21:15+0100\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: de <debian-l10n-german@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "Apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "Lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Webserver, die automatisch konfiguriert werden sollen:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube unterstützt jeden Webserver, der auch von PHP unterstützt wird. "
+"Allerdings kann nur Apache 2 und Lighttpd automatisch konfiguriert werden."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Bitte wählen Sie den/die Webserver aus, die für RoundCube automatisch "
+"konfiguriert werden sollen."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Soll der/die Webserver jetzt automatisch neu gestartet werden?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Um die neue Konfiguration zu aktivieren, müssen der/die rekonfigurierten "
+"Webserver neu gestartet werden."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP-Server, die mit RoundCube verwendet werden sollen:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr ""
+"Bitte wählen Sie den/die IMAP-Server aus, die mit RoundCube verwendet werden "
+"soll."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Falls dies leer gelassen wird, erscheint ein Textkasten bei der Anmeldung. "
+"Bei Eingabe einer Liste von Rechnern (durch Leerzeichen getrennt) wird ein "
+"Auswahlmenü angezeigt. Wird ein einzelner Rechner eingegeben, so wird dieser "
+"erzwungen."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Um SSL-Verbindungen zu benutzen, geben Sie bitte die Rechnernamen als »ssl://"
+"hostname:993« ein."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Standardsprache:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Bitte wählen Sie die Standardsprache für RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Diese Auswahl kann von jedem Benutzer in seinen persönlichen Einstellungen "
+"überschrieben werden."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Allerdings wird die Standardsprache beim Anmeldebildschirm und der ersten "
+"Verbindung mit den Benutzern verwandt."
+
+#~ msgid "apache"
+#~ msgstr "Apache"
+
+#~ msgid "apache-ssl"
+#~ msgstr "Apache-SSL"
+
+#~ msgid "apache-perl"
+#~ msgstr "Apache-Perl"
--- /dev/null
+# roundcube po-debconf translation to Spanish
+# Copyright (C) 2004, 2007, 2009 Software in the Public Interest
+# This file is distributed under the same license as the roundcube package.
+#
+# Changes:
+# - Initial translation
+# Carlos Galisteo de Cabo <cgalisteo@k-rolus.net>, 2007
+#
+# - Updates
+# Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2009
+#
+# Traductores, si no conocen el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+# http://www.debian.org/intl/spanish/coordinacion
+# especialmente las notas de traducción en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.2.1-1\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-04-01 18:21+0200\n"
+"Last-Translator: Carlos Galisteo <cgalisteo@k-rolus.net>\n"
+"Language-Team: Debian l10n Spanishf <debian-l10n-spanish@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidores web a reconfigurar automáticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube funciona con cualquier servidor web que soporte PHP, sin embargo "
+"sólo se configuran automáticamente Apache 2 y lighttpd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Seleccione el/los servidor/es web que debe/n configurarse automáticamente "
+"para RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "¿Debe/n reiniciarse ahora el/los servidor/es web?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Debe/n reiniciarse el/los servidor/es web para activar la nueva "
+"configuración."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Servidor/es IMAP usado/s por RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Seleccione el/los servidor/es IMAP que se usará/n con RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Se mostrará un campo al autenticarse que el usuario podrá rellenar si deja "
+"este campo en blanco. Si proporciona una lista de equipos separados por "
+"espacios, se mostrará un menú desplegable. Si proporciona un único nombre de "
+"equipo se forzará el uso de este equipo."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Escriba los nombres de sistema como «ssl://hostname:9993» si desea usar "
+"conexiones SSL."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Idioma predeterminado:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Elija el idioma predeterminado para RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Los usuarios pueden cambiar esta opción en sus preferencias."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Sin embargo, el idioma predeterminado se usará en la pantalla de "
+"autenticación y en la primera conexión de los usuarios."
--- /dev/null
+# translation of roundcube-eu.po to Euskara
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Piarres Beobide <pi@beobide.net>, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube-eu\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-14 09:03+0100\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <Librezale@librezale.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Automatikoki konfiguratu behar den web zerbitzaria:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube-k PHP onartzen duen edozein web zerbitzari onartzen du, hala ere "
+"Apache2 eta lighttpd bakarrik konfiguratu daiteke automatikoki."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Mesedez hautatu Roundube-rentzat automatikoki konfiguratu behar den web "
+"zerbitzaria(k)."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Web zerbitzaria(k) orain berrabiarazi behar al da?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Konfigurazio berria gaitu ahal izateko, birkonfiguratutako web zerbitzaria"
+"(k) berrabiarazi egin behar d(ir)a."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "RoundCube-rekin erabiliko d(ir)en IMAP zerbitzaria(k):"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Mesedez hautatu RoundCube-rekin erabiliko den IMAP zerbitzaria(k)."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Hau zurian utzi ezkero, testu kutxa bat bistaraziko da saioa hastean. "
+"Zuriunez bereziriko ostalari zerrenda bat idatzi ezkero aukeratzeko menu bat "
+"bistaraziko da. Ostalari bakar bat idatziaz ostalari hori erabiltzea "
+"behartuko da."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"SSL konexioak erabiltzeko, idatzi ostalari izena formatu honetan: 'ssl://"
+"ostalaria:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Lehenetsitako hizkuntza:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Mesedez hautatu RoundCube-ren hizkuntz lehenetsia."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Hautapen hauek erabiltzaile bakoitzak bere hobespenetan gainidatzi ditzake."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Hala ere, lehenetsiriko hizkuntza saio hasiera orria eta erabiltzailearen "
+"lehen konexioetan erabiliko da."
--- /dev/null
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube_0.1~rc2-4\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-08 00:45+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: Finland\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Automaattisesti asetettavat verkkopalvelimet:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube tukee mitä tahansa verkkopalvelinta, joka tukee PHP:ta. Vain "
+"Apache 2 ja lighttpd voidaan kuitenkin asettaa automaattisesti."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Valitse verkkopalvelimet, joiden asetukset tulisi automaattisesti tehdä "
+"RoundCubea varten."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Tulisiko verkkopalvelimet käynnistää uudelleen nyt?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Uusien asetusten ottamiseksi käyttöön asetetut verkkopalvelimet tulee "
+"käynnistää uudelleen."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "RoundCuben kanssa käytettävät IMAP-palvelimet:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+#, fuzzy
+#| msgid "Please select the IMAP server that should be used with RoundCube."
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Valitse IMAP-palvelimet, joita käytetään RoundCuben kanssa."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Jos tämä kenttä jätetään tyhjäksi, kirjautumisvaiheessa näytetään "
+"tekstikenttä. Jos tässä kentässä on välilyönnein eroteltu lista "
+"palvelimista, kirjauduttaessa näytetään alasvetovalikko. Yhden palvelimen "
+"syöttäminen pakottaa kyseisen palvelimen käyttöön."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"SSL-yhteydet saadaan käyttöön syöttämällä palvelimien verkkonimet muodossa "
+"”ssl://verkkonimi:993”."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Oletuskieli:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Valitse RoundCuben oletuskieli."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Yksittäiset käyttäjät voivat muuttaa tätä valintaa asetuksissaan."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Oletuskieltä käytetään kuitenkin kirjautumisruudussa ja käyttäjien "
+"ensimmäisen yhteyden yhteydessä."
+
+#~ msgid "apache"
+#~ msgstr "apache"
+
+#~ msgid "apache-ssl"
+#~ msgstr "apache-ssl"
+
+#~ msgid "apache-perl"
+#~ msgstr "apache-perl"
--- /dev/null
+# Traduction Debconf pour le paquet RoundCube
+# Copyright (C) 2007
+# This file is distributed under the same license as the roundcube package.
+# Vincent Bernat <bernat@luffy.cx>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube-0.1~rc1~dfsg-1\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-08 11:24+0100\n"
+"Last-Translator: Vincent Bernat <bernat@luffy.cx>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "Apache 2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Serveur(s) web à configurer automatiquement :"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube fonctionne avec n'importe quel serveur web géré par PHP. "
+"Cependant, seuls Apache 2 et lighttpd peuvent être configurés "
+"automatiquement."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Veuillez choisir le(s) serveur(s) Web à configurer automatiquement pour "
+"Roundcube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Faut-il redémarrer le(s) serveur(s) web maintenant ?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Afin d'activer la nouvelle configuration, le(s) serveur(s) web reconfigurés "
+"doive(nt) être redémarrés."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Serveur(s) IMAP à utiliser avec RoundCube :"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Veuillez choisir le(s) serveur(s) IMAP que doit utiliser RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Si ce champ est laissé vide, il pourra être renseigné à la connexion. En "
+"entrant une liste d'hôtes séparés par des espaces, ceux-ci apparaîtront dans "
+"un menu déroulant. En spécifiant un seul hôte, ce dernier sera "
+"systématiquement utilisé."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Pour utiliser des connexions sécurisées (SSL), veuillez indiquer le nom du "
+"serveur sous la forme « ssl://serveur:993 »."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Langue par défaut :"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Veuillez choisir la langue par défaut pour RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Ce choix peut être personnalisé par chaque utilisateur dans ses préférences."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Cependant, la langue par défaut sera utilisée sur l'écran de connexion et "
+"lors de la première connexion de chaque utilisateur."
+
+#~ msgid "apache"
+#~ msgstr "Apache"
+
+#~ msgid "apache-ssl"
+#~ msgstr "Apache SSL"
+
+#~ msgid "apache-perl"
+#~ msgstr "Apache-perl"
--- /dev/null
+# Galician translation of roundcube's debconf templates
+# This file is distributed under the same license as the roundcube package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-07 16:27+0000\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web a reconfigurar automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube soporta os servidores web soportados por PHP; nembargantes, só se "
+"poden configurar automaticamente Apache 2 e lighttpd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Escolla o(s) servidor(es) web que se deberían configurar automaticamente "
+"para RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "¿Debería(n) reiniciarse o(s) servidor(es) web?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Para activar a nova configuración hai que reiniciar o(s) servidor(es) web "
+"reconfigurado(s)."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Servidor(es) IMAP a empregar con RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+#, fuzzy
+#| msgid "Please select the IMAP server that should be used with RoundCube."
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Escolla o servidor IMAP que se debería empregar con RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Se deixa isto baleiro, hase amosar unha caixa de texto ao se conectar. Se "
+"introduce unha lista de servidores separados por espazos hase amosar un menú "
+"desplegable. Se introduce un só servidor ha facer que só se empregue ese "
+"servidor."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Para empregar conexións SSL, introduza os nomes dos servidores coma \"ssl://"
+"servidor:993\"."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Idioma por defecto:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Escolla o idioma por defecto de RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Cada usuario pode cambiar esta opción nas súas preferencias."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Nembargantes, hase empregar o idioma por defecto na pantalla de inicio e na "
+"primeira conexión de cada usuario."
+
+#~ msgid "apache"
+#~ msgstr "apache"
+
+#~ msgid "apache-ssl"
+#~ msgstr "apache-ssl"
+
+#~ msgid "apache-perl"
+#~ msgstr "apache-perl"
--- /dev/null
+# Italian (it) translation of debconf templates for roundcube\r
+# Copyright (C) 2007 Free Software Foundation, Inc.\r
+# This file is distributed under the same license as the roundcube package.\r
+# Luca Monducci <luca.mo@tiscali.it>, 2007-2009.\r
+# \r
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.2.2 italian debconf templates\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-08-30 12:09+0200\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Server web da configurare automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube può essere usato con qualsiasi server web che supporta PHP, ma "
+"questo processo di configurazione automatica funziona solo con Apache 2 e "
+"lighttpd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Selezionare quale/i server web configurare automaticamente per RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Riavviare il/i server web adesso?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Per attivare la nuova configurazione è necessario riavviare il/i server web "
+"appena riconfigurato/i."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Server IMAP da usare con RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Scegliere il/i server IMAP da usare con RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Se si lascia in bianco, viene richiesto l'inserimento nella schermata di "
+"accesso. Inserendo un elenco di host separati da degli spazi viene mostrato "
+"un menu a discesa. Inserendo un solo host, viene usato quell'host."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Per usare connessioni SSL, inserire i nomi host nel formato \"ssl://"
+"nomehost:993\"."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Lingua predefinita:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Scegliere la lingua predefinita per RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Gli utenti possono modificare questa scelta nelle proprie preferenze."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"La lingua predefinita viene comunque usata nella schermata d'accesso e per "
+"la prima connessione degli utenti."
--- /dev/null
+# Copyright (C) 2009 Debian Roundcube Maintainers <pkg-roundcube-maintainers@lists.alioth.debian.org>\r
+# This file is distributed under the same license as roundcube package.\r
+# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2009.\r
+# \r
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.2~stable-1\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-03-06 06:26+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "自動的に設定するウェブサーバ:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube は PHP をサポートしているウェブサーバであればどれでもサポートしてい"
+"ますが、自動的に設定できるのは Apache2 と lighttpd のみです。"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr "RoundCube 用の設定を自動的に実施するウェブサーバを選択してください。"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "今すぐウェブサーバを再起動しますか?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"新しい設定を反映するには、再設定したウェブサーバを再起動する必要があります。"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "RoundCube で利用する IMAP サーバ:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "RoundCube で利用する IMAP サーバを選択してください。"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"ここで入力しない場合は、ログイン時にテキストボックスが表示されます。空白で区"
+"切られたホストのリストを入力すると、プルダウンメニューが表示されます。ホスト"
+"名を一つだけ入力した場合はそのホストが強制的に利用されます。"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"SSL 接続を利用するには、'ssl://hostname:993' のようにしてホスト名を入力してく"
+"ださい。"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "標準の言語:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "RoundCube での標準の言語を入力してください。"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "ここでの選択は、個々のユーザの個人設定で上書きできます。"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"しかし、標準に設定した言語はログイン画面とユーザの初回の接続画面に利用されま"
+"す。"
--- /dev/null
+# Dutch translation of roundcube debconf templates.
+# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the roundcube package.
+# Jeroen Schot <schot@a-eskwadraat.nl>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.7-3\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2012-01-13 15:20+0100\n"
+"Last-Translator: Jeroen Schot <schot@a-eskwadraat.nl>\n"
+"Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Automatisch te configureren webserver(s):"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube ondersteunt elke webserver die PHP ondersteunt, maar alleen Apache "
+"2 en lighttpd kunnen automatisch worden geconfigureerd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Welke webservers moeten automatisch worden geconfigureerd voor RoundCube?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Webserver(s) nu herstarten?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Om de nieuwe configuratie te activeren moeten de opnieuw ingestelde webserver"
+"(s) worden herstart."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Bij RoundCube te gebruiken IMAP-server(s):"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Welke IMAP-servers moeten er met RoundCube worden gebruikt?"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Wanneer dit leeg wordt gelaten zal er een tekstvak worden weergegeven bij "
+"het inloggen. Wanneer u een door spaties gescheiden lijst van computernamen "
+"opgeeft zal dit als een keuzemenu worden weergegeven. Het opgeven van één "
+"enkele computernaam dwingt het gebruikt van deze af."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"U kunt een SSL-verbinding aangeven door de computernaam als volgt in te "
+"voeren: 'ssl://hostname:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Standaardtaal:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Wat is de standaardtaal voor RoundCube?"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Individuele gebruikers kunnen in hun voorkeuren een andere taal kiezen."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Maar de standaardtaal zal worden gebruikt voor het loginscherm en bij de "
+"eerste verbinding van gebruikers."
--- /dev/null
+# Portuguese translations for roundcube package.
+# Copyright (C) Miguel Figueiredo
+# This file is distributed under the same license as the roundcoube package.
+# Miguel Figueiredo <elmig@debianpt.org>, 2007, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-09 14:12+0000\n"
+"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web a configurar automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"O RoundCube suporta qualquer servidor web que suporte PHP, no entanto apenas "
+"o Apache 2 e lighttpd podem ser automaticamente configurados."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Por favor escolha o(s) servidor(es) web que deve(m) ser automaticamente "
+"configurado(s) para o RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Deverá o servidor web ser reiniciado agora?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"De modo a activar a nova configuração, o(s) servidor(es) web reconfigurados "
+"terão de ser reiniciados."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Servidor(es) IMAP utilizado(s) com o RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr ""
+"Por favor escolha o(s) servidor(es) IMAP que deve(m) ser utilizado(s) com o "
+"RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Se isto for deixado em branco, será mostrada uma caixa de texto no login. "
+"Introduzir uma lista de máquinas, separada por espaços, irá mostrar um menu "
+"pull-down. Introduzir uma única máquina irá forçar a utilização desta "
+"máquina."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Para utilizar ligações SSL, por favor introduza os nomes das máquinas como "
+"'ssl://nomedamáquina:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Idioma por omissão:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Por favor, escolha o idioma por omissão para o RoundCoube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Esta escolha pode ser ultrapassada por utilizadores individuais nas suas "
+"preferências."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"No entanto, o idioma pré-definido será utilizado para o ecrã de login e para "
+"a primeira ligação dos utilizadores."
+
+#~ msgid "apache"
+#~ msgstr "apache"
+
+#~ msgid "apache-ssl"
+#~ msgstr "apache-ssl"
+
+#~ msgid "apache-perl"
+#~ msgstr "apache-perl"
--- /dev/null
+# roundcube Brazilian Portuguese translation.
+# Copyright (C) 2009 roundcube's COPYRIGHT HOLDER
+# This file is distributed under the same license as the roundcube package.
+# Bruno Gurgel Gomes de Oliveira <bruno.gurgel@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-03-11 13:15+1200\n"
+"Last-Translator: Bruno Gurgel Gomes de Oliveira <bruno.gurgel@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
+"org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"pt_BR utf-8\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Servidor(es) web para configurar automaticamente:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"O RoundCube dá suporte a qualquer servidor web que tenha suporte a PHP, no "
+"entanto, somente o Apache2 e o lighttpd podem ser configurados "
+"automaticamente."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Por favor, selecione o(s) servidor(es) web que deve(m) ser configurado(s) "
+"automaticamente para o RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "O(s) servidor(es) web deve(m) ser reiniciado(s) agora?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Para ativar a nova configuração, o(s) servidor(es) web reconfigurado(s) deve"
+"(m) ser reiniciado(s)."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "Servidor(es) IMAP usado(s) pelo RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr ""
+"Por favor, selecione o(s) servidor(es) IMAP que deve(m) ser usado(s) com o "
+"RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Se isto for deixado em branco, uma caixa de texto será mostrada no login. "
+"Informando uma lista de hosts separados por espaço exibirá um menu suspenso. "
+"Informando um único host forçará o uso do mesmo."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Para usar conexões SSL, por favor, informe os nomes de máquina como: 'ssl://"
+"nome-da-máquina:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Idioma padrão:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Por favor, escolha o idioma padrão para o RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+"Esta escolha poderá ser sobrescrita por usuários em suas preferências "
+"individuais."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"No entanto, o idioma padrão será usado para a tela de login e a primeira "
+"conexão dos usuários."
--- /dev/null
+# translation of ru.po to Russian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2007, 2008.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.2.1-1\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-05-15 21:20+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Веб-сервер(ы), которые нужно настроить автоматически:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube работает с любым веб-сервером, поддерживающим PHP, однако "
+"автоматическая настройка выполняется только для Apache и lighttpd."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Выберите веб-сервер(ы), которые нужно настроить автоматически под RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Перезапустить веб-сервер(ы) прямо сейчас?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Чтобы новые настройки вступили в силу, нужно перезапустить перенастроенный "
+"веб-сервер(ы)."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP-сервер(ы), используемые с RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Укажите сервер(ы) IMAP, который нужно использовать с RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Если вы оставите поле пустым, при входе будет показано текстовое поле для "
+"ввода. Укажите список (через пробел) хостов, которые нужно показать в "
+"выпадающем меню. Если ввести только один хост, то только он и будет "
+"использован."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Чтобы использовать соединение через SSL, вводите имена хостов в виде 'ssl://"
+"хост:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Язык по умолчанию:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Укажите язык по умолчанию для RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Этот выбор может быть изменён любым пользователем в их настройках."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Однако, язык по умолчанию будет использован для выдачи приглашения к входу и "
+"во время первого подключения пользователя."
--- /dev/null
+# Slovak translation of roundcube debconf template
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the roundcube package.
+# Ivan Masár <helix84@centrum.sk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-05-15 17:59+0100\n"
+"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Nastaviť automaticky nasledovné webové servery:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"RoundCube podporuje akýkoľvek webový server, ktorý podporuje PHP, avšak iba "
+"Apache 2 a lighttpd je možné nastaviť automaticky."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Prosím, vyberte, ktoré webové servery sa majú nastaviť automaticky pre "
+"RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Majú sa webové servery teraz reštartovať?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"Aby sa aktivovala nové konfigurácia, nastavené webové servery je potrebné "
+"reštartovať."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP servery na použitie s RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+#, fuzzy
+#| msgid "Please select the IMAP server that should be used with RoundCube."
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Prosím, vyberte, ktorý IMAP server sa má použiť s RoundCube."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Ak toto pole necháte prázdne, pri prihlásení sa zobrazí textové pole. Ak "
+"zadáte zoznam strojov oddelených čiarkami, zobrazí sa roletová ponuka. Ak "
+"zadáte jeden stroj, vynúti sa použitie tohto stroja."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"Aby ste mohli používať SSL spojenia, zadajte prosím názvy strojov v tvare "
+"'ssl://nazovstroja:993'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Štandardný jazyk:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Prosím, vyberte štandardný jazyk rozhrania RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Nastavenia jednotlivých používateľov majú prednosť pre touto voľbou."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Avšak štandardný jazyk sa použije na prihlasovacej obrazovke a pri prvom "
+"prihlásení používateľa."
--- /dev/null
+# translation of debconf messages for Roundcube to Swedish
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the Roundcube package.
+#
+# Martin Bagge <brother@bsnet.se>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2009-02-23 01:41+0100\n"
+"Last-Translator: Martin Bagge <brother@bsnet.se>\n"
+"Language-Team: swedish <debian-l10n-swedish@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "apache2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "lighttpd"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "Webservrar som ska ställas in automatiskt:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"Roundcube kan köras på alla webbservrar som stödje PHP, dock kan bara Apache "
+"2 och lighttpd ställas in automatiskt."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"Ange den eller de webbservrar som ska ställas in automatiskt för RoundCube."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "Ska webbservern/-servrarna startas om nu?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr "För att aktivera de nya inställningarna måste webbservern startas om."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "IMAP-värd/-ar som ska användas med RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "Ange den/de IMAP-server/-servrar som ska användas med RoundCube:"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"Om detta fält lämnas tomt kommer en textruta att visas vid inloggningsrutan. "
+"Ange en mellanslagsseparerad lista med värdar för att visa en "
+"rullgardinsmeny. Genom att endast ange en värd kommer endast denna att kunna "
+"användas."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"För att använda säker anslutning (SSL) ang värdnamnet i formen 'ssl://"
+"värdnamn:933'."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "Standardspråk:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "Ange standardspråk för RoundCube."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "Detta språk kan ändras för varje användare i deras egna inställingar."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"Tänk på att standardspråket kommer att användas för inloggningsrutan och "
+"första gången en användare ansluter."
--- /dev/null
+# translation of roundcube 0.1-3.po to Tamil
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Dr.T.Vasudevan <agnihot3@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: roundcube 0.1-3\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: 2008-03-07 19:05+0530\n"
+"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n"
+"Language-Team: Tamil <ubuntu>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr "அபாசே2"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr "லைட்டிபிடி (lighttpd)"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr "தானியங்கியாக வடிவமைக்க வலை சேவையகம்(கங்கள்):"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+"ரவுண்ட் க்யூப் ஹெச்பிஆல் ஆதரிக்கப்பட்ட எந்த வலை சேவையகத்தையும் ஆதரிக்கும். ஆயினும் அபாசே 2 "
+"மற்றும் லைட்டிபிடி (lighttpd ) மட்டுமே தானியங்கியாக வடிவமைக்கப்பட முடியும்."
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+"ரவ்ண்ட்க்யூப் க்கு தானியங்கியாக வடிவமைக்கப்பட வேண்டிய வலை சேவையகத்தை(கங்களை) "
+"தேர்ந்தெடுக்கவும்."
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr "வலை சேவையகத்தை(கங்களை) மீள் துவக்கவா?"
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+"புதிய வடிவமைப்பை செயல்படுத்த வடிவமைத்த வலை சேவையகம் (-கங்கள்) மீள் துவக்கப் பட வேண்டும்."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr "ரவ்ண்ட்க்யூப் உடன் பயன்படுத்த வேண்டிய ஐமாப் சேவையகம்(கங்கள்):"
+
+#. Type: string
+#. Description
+#: ../templates:4001
+#, fuzzy
+#| msgid "Please select the IMAP server that should be used with RoundCube."
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr "ரவ்ண்ட்க்யூப் உடன் பயன்படுத்த வேண்டிய ஐமாப் சேவையகம்(கங்கள்) ஐ தேர்ந்தெடுக்கவும்."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+"இதை வெற்றாக விட்டால் உள்நுழைவு போது ஒரு சோதனைப் பெட்டி காட்டப் படும். இடைவெளியுடன் "
+"கூடிய புரவன்கள் பட்டியல் ஐ உள்ளிட்டால் ஒரு இழுவை பட்டியல் காட்டப் படும். ஒரு தனிப் பெயரை "
+"உள்ளிட்டால் இந்த புரவனை பயன்படுத்துவதை உறுதியாக்கும்."
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+"எஸ்எஸ்எல் இணைப்பை பயன் படுத்த புரவன் பெயர்களை 'ssl://hostname:993' போல் உள்ளிடவும்."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr "முன்னிருப்பு மொழி:"
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr "ரவ்ண்ட்க்யூப் க்கு முன்னிருப்பு மொழி ஐ தேர்ந்தெடுக்கவும்."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr "இந்த தேர்வு பயனர் விருப்பங்களால் மீறப்பட இயலும்."
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
+"ஆயினும் உள்நுழைவின் போதும் முதல் பயனர் இணைப்பின் போதும் முன்னிருப்பு மொழியே பயன் படும்."
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: roundcube@packages.debian.org\n"
+"POT-Creation-Date: 2009-02-15 17:05+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "apache2"
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../templates:2001
+msgid "lighttpd"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid "Web server(s) to configure automatically:"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"RoundCube supports any web server supported by PHP, however only Apache 2 "
+"and lighttpd can be configured automatically."
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:2002
+msgid ""
+"Please select the web server(s) that should be configured automatically for "
+"RoundCube."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid "Should the webserver(s) be restarted now?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:3001
+msgid ""
+"In order to activate the new configuration, the reconfigured web server(s) "
+"have to be restarted."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "IMAP server(s) used with RoundCube:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid "Please select the IMAP server(s) that should be used with RoundCube."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"If this is left blank, a text box will be displayed at login. Entering a "
+"space-separated list of hosts will display a pull-down menu. Entering a "
+"single host will enforce using this host."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:4001
+msgid ""
+"To use SSL connections, please enter host names as 'ssl://hostname:993'."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Default language:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "Please choose the default language for RoundCube."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid "This choice can be overridden by individual users in their preferences."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../templates:5001
+msgid ""
+"However, the default language will be used for the login screen and the "
+"first connection of users."
+msgstr ""
--- /dev/null
+roundcube (0.7.1-2) unstable; urgency=high
+
+ Roundcube SQLite support is limited to SQLite 2.x. No support for
+ SQLite 3.x currently exists. Unfortunately, SQLite 2.x is unmaintained
+ for several years and therefore has been dropped from php5
+ package. You will need to select another database to keep Roundcube
+ running.
+
+ -- Vincent Bernat <bernat@debian.org> Tue, 07 Feb 2012 17:41:58 +0100
+
+roundcube (0.3.1-2) unstable; urgency=low
+
+ Starting from Roundcube 0.3, an incompatibility with Suhosin session
+ encryption is present. This can be resolved by tuning php.ini for
+ Roundcube with the "suhosin.session.encrypt" set to "Off".
+
+ We ship a .htaccess in /var/lib/roundcube to disable this
+ option. However, this only works with a webserver like Apache with
+ mod_php. If you are using a webserver with PHP configured as a
+ *CGI process, you need to tune the php.ini for this process:
+ either turn of globally Suhosin session encryption in
+ /etc/php5/conf.d/suhosin or you can provide your own php.ini to
+ php5-cgi with "-c" option.
+
+ -- Vincent Bernat <bernat@debian.org> Mon, 02 Nov 2009 19:48:22 +0100
+
--- /dev/null
+This package ships with configuration files for Apache and
+lighttpd. However, it is not possible to cover all cases and you still
+need to do some manual steps to adapt the installation to your site
+configuration.
+
+You can uncomment the Alias directives in
+`/etc/roundcube/apache.conf'. You can then access your roundcube
+installation under `/roundcube' in all virtual hosts. If you want to
+create a specific virtual host, just point DocumentRoot to
+`/var/lib/roundcube'.
+
+It is important to keep in mind that the root installation of
+roundcube is `/var/lib/roundcube' and not `/usr/share/roundcube'. You
+also need to keep the configuration file provided. Otherwise, your
+installation will be non functional and insecure.
+
+For better compatibility, the schema used for MySQL is the one
+targeted at MySQL 4.0, not the one for MySQL 4.1 or MySQL 5.x.
+
+To use tinymce editor:
+ - set $rcmail_config['htmleditor'] to TRUE in
+ /etc/roundcube/main.inc.php
+
+No plugins are shipped (except core plugins) with this package of
+roundcube. Add your plugin in /var/lib/roundcube/plugins.
+
+This package makes use of dbconfig-common to setup the database. If
+you do not wish to use dbconfig-common, you can find the SQL commands
+to use to install and upgrade the database in
+`/usr/share/dbconfig-common/data/roundcube'. When upgrading, you need
+to apply each upgrade file from the version you are upgrading
+(excluded). For example, if you are using MySQL and want to upgrade
+from 0.3-1, you need to apply `mysql/0.5-1'. If you are upgrading from
+0.2~alpha-5, you need to apply `mysql/0.2~stable-1' and `mysql/0.5-1'.
+
+ -- Vincent Bernat <bernat@debian.org>, Sun, 13 Feb 2011 12:59:27 +0100
--- /dev/null
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_input medium roundcube/hosts || true
+db_go || true
+
+# Retrieve all available languages
+instd_langs=$(echo /usr/share/roundcube/program/localization/*/messages.inc | \
+ sed 's+[^ ]*/\([^ ]*\)/messages.inc+\1,+g' | sed 's+,$++')
+db_subst roundcube/language languages $instd_langs
+# First try to get the current choice in case of preseeding or if the
+# question has already been asked
+db_get roundcube/language || true
+locale="$RET"
+if [ -n "$locale" -a -d "/usr/share/roundcube/program/localization/$locale" ]; then
+ # We get our answer (db_set should be useless in fact)
+ db_set roundcube/language $locale
+else
+ # Either we never answered the question or the locale does not
+ # exist any more. In both cases, we do as if we never seen the
+ # question.
+ db_fset roundcube/language seen false
+ # Try to guess the locale
+ locale=$(echo $LANG | sed 's/[@\.].*//')
+ if [ -d /usr/share/roundcube/program/localization/$locale ]; then
+ db_set roundcube/language $locale
+ else
+ locale=$(echo $locale | sed 's/_.*//')
+ if [ -d /usr/share/roundcube/program/localization/$locale ]; then
+ db_set roundcube/language $locale
+ else
+ db_set roundcube/language en_US
+ fi
+ fi
+fi
+# Ask the question
+db_input medium roundcube/language || true
+db_go || true
+
+if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
+ dbc_dbtypes="mysql, pgsql"
+ dbc_authmethod_user="password"
+ . /usr/share/dbconfig-common/dpkg/config
+ dbc_go roundcube $@
+fi
+
+db_input medium roundcube/reconfigure-webserver || true
+db_go || true
+db_input medium roundcube/restart-webserver || true
+db_go || true
--- /dev/null
+#!/bin/sh
+
+MAX_TMPFILE_LIFETIME=5
+# MAX_TMPFILE_LIFETIME can be overridden in this file
+if [ -r /etc/default/roundcube-core ]; then
+ . /etc/default/roundcube-core
+fi
+
+if [ -d /var/lib/roundcube/temp ]; then
+ find /var/lib/roundcube/temp -type f -mtime +$MAX_TMPFILE_LIFETIME -print0 | xargs -0 -r rm
+fi
--- /dev/null
+# Uncomment the following line to alter the default delay to clean
+# temporary directory /var/lib/roundcube/temp
+# MAX_TMPFILE_LIFETIME=5
--- /dev/null
+usr/share/roundcube
+usr/share/dbconfig-common/data/roundcube/install
+usr/share/dbconfig-common/data/roundcube/upgrade/mysql
+usr/share/dbconfig-common/data/roundcube/upgrade/pgsql
+etc/roundcube
+etc/roundcube/plugins/jqueryui
+var/log/roundcube
+var/lib/roundcube/config
+var/lib/roundcube/plugins
+var/lib/roundcube/skins
+var/lib/roundcube/temp
+etc/default
--- /dev/null
+README
+INSTALL
--- /dev/null
+robots.txt index.php .htaccess program/ bin/ usr/share/roundcube
+skins/default/ usr/share/roundcube/skins
+
+plugins/filesystem_attachments/ usr/share/roundcube/plugins
+
+plugins/jqueryui/jqueryui.php usr/share/roundcube/plugins/jqueryui
+plugins/jqueryui/config.inc.php.dist usr/share/roundcube/plugins/jqueryui
+
+debian/conf/* etc/roundcube
+config/*.php etc/roundcube
--- /dev/null
+etc/roundcube/main.inc.php var/lib/roundcube/config/main.inc.php
+usr/share/roundcube/index.php var/lib/roundcube/index.php
+usr/share/roundcube/robots.txt var/lib/roundcube/robots.txt
+usr/share/roundcube/program var/lib/roundcube/program
+usr/share/roundcube/skins/default var/lib/roundcube/skins/default
+
+usr/share/roundcube/plugins/filesystem_attachments var/lib/roundcube/plugins/filesystem_attachments
+usr/share/roundcube/plugins/jqueryui var/lib/roundcube/plugins/jqueryui
+usr/share/javascript/jquery-ui/jquery-ui.min.js usr/share/roundcube/plugins/jqueryui/js/jquery-ui.min.js
+usr/share/javascript/jquery-ui/ui/i18n usr/share/roundcube/plugins/jqueryui/js/i18n
+usr/share/javascript/jquery-ui/css usr/share/roundcube/plugins/jqueryui/css
+etc/roundcube/plugins/jqueryui/config.inc.php usr/share/roundcube/plugins/jqueryui/config.inc.php
+
+var/log/roundcube var/lib/roundcube/logs
+usr/share/roundcube/main.inc.php.dist usr/share/doc/roundcube/main.inc.php.dist
--- /dev/null
+/var/log/roundcube/errors /var/log/roundcube/sendmail /var/log/roundcube/userlogins {
+ create 0640 www-data adm
+ compress
+ missingok
+ notifempty
+ rotate 52
+ weekly
+}
--- /dev/null
+#!/bin/sh
+# postinst script for roundcube
+#
+# see: dh_installdeb(1)
+
+set -e
+
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/postinst
+dbc_generate_include=php:/etc/roundcube/debian-db.php
+dbc_generate_include_owner="root:www-data"
+dbc_generate_include_perms="640"
+dbc_dbfile_owner="www-data:www-data"
+dbc_dbfile_perms="0660"
+dbc_dbuser=roundcube
+dbc_dbname=roundcube
+
+dbc_go roundcube $@
+
+lighttpd_install() {
+ if [ ! -f /etc/lighttpd/conf-available/50-roundcube.conf ] ; then
+ if [ ! -x /usr/sbin/lighty-enable-mod ] ; then
+ echo "Lighttpd not installed, skipping"
+ else
+ ln -s /etc/roundcube/lighttpd.conf /etc/lighttpd/conf-available/50-roundcube.conf
+ lighty-enable-mod roundcube
+ fi
+ fi
+}
+
+apache_install() {
+ webserver=$1
+ if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/roundcube ]; then
+ ln -s /etc/roundcube/apache.conf /etc/$webserver/conf.d/roundcube
+ fi
+}
+
+
+case "$1" in
+ configure)
+
+ # We try to fix an incomplete upgrade (see #610725 and #613586)
+ if [ -n "$2" ] && dpkg --compare-versions "$2" le 0.5.1+dfsg-5; then
+ db_get roundcube/dbconfig-upgrade || true
+ if [ x"$RET" = x"true" ]; then
+ if [ x"$dbc_dbtype" = x"mysql" ]; then
+ # Ok, we may need to do some upgrade steps.
+ echo "Fixing MySQL installation..."
+ if dpkg --compare-versions "$2" ge 0.5; then
+ # Hack (ugly) to replace "mysql" by "mysql -f"
+ real_mysql="$(which mysql)"
+ workdir="$(mktemp -d)"
+ oldpath="$PATH"
+ cat <<EOF > "$workdir/mysql"
+#!/bin/sh
+"$real_mysql" "\$@" -f
+EOF
+ chmod +x "$workdir/mysql"
+ PATH="$workdir:$PATH"
+ dbc_mysql_exec_file \
+ /usr/share/dbconfig-common/data/roundcube/upgrade/mysql/0.5-1 || true
+ PATH="$oldpath"
+ rm -rf "$workdir"
+ fi
+ cat <<EOF | while read command; do dbc_mysql_exec_command "$command" || true ; done
+ALTER TABLE \`messages\` ADD INDEX \`index_index\` (\`user_id\`, \`cache_key\`, \`idx\`);
+ALTER TABLE \`contacts\`ADD INDEX \`user_contacts_index\` (\`user_id\`,\`email\`);
+ALTER TABLE \`identities\` ADD \`changed\` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER \`user_id\`;
+ALTER TABLE \`identities\` ADD INDEX \`user_identities_index\` (\`user_id\`, \`del\`);
+EOF
+ fi
+ fi
+ fi
+
+ CONFFILE=/etc/roundcube/main.inc.php
+ touch $CONFFILE.ucftmp
+ chmod 640 $CONFFILE.ucftmp
+
+ db_get roundcube/hosts || true
+ hosts="$RET"
+ if [ "$hosts" != "" ]; then
+ hosts="array(\"$(echo $hosts | sed 's/ /\",\"/g')\")"
+ else
+ hosts="''"
+ fi
+
+ db_get roundcube/language || true
+ language="$RET"
+
+ # Get current 3DES key from /etc/roundcube/main.inc.php
+ [ -f /etc/roundcube/main.inc.php ] && {
+ deskey=$(sed -n "s+^\$rcmail_config\['des_key'\] = '\(.*\)';\$+\1+p" \
+ /etc/roundcube/main.inc.php)
+ }
+ # If this is the default key, forget it !
+ [ "$deskey" = "rcmail-!24ByteDESkey*Str" ] && unset deskey
+ # Generate a new one
+ while [ -z "$deskey" ]; do
+ deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | \
+ tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
+ done
+
+ # Put hosts, language and key in main.inc.php
+ cat /usr/share/roundcube/main.inc.php.dist | while read line; do
+ case "$line" in
+ "\$rcmail_config['default_host'] = "*)
+ printf "\$rcmail_config['default_host'] = %s;\n" "${hosts}"
+ ;;
+ "\$rcmail_config['des_key'] = "*)
+ printf "\$rcmail_config['des_key'] = '%s';\n" "${deskey}"
+ ;;
+ "\$rcmail_config['language'] = "*)
+ printf "\$rcmail_config['language'] = '%s';\n" "${language}"
+ ;;
+ *)
+ printf "%s\n" "$line"
+ ;;
+ esac
+ done >> $CONFFILE.ucftmp
+
+ ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE
+ chown root:www-data $CONFFILE
+ rm -f $CONFFILE.ucftmp
+
+ # Handle webserver reconfiguration/restart ; stolen from zabbix package
+ db_get roundcube/reconfigure-webserver || true
+ webservers="$RET"
+ restart=""
+
+ for webserver in $webservers; do
+ webserver=${webserver%,}
+ if [ "$webserver" = "lighttpd" ] ; then
+ lighttpd_install
+ else
+ apache_install $webserver
+ fi
+ test -x /usr/sbin/$webserver || continue
+ restart="$restart $webserver"
+ done
+
+ db_get roundcube/restart-webserver || true
+ res="$RET"
+ db_stop || true
+ if [ "$res" = "true" ]; then
+ for webserver in $restart; do
+ webserver=${webserver%,}
+ # Redirection of 3 is needed because Debconf uses it and it might
+ # be inherited by webserver. See bug #446324.
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d $webserver reload 3>/dev/null || true
+ else
+ /etc/init.d/$webserver reload 3>/dev/null || true
+ fi
+ done
+ fi
+
+ chown -R www-data:adm /var/log/roundcube
+ chmod -R 750 /var/log/roundcube
+ chown -R www-data:www-data /var/lib/roundcube/temp
+ chmod -R 750 /var/lib/roundcube/temp
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# postrm script for roundcube
+#
+# see: dh_installdeb(1)
+
+set -e
+
+if [ -f /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+fi
+if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then
+ . /usr/share/dbconfig-common/dpkg/postrm
+ dbc_go roundcube $@
+fi
+
+lighttpd_remove() {
+ if [ -f /etc/lighttpd/conf-available/50-roundcube.conf ] ; then
+ rm -f /etc/lighttpd/conf-available/50-roundcube.conf
+ if [ ! -x /usr/sbin/lighty-disable-mod ] ; then
+ echo "Lighttpd not installed, skipping"
+ else
+ lighty-disable-mod roundcube
+ fi
+ # See bug #448682
+ if [ -h /etc/lighttpd/conf-enabled/50-roundcube.conf ] ; then
+ echo 'Manually deleting lighttpd/roundcube configuration link'
+ rm /etc/lighttpd/conf-enabled/50-roundcube.conf
+ fi
+ fi
+}
+
+apache_remove() {
+ if [ -d /etc/$webserver/conf.d ] && [ -L /etc/$webserver/conf.d/roundcube ]; then
+ rm -f /etc/$webserver/conf.d/roundcube
+ fi
+}
+
+
+case "$1" in
+ upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+
+ remove)
+
+ # Handling web server reconfiguration
+ db_get roundcube/reconfigure-webserver
+ webservers="$RET"
+ restart=""
+
+ for webserver in $webservers; do
+ webserver=${webserver%,}
+
+ case "$webserver" in
+ apache*)
+ apache_remove $webserver
+ ;;
+ lighttpd)
+ lighttpd_remove
+ ;;
+ *)
+ echo "Unknown webserver $webserver"
+ ;;
+ esac
+
+ test -x /usr/sbin/$webserver || continue
+ restart="$restart $webserver"
+
+ done
+
+ db_get roundcube/restart-webserver
+ res="$RET"
+ db_stop || true
+ if [ "$res" = "true" ]; then
+ for webserver in $restart; do
+ webserver=${webserver%,}
+ # Redirection of 3 is needed because Debconf uses it and it might
+ # be inherited by webserver. See bug #446324.
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d $webserver reload 3>/dev/null || true
+ else
+ /etc/init.d/$webserver reload 3>/dev/null || true
+ fi
+ done
+ fi
+ ;;
+
+ purge)
+ rm -f /etc/roundcube/debian-db.php
+ if which ucf >/dev/null 2>&1; then
+ ucf --purge /etc/roundcube/debian-db.php
+ ucf --purge /etc/roundcube/main.inc.php
+ fi
+ rm -f /etc/roundcube/main.inc.php
+ rm -rf /var/log/roundcube
+ rm -rf /var/lib/roundcube
+ ;;
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# prerm script for roundcube
+#
+# see: dh_installdeb(1)
+
+set -e
+
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm
+dbc_go roundcube $@
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ ;;
+
+ failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+This package ships several plugins. To use them, you need to enable
+them by adding them to $rcmail_config['plugins'] array in your
+`/etc/roundcube/main.inc.php' file.
+
+Some plugins need to be configured directly in
+`/etc/roundcube/main.inc.php' while some others have specific
+configuration files. For the later, look at
+`/etc/roundcube/plugins'. You will find empty files that you can
+modify to configure the corresponding plugin.
+
+ -- Vincent Bernat <bernat@debian.org>, Sun, 13 Feb 2011 15:50:48 +0100
--- /dev/null
+etc/roundcube/plugins
--- /dev/null
+plugins/password/drivers/chgsaslpasswd.c
+plugins/password/drivers/chgvirtualminpasswd.c
+plugins/password/drivers/chpass-wrapper.py
--- /dev/null
+plugins/acl/ usr/share/roundcube/plugins
+plugins/additional_message_headers/ usr/share/roundcube/plugins
+plugins/archive/ usr/share/roundcube/plugins
+plugins/autologon/ usr/share/roundcube/plugins
+plugins/database_attachments/ usr/share/roundcube/plugins
+plugins/debug_logger/ usr/share/roundcube/plugins
+plugins/emoticons/ usr/share/roundcube/plugins
+plugins/enigma/ usr/share/roundcube/plugins
+plugins/help/ usr/share/roundcube/plugins
+plugins/http_authentication/ usr/share/roundcube/plugins
+plugins/managesieve/ usr/share/roundcube/plugins
+plugins/markasjunk/ usr/share/roundcube/plugins
+plugins/new_user_dialog/ usr/share/roundcube/plugins
+plugins/new_user_identity/ usr/share/roundcube/plugins
+plugins/newmail_notifier/ usr/share/roundcube/plugins
+plugins/password /usr/share/roundcube/plugins
+plugins/show_additional_headers/ usr/share/roundcube/plugins
+plugins/squirrelmail_usercopy/ usr/share/roundcube/plugins
+plugins/subscriptions_option/ usr/share/roundcube/plugins
+plugins/userinfo/ usr/share/roundcube/plugins
+plugins/vcard_attachments/ usr/share/roundcube/plugins
+plugins/virtuser_file/ usr/share/roundcube/plugins
+plugins/virtuser_query/ usr/share/roundcube/plugins
--- /dev/null
+#!/bin/sh
+# This file conflicts with /etc/cron.daily/roundcube-core. If you have
+# modified it, report your modifications to
+# /etc/cron.daily/roundcube-core. If this file is left empty or
+# untouched, it will be deleted.
+
+# If you leave the following marker, this file will be deleted during
+# the next upgrade:
+# 75321 DELETE 75321
--- /dev/null
+# This file conflicts with /etc/default/roundcube-core. If you have
+# modified it, report your modifications to
+# /etc/default/roundcube-core. If this file is left empty or
+# untouched, it will be deleted.
+
+# If you leave the following marker, this file will be deleted during
+# the next upgrade:
+# 75321 DELETE 75321
--- /dev/null
+# This file conflicts with /etc/logrotate.d/roundcube-core. If you
+# have modified it, report your modifications to
+# /etc/logrotate.d/roundcube-core. If this file is left empty or
+# untouched, it will be deleted.
+
+# If you leave the following marker, this file will be deleted during
+# the next upgrade:
+# 75321 DELETE 75321
--- /dev/null
+#!/bin/sh
+
+set -e
+
+# Handle old files that are not needed any more
+for OLD in /etc/logrotate.d/roundcube /etc/default/roundcube /etc/cron.daily/roundcube; do
+ [ -f $OLD ] && {
+ if [ ! -s $OLD ]; then
+ rm $OLD
+ else
+ grep -q '^# 75321 DELETE 75321$' $OLD && rm $OLD
+ fi
+ }
+done
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_INSTALL_CHANGELOGS_ALL=CHANGELOG
+
+DEB_DH_INSTALL_ARGS = \
+ --exclude=chgsaslpasswd.c \
+ --exclude=chgvirtualminpasswd.c \
+ --exclude=chpass-wrapper.py
+
+binary-install/roundcube-core::
+ # Install config files
+ install -m 0640 $(CURDIR)/config/db.inc.php.dist $(CURDIR)/debian/roundcube-core/etc/roundcube/db.inc.php
+ install -m 0640 $(CURDIR)/config/main.inc.php.dist $(CURDIR)/debian/roundcube-core/usr/share/roundcube
+ install -m 0640 $(CURDIR)/.htaccess $(CURDIR)/debian/roundcube-core/etc/roundcube/htaccess
+ for c in $(CURDIR)/debian/roundcube-core/etc/roundcube/*.php; do \
+ dh_link -proundcube-core etc/roundcube/$$(basename $$c) var/lib/roundcube/config/$$(basename $$c) ; \
+ done
+ dh_link -proundcube-core etc/roundcube/htaccess var/lib/roundcube/.htaccess
+
+ # Database related files
+ # Install empty tables and updates for each db type
+ install -m 0644 $(CURDIR)/SQL/mysql.initial.sql $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/install/mysql
+ install -m 0644 $(CURDIR)/SQL/postgres.initial.sql $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/install/pgsql
+
+ # Old database upgrades
+ cp -r $(CURDIR)/debian/sql/* $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/upgrade/.
+
+ # Some files are executable while not being scripts or binary...
+ find $(CURDIR)/debian/roundcube-core/usr/share/roundcube -type f -print0 | xargs -r0 chmod -x
+ # Remove useless file
+ rm -rf $(CURDIR)/debian/roundcube-core/usr/share/roundcube/bin
+ find $(CURDIR)/debian/roundcube-core -name '._*' -print0 | xargs -r0 rm
+ # Convert .js.src back to js
+ for js in $$(find $(CURDIR)/debian/roundcube-core -name '*.js.src' -print); do \
+ yui-compressor --type js "$$js" -o "$${js%.*}" ; \
+ rm "$$js" ; \
+ done
+ # Remove files shipped in tinymce package
+ rm -rf $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tiny_mce
+ dh_link -proundcube-core usr/share/tinymce/www usr/share/roundcube/program/js/tiny_mce
+ # Remove jquery as well
+ rm $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/jquery.min.js
+ dh_link -proundcube-core usr/share/javascript/jquery/jquery.min.js usr/share/roundcube/program/js/jquery.min.js
+ # Remove GnuPG PEAR module
+ rm -rf $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/enigma/lib/Crypt
+
+binary-install/roundcube-plugins::
+ # Plugins are in usr/share/roundcube/plugins, for each plugin
+ # if there is config.inc.php.dist, we symlink a config.inc.php
+ # in /etc/roundcube/plugins with some dummy content.
+ for plugin in $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/*; do \
+ dh_link -proundcube-plugins usr/share/roundcube/plugins/$${plugin##*/} \
+ var/lib/roundcube/plugins/$${plugin##*/} ; \
+ if [ ! -f $${plugin}/config.inc.php.dist ]; then continue; fi ; \
+ dh_installdirs -proundcube-plugins etc/roundcube/plugins/$${plugin##*/} ; \
+ (echo "<?php" ; \
+ echo "// Empty configuration for $${plugin##*/}" ; \
+ echo "// See /usr/share/roundcube/plugins/$${plugin##*/}/config.inc.php.dist for instructions" ; \
+ echo "?>") > \
+ $(CURDIR)/debian/roundcube-plugins/etc/roundcube/plugins/$${plugin##*/}/config.inc.php ; \
+ dh_link -proundcube-plugins etc/roundcube/plugins/$${plugin##*/}/config.inc.php \
+ usr/share/roundcube/plugins/$${plugin##*/}/config.inc.php ; \
+ done
+
+$(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/% :
+ install -d $(CURDIR)/debian/$(cdbs_curpkg)/usr/share/bug/$(cdbs_curpkg)
+ install -m 644 $(CURDIR)/debian/bug.control $(CURDIR)/debian/$(cdbs_curpkg)/usr/share/bug/$(cdbs_curpkg)/control
+
+clean::
+ debconf-updatepo
--- /dev/null
+3.0 (quilt)
--- /dev/null
+-- RoundCube Webmail update script for MySQL databases
+-- Updates from version 0.1-stable to 0.1.1
+
+TRUNCATE TABLE `messages`;
+
+ALTER TABLE `messages`
+ DROP INDEX `idx`,
+ DROP INDEX `uid`;
+
+ALTER TABLE `cache`
+ DROP INDEX `cache_key`,
+ DROP INDEX `session_id`,
+ ADD INDEX `user_cache_index` (`user_id`,`cache_key`);
+
+ALTER TABLE `users`
+ ADD INDEX `username_index` (`username`),
+ ADD INDEX `alias_index` (`alias`);
--- /dev/null
+-- RoundCube Webmail update script for MySQL databases
+-- Updates from version 0.1-beta and 0.1-beta2
+
+TRUNCATE TABLE `messages`;
+
+ALTER TABLE `messages`
+ DROP `body`,
+ DROP INDEX `cache_key`,
+ ADD `structure` TEXT,
+ ADD UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`);
+
+ALTER TABLE `identities`
+ ADD `html_signature` tinyint(1) default 0 NOT NULL;
+
+ALTER TABLE `session` CHANGE `ip` `ip` VARCHAR(40)
+
+-- Uncomment these lines if you're using MySQL 4.1 or higher
+-- ALTER TABLE `users`
+-- DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci,
+-- CHANGE `username` `username` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+-- CHANGE `alias` `alias` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
--- /dev/null
+-- Updates from version 0.1.1
+
+ALTER TABLE `identities`
+ MODIFY `signature` text,
+ MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `name` varchar(128) NOT NULL,
+ MODIFY `email` varchar(128) NOT NULL;
+
--- /dev/null
+-- Updates from version 0.2-alpha
+
+ALTER TABLE `messages`
+ ADD INDEX `created_index` (`created`);
+
+-- Updates from version 0.2-beta (InnoDB only)
+
+ALTER TABLE `cache`
+ DROP `session_id`;
+
+ALTER TABLE `session`
+ ADD INDEX `changed_index` (`changed`);
+
+ALTER TABLE `cache`
+ ADD INDEX `created_index` (`created`);
+
+ALTER TABLE `users`
+ CHANGE `language` `language` varchar(5);
--- /dev/null
+-- Ensure we are using InnoDB as engine.
+
+ALTER TABLE `cache` ENGINE=InnoDB;
+ALTER TABLE `session` ENGINE=InnoDB;
+ALTER TABLE `messages` ENGINE=InnoDB;
+ALTER TABLE `users` ENGINE=InnoDB;
+ALTER TABLE `contacts` ENGINE=InnoDB;
+ALTER TABLE `identities` ENGINE=InnoDB;
+
+-- Updates from version 0.3-stable
+
+TRUNCATE `messages`;
+
+-- ALTER TABLE `messages`
+-- ADD INDEX `index_index` (`user_id`, `cache_key`, `idx`);
+
+-- ALTER TABLE `session`
+-- CHANGE `vars` `vars` MEDIUMTEXT NOT NULL;
+
+-- ALTER TABLE `contacts`
+-- ADD INDEX `user_contacts_index` (`user_id`,`email`);
+
+-- Updates from version 0.3.1
+-- WARNING: Make sure that all tables are using InnoDB engine!!!
+-- If not, use: ALTER TABLE xxx ENGINE=InnoDB;
+
+/* MySQL bug workaround: http://bugs.mysql.com/bug.php?id=46293 */
+/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
+
+ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`;
+ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`;
+ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
+ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`;
+
+ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE `contacts` ALTER `name` SET DEFAULT '';
+ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT '';
+ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
+
+-- ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
+-- ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`;
+
+CREATE TABLE `contactgroups` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL DEFAULT '',
+ PRIMARY KEY(`contactgroup_id`),
+ CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `contactgroups_user_index` (`user_id`,`del`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `contactgroupmembers` (
+ `contactgroup_id` int(10) UNSIGNED NOT NULL,
+ `contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ PRIMARY KEY (`contactgroup_id`, `contact_id`),
+ CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
+ REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
+ REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
+) /*!40000 ENGINE=INNODB */;
+
+/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
+
+-- Updates from version 0.4-beta
+
+ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL;
+UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00';
+
+-- Updates from version 0.4.2
+
+ALTER TABLE `users` DROP INDEX `username_index`;
+ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`);
+
+ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL;
+
--- /dev/null
+ALTER TABLE `contacts` ADD `words` TEXT NULL AFTER `vcard`;
+ALTER TABLE `contacts` CHANGE `vcard` `vcard` LONGTEXT /*!40101 CHARACTER SET utf8 */ NULL DEFAULT NULL;
+ALTER TABLE `contactgroupmembers` ADD INDEX `contactgroupmembers_contact_index` (`contact_id`);
+
+TRUNCATE TABLE `messages`;
+TRUNCATE TABLE `cache`;
--- /dev/null
+-- Updates from version 0.6
+
+/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
+
+ALTER TABLE `users` CHANGE `alias` `alias` varchar(128) BINARY NOT NULL;
+ALTER TABLE `users` CHANGE `username` `username` varchar(128) BINARY NOT NULL;
+
+CREATE TABLE `dictionary` (
+ `user_id` int(10) UNSIGNED DEFAULT NULL,
+ `language` varchar(5) NOT NULL,
+ `data` longtext NOT NULL,
+ CONSTRAINT `user_id_fk_dictionary` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ UNIQUE `uniqueness` (`user_id`, `language`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `searches` (
+ `search_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `type` int(3) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL,
+ `data` text,
+ PRIMARY KEY(`search_id`),
+ CONSTRAINT `user_id_fk_searches` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ UNIQUE `uniqueness` (`user_id`, `type`, `name`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+DROP TABLE `messages`;
+
+CREATE TABLE `cache_index` (
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `mailbox` varchar(255) BINARY NOT NULL,
+ `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `valid` tinyint(1) NOT NULL DEFAULT '0',
+ `data` longtext NOT NULL,
+ CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `changed_index` (`changed`),
+ PRIMARY KEY (`user_id`, `mailbox`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `cache_thread` (
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `mailbox` varchar(255) BINARY NOT NULL,
+ `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `data` longtext NOT NULL,
+ CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `changed_index` (`changed`),
+ PRIMARY KEY (`user_id`, `mailbox`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+CREATE TABLE `cache_messages` (
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `mailbox` varchar(255) BINARY NOT NULL,
+ `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
+ `data` longtext NOT NULL,
+ `flags` int(11) NOT NULL DEFAULT '0',
+ CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ INDEX `changed_index` (`changed`),
+ PRIMARY KEY (`user_id`, `mailbox`, `uid`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
+
+-- Updates from version 0.7-beta
+
+ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL;
--- /dev/null
+-- Updates from version 0.7
+
+ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
+ALTER TABLE `contacts` DROP INDEX `user_contacts_index`;
+ALTER TABLE `contacts` MODIFY `email` text NOT NULL DEFAULT '';
+ALTER TABLE `contacts` ADD INDEX `user_contacts_index` (`user_id`,`del`);
+ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
+
+ALTER TABLE `cache` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `cache_index` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `cache_thread` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `cache_messages` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `contacts` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `contactgroups` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `contactgroupmembers` ALTER `contact_id` DROP DEFAULT;
+ALTER TABLE `identities` ALTER `user_id` DROP DEFAULT;
+ALTER TABLE `searches` ALTER `user_id` DROP DEFAULT;
--- /dev/null
+-- RoundCube Webmail update script for Postgres databases
+-- Updates from version 0.1-stable to 0.1.1
+
+CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
+CREATE INDEX contacts_user_id_idx ON contacts (user_id);
+CREATE INDEX identities_user_id_idx ON identities (user_id);
+
+CREATE INDEX users_username_id_idx ON users (username);
+CREATE INDEX users_alias_id_idx ON users (alias);
+
+-- added ON DELETE/UPDATE actions
+ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
+ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
+ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
+ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
+ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+
--- /dev/null
+-- RoundCube Webmail update script for Postres databases
+-- Updates from version 0.1-beta and older
+
+ALTER TABLE "messages" DROP body;
+ALTER TABLE "messages" ADD structure TEXT;
+ALTER TABLE "messages" ADD UNIQUE (user_id, cache_key, uid);
+
+ALTER TABLE "identities" ADD html_signature INTEGER;
+ALTER TABLE "identities" ALTER html_signature SET DEFAULT 0;
+UPDATE identities SET html_signature = 0;
+ALTER TABLE "identities" ALTER html_signature SET NOT NULL;
+
--- /dev/null
+-- Updates from version 0.2-alpha
+
+CREATE INDEX messages_created_idx ON messages (created);
+
+-- Updates from version 0.2-beta
+
+ALTER TABLE cache DROP session_id;
+
+CREATE INDEX session_changed_idx ON session (changed);
+CREATE INDEX cache_created_idx ON "cache" (created);
+
+ALTER TABLE users ALTER "language" DROP NOT NULL;
+ALTER TABLE users ALTER "language" DROP DEFAULT;
+
+ALTER TABLE identities ALTER del TYPE smallint;
+ALTER TABLE identities ALTER standard TYPE smallint;
+ALTER TABLE contacts ALTER del TYPE smallint;
+ALTER TABLE messages ALTER del TYPE smallint;
--- /dev/null
+-- Updates from version 0.3-stable
+
+TRUNCATE messages;
+DROP INDEX IF EXISTS messages_index_idx;
+CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx);
+DROP INDEX contacts_user_id_idx;
+CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
+
+-- Updates from version 0.3.1
+
+DROP INDEX identities_user_id_idx;
+CREATE INDEX identities_user_id_idx ON identities (user_id, del);
+
+ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
+
+CREATE SEQUENCE contactgroups_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE contactgroups (
+ contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
+ user_id integer NOT NULL
+ REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ changed timestamp with time zone DEFAULT now() NOT NULL,
+ del smallint NOT NULL DEFAULT 0,
+ name varchar(128) NOT NULL DEFAULT ''
+);
+
+CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
+
+CREATE TABLE contactgroupmembers (
+ contactgroup_id integer NOT NULL
+ REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ contact_id integer NOT NULL
+ REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ created timestamp with time zone DEFAULT now() NOT NULL,
+ PRIMARY KEY (contactgroup_id, contact_id)
+);
+
+-- Updates from version 0.4-beta
+
+ALTER TABLE users ALTER last_login DROP NOT NULL;
+ALTER TABLE users ALTER last_login SET DEFAULT NULL;
+
+-- Updates from version 0.4.2
+
+DROP INDEX users_username_id_idx;
+ALTER TABLE users ADD UNIQUE (username, mail_host);
+ALTER TABLE contacts ALTER email TYPE varchar(255);
+
--- /dev/null
+ALTER TABLE contacts ADD words TEXT NULL;
+CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
+
+TRUNCATE messages;
+TRUNCATE cache;
--- /dev/null
+-- Updates from version 0.6
+
+CREATE TABLE dictionary (
+ user_id integer DEFAULT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ "language" varchar(5) NOT NULL,
+ data text NOT NULL,
+ CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
+);
+
+CREATE SEQUENCE search_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE searches (
+ search_id integer DEFAULT nextval('search_ids'::text) PRIMARY KEY,
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ "type" smallint DEFAULT 0 NOT NULL,
+ name varchar(128) NOT NULL,
+ data text NOT NULL,
+ CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
+);
+
+DROP SEQUENCE message_ids;
+DROP TABLE messages;
+
+CREATE TABLE cache_index (
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ mailbox varchar(255) NOT NULL,
+ changed timestamp with time zone DEFAULT now() NOT NULL,
+ valid smallint NOT NULL DEFAULT 0,
+ data text NOT NULL,
+ PRIMARY KEY (user_id, mailbox)
+);
+
+CREATE INDEX cache_index_changed_idx ON cache_index (changed);
+
+CREATE TABLE cache_thread (
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ mailbox varchar(255) NOT NULL,
+ changed timestamp with time zone DEFAULT now() NOT NULL,
+ data text NOT NULL,
+ PRIMARY KEY (user_id, mailbox)
+);
+
+CREATE INDEX cache_thread_changed_idx ON cache_thread (changed);
+
+CREATE TABLE cache_messages (
+ user_id integer NOT NULL
+ REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ mailbox varchar(255) NOT NULL,
+ uid integer NOT NULL,
+ changed timestamp with time zone DEFAULT now() NOT NULL,
+ data text NOT NULL,
+ flags integer NOT NULL DEFAULT 0,
+ PRIMARY KEY (user_id, mailbox, uid)
+);
+
+CREATE INDEX cache_messages_changed_idx ON cache_messages (changed);
+
+-- Updates from version 0.7-beta
+
+ALTER TABLE "session" ALTER sess_id TYPE varchar(128);
--- /dev/null
+-- Updates from version 0.7
+
+DROP INDEX contacts_user_id_idx;
+CREATE INDEX contacts_user_id_idx ON contacts USING btree (user_id, del);
+ALTER TABLE contacts ALTER email TYPE text;
--- /dev/null
+# These templates have been reviewed by the debian-l10n-english
+# team
+#
+# If modifications/additions/rewording are needed, please ask
+# for an advice to debian-l10n-english@lists.debian.org
+#
+# Even minor modifications require translation updates and such
+# changes should be coordinated with translators and reviewers.
+
+Template: roundcube/reconfigure-webserver
+Type: multiselect
+__Choices: apache2, lighttpd
+Default: apache2, lighttpd
+_Description: Web server(s) to configure automatically:
+ RoundCube supports any web server supported by PHP, however only
+ Apache 2 and lighttpd can be configured automatically.
+ .
+ Please select the web server(s) that should be configured
+ automatically for RoundCube.
+
+Template: roundcube/restart-webserver
+Type: boolean
+Default: true
+_Description: Should the webserver(s) be restarted now?
+ In order to activate the new configuration, the reconfigured web
+ server(s) have to be restarted.
+
+Template: roundcube/hosts
+Type: string
+Default:
+_Description: IMAP server(s) used with RoundCube:
+ Please select the IMAP server(s) that should be used with RoundCube.
+ .
+ If this is left blank, a text box will be displayed at
+ login. Entering a space-separated list of hosts will display a
+ pull-down menu. Entering a single host will enforce using this
+ host.
+ .
+ To use SSL connections, please enter host names as 'ssl://hostname:993'.
+
+Template: roundcube/language
+Type: select
+Choices: ${languages}
+_Description: Default language:
+ Please choose the default language for RoundCube.
+ .
+ This choice can be overridden by individual users in their preferences.
+ .
+ However, the default language will be used for the login screen and
+ the first connection of users.
--- /dev/null
+version=3
+opts="uversionmangle=s/-(rc|alpha|beta)/~$1/,dversionmangle=s/\+dfsg//" http://sf.net/roundcubemail/roundcubemail-([\d\.]+.*)-dep\.tar\.gz
+++ /dev/null
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/include/rcmail.php |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2011, The Roundcube Dev Team |
- | Copyright (C) 2011, Kolab Systems AG |
- | Licensed under the GNU GPL |
- | |
- | PURPOSE: |
- | Application class providing core functions and holding |
- | instances of all 'global' objects like db- and imap-connections |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-
- $Id: rcmail.php 5897 2012-02-21 20:46:15Z thomasb $
-
-*/
-
-
-/**
- * Application class of Roundcube Webmail
- * implemented as singleton
- *
- * @package Core
- */
-class rcmail
-{
- /**
- * Main tasks.
- *
- * @var array
- */
- static public $main_tasks = array('mail','settings','addressbook','login','logout','utils','dummy');
-
- /**
- * Singleton instace of rcmail
- *
- * @var rcmail
- */
- static private $instance;
-
- /**
- * Stores instance of rcube_config.
- *
- * @var rcube_config
- */
- public $config;
-
- /**
- * Stores rcube_user instance.
- *
- * @var rcube_user
- */
- public $user;
-
- /**
- * Instace of database class.
- *
- * @var rcube_mdb2
- */
- public $db;
-
- /**
- * Instace of Memcache class.
- *
- * @var rcube_mdb2
- */
- public $memcache;
-
- /**
- * Instace of rcube_session class.
- *
- * @var rcube_session
- */
- public $session;
-
- /**
- * Instance of rcube_smtp class.
- *
- * @var rcube_smtp
- */
- public $smtp;
-
- /**
- * Instance of rcube_imap class.
- *
- * @var rcube_imap
- */
- public $imap;
-
- /**
- * Instance of rcube_template class.
- *
- * @var rcube_template
- */
- public $output;
-
- /**
- * Instance of rcube_plugin_api.
- *
- * @var rcube_plugin_api
- */
- public $plugins;
-
- /**
- * Current task.
- *
- * @var string
- */
- public $task;
-
- /**
- * Current action.
- *
- * @var string
- */
- public $action = '';
- public $comm_path = './';
-
- private $texts;
- private $address_books = array();
- private $caches = array();
- private $action_map = array();
- private $shutdown_functions = array();
-
-
- /**
- * This implements the 'singleton' design pattern
- *
- * @return rcmail The one and only instance
- */
- static function get_instance()
- {
- if (!self::$instance) {
- self::$instance = new rcmail();
- self::$instance->startup(); // init AFTER object was linked with self::$instance
- }
-
- return self::$instance;
- }
-
-
- /**
- * Private constructor
- */
- private function __construct()
- {
- // load configuration
- $this->config = new rcube_config();
-
- register_shutdown_function(array($this, 'shutdown'));
- }
-
-
- /**
- * Initial startup function
- * to register session, create database and imap connections
- *
- * @todo Remove global vars $DB, $USER
- */
- private function startup()
- {
- // initialize syslog
- if ($this->config->get('log_driver') == 'syslog') {
- $syslog_id = $this->config->get('syslog_id', 'roundcube');
- $syslog_facility = $this->config->get('syslog_facility', LOG_USER);
- openlog($syslog_id, LOG_ODELAY, $syslog_facility);
- }
-
- // connect to database
- $GLOBALS['DB'] = $this->get_dbh();
-
- // start session
- $this->session_init();
-
- // create user object
- $this->set_user(new rcube_user($_SESSION['user_id']));
-
- // configure session (after user config merge!)
- $this->session_configure();
-
- // set task and action properties
- $this->set_task(get_input_value('_task', RCUBE_INPUT_GPC));
- $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC));
-
- // reset some session parameters when changing task
- if ($this->task != 'utils') {
- if ($this->session && $_SESSION['task'] != $this->task)
- $this->session->remove('page');
- // set current task to session
- $_SESSION['task'] = $this->task;
- }
-
- // init output class
- if (!empty($_REQUEST['_remote']))
- $GLOBALS['OUTPUT'] = $this->json_init();
- else
- $GLOBALS['OUTPUT'] = $this->load_gui(!empty($_REQUEST['_framed']));
-
- // create plugin API and load plugins
- $this->plugins = rcube_plugin_api::get_instance();
-
- // init plugins
- $this->plugins->init();
- }
-
-
- /**
- * Setter for application task
- *
- * @param string Task to set
- */
- public function set_task($task)
- {
- $task = asciiwords($task);
-
- if ($this->user && $this->user->ID)
- $task = !$task ? 'mail' : $task;
- else
- $task = 'login';
-
- $this->task = $task;
- $this->comm_path = $this->url(array('task' => $this->task));
-
- if ($this->output)
- $this->output->set_env('task', $this->task);
- }
-
-
- /**
- * Setter for system user object
- *
- * @param rcube_user Current user instance
- */
- public function set_user($user)
- {
- if (is_object($user)) {
- $this->user = $user;
- $GLOBALS['USER'] = $this->user;
-
- // overwrite config with user preferences
- $this->config->set_user_prefs((array)$this->user->get_prefs());
- }
-
- $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language', $_SESSION['language']));
-
- // set localization
- setlocale(LC_ALL, $_SESSION['language'] . '.utf8', 'en_US.utf8');
-
- // workaround for http://bugs.php.net/bug.php?id=18556
- if (in_array($_SESSION['language'], array('tr_TR', 'ku', 'az_AZ')))
- setlocale(LC_CTYPE, 'en_US' . '.utf8');
- }
-
-
- /**
- * Check the given string and return a valid language code
- *
- * @param string Language code
- * @return string Valid language code
- */
- private function language_prop($lang)
- {
- static $rcube_languages, $rcube_language_aliases;
-
- // user HTTP_ACCEPT_LANGUAGE if no language is specified
- if (empty($lang) || $lang == 'auto') {
- $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
- $lang = str_replace('-', '_', $accept_langs[0]);
- }
-
- if (empty($rcube_languages)) {
- @include(INSTALL_PATH . 'program/localization/index.inc');
- }
-
- // check if we have an alias for that language
- if (!isset($rcube_languages[$lang]) && isset($rcube_language_aliases[$lang])) {
- $lang = $rcube_language_aliases[$lang];
- }
- // try the first two chars
- else if (!isset($rcube_languages[$lang])) {
- $short = substr($lang, 0, 2);
-
- // check if we have an alias for the short language code
- if (!isset($rcube_languages[$short]) && isset($rcube_language_aliases[$short])) {
- $lang = $rcube_language_aliases[$short];
- }
- // expand 'nn' to 'nn_NN'
- else if (!isset($rcube_languages[$short])) {
- $lang = $short.'_'.strtoupper($short);
- }
- }
-
- if (!isset($rcube_languages[$lang]) || !is_dir(INSTALL_PATH . 'program/localization/' . $lang)) {
- $lang = 'en_US';
- }
-
- return $lang;
- }
-
-
- /**
- * Get the current database connection
- *
- * @return rcube_mdb2 Database connection object
- */
- public function get_dbh()
- {
- if (!$this->db) {
- $config_all = $this->config->all();
-
- $this->db = new rcube_mdb2($config_all['db_dsnw'], $config_all['db_dsnr'], $config_all['db_persistent']);
- $this->db->sqlite_initials = INSTALL_PATH . 'SQL/sqlite.initial.sql';
- $this->db->set_debug((bool)$config_all['sql_debug']);
- }
-
- return $this->db;
- }
-
-
- /**
- * Get global handle for memcache access
- *
- * @return object Memcache
- */
- public function get_memcache()
- {
- if (!isset($this->memcache)) {
- // no memcache support in PHP
- if (!class_exists('Memcache')) {
- $this->memcache = false;
- return false;
- }
-
- $this->memcache = new Memcache;
- $this->mc_available = 0;
-
- // add alll configured hosts to pool
- $pconnect = $this->config->get('memcache_pconnect', true);
- foreach ($this->config->get('memcache_hosts', array()) as $host) {
- list($host, $port) = explode(':', $host);
- if (!$port) $port = 11211;
- $this->mc_available += intval($this->memcache->addServer($host, $port, $pconnect, 1, 1, 15, false, array($this, 'memcache_failure')));
- }
-
- // test connection and failover (will result in $this->mc_available == 0 on complete failure)
- $this->memcache->increment('__CONNECTIONTEST__', 1); // NOP if key doesn't exist
-
- if (!$this->mc_available)
- $this->memcache = false;
- }
-
- return $this->memcache;
- }
-
- /**
- * Callback for memcache failure
- */
- public function memcache_failure($host, $port)
- {
- static $seen = array();
-
- // only report once
- if (!$seen["$host:$port"]++) {
- $this->mc_available--;
- raise_error(array('code' => 604, 'type' => 'db',
- 'line' => __LINE__, 'file' => __FILE__,
- 'message' => "Memcache failure on host $host:$port"),
- true, false);
- }
- }
-
-
- /**
- * Initialize and get cache object
- *
- * @param string $name Cache identifier
- * @param string $type Cache type ('db', 'apc' or 'memcache')
- * @param int $ttl Expiration time for cache items in seconds
- * @param bool $packed Enables/disables data serialization
- *
- * @return rcube_cache Cache object
- */
- public function get_cache($name, $type='db', $ttl=0, $packed=true)
- {
- if (!isset($this->caches[$name])) {
- $this->caches[$name] = new rcube_cache($type, $_SESSION['user_id'], $name, $ttl, $packed);
- }
-
- return $this->caches[$name];
- }
-
-
- /**
- * Return instance of the internal address book class
- *
- * @param string Address book identifier
- * @param boolean True if the address book needs to be writeable
- *
- * @return rcube_contacts Address book object
- */
- public function get_address_book($id, $writeable = false)
- {
- $contacts = null;
- $ldap_config = (array)$this->config->get('ldap_public');
- $abook_type = strtolower($this->config->get('address_book_type'));
-
- // 'sql' is the alias for '0' used by autocomplete
- if ($id == 'sql')
- $id = '0';
-
- // use existing instance
- if (isset($this->address_books[$id]) && is_object($this->address_books[$id])
- && is_a($this->address_books[$id], 'rcube_addressbook')
- && (!$writeable || !$this->address_books[$id]->readonly)
- ) {
- $contacts = $this->address_books[$id];
- }
- else if ($id && $ldap_config[$id]) {
- $contacts = new rcube_ldap($ldap_config[$id], $this->config->get('ldap_debug'), $this->config->mail_domain($_SESSION['imap_host']));
- }
- else if ($id === '0') {
- $contacts = new rcube_contacts($this->db, $this->user->ID);
- }
- else {
- $plugin = $this->plugins->exec_hook('addressbook_get', array('id' => $id, 'writeable' => $writeable));
-
- // plugin returned instance of a rcube_addressbook
- if ($plugin['instance'] instanceof rcube_addressbook) {
- $contacts = $plugin['instance'];
- }
- // get first source from the list
- else if (!$id) {
- $source = reset($this->get_address_sources($writeable));
- if (!empty($source)) {
- $contacts = $this->get_address_book($source['id']);
- if ($contacts)
- $id = $source['id'];
- }
- }
- }
-
- if (!$contacts) {
- raise_error(array(
- 'code' => 700, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Addressbook source ($id) not found!"),
- true, true);
- }
-
- // set configured sort order
- if ($sort_col = $this->config->get('addressbook_sort_col'))
- $contacts->set_sort_order($sort_col);
-
- // add to the 'books' array for shutdown function
- $this->address_books[$id] = $contacts;
-
- return $contacts;
- }
-
-
- /**
- * Return address books list
- *
- * @param boolean True if the address book needs to be writeable
- *
- * @return array Address books array
- */
- public function get_address_sources($writeable = false)
- {
- $abook_type = strtolower($this->config->get('address_book_type'));
- $ldap_config = $this->config->get('ldap_public');
- $autocomplete = (array) $this->config->get('autocomplete_addressbooks');
- $list = array();
-
- // We are using the DB address book
- if ($abook_type != 'ldap') {
- if (!isset($this->address_books['0']))
- $this->address_books['0'] = new rcube_contacts($this->db, $this->user->ID);
- $list['0'] = array(
- 'id' => '0',
- 'name' => rcube_label('personaladrbook'),
- 'groups' => $this->address_books['0']->groups,
- 'readonly' => $this->address_books['0']->readonly,
- 'autocomplete' => in_array('sql', $autocomplete),
- 'undelete' => $this->address_books['0']->undelete && $this->config->get('undo_timeout'),
- );
- }
-
- if ($ldap_config) {
- $ldap_config = (array) $ldap_config;
- foreach ($ldap_config as $id => $prop)
- $list[$id] = array(
- 'id' => $id,
- 'name' => $prop['name'],
- 'groups' => is_array($prop['groups']),
- 'readonly' => !$prop['writable'],
- 'hidden' => $prop['hidden'],
- 'autocomplete' => in_array($id, $autocomplete)
- );
- }
-
- $plugin = $this->plugins->exec_hook('addressbooks_list', array('sources' => $list));
- $list = $plugin['sources'];
-
- foreach ($list as $idx => $item) {
- // register source for shutdown function
- if (!is_object($this->address_books[$item['id']]))
- $this->address_books[$item['id']] = $item;
- // remove from list if not writeable as requested
- if ($writeable && $item['readonly'])
- unset($list[$idx]);
- }
-
- return $list;
- }
-
-
- /**
- * Init output object for GUI and add common scripts.
- * This will instantiate a rcmail_template object and set
- * environment vars according to the current session and configuration
- *
- * @param boolean True if this request is loaded in a (i)frame
- * @return rcube_template Reference to HTML output object
- */
- public function load_gui($framed = false)
- {
- // init output page
- if (!($this->output instanceof rcube_template))
- $this->output = new rcube_template($this->task, $framed);
-
- // set keep-alive/check-recent interval
- if ($this->session && ($keep_alive = $this->session->get_keep_alive())) {
- $this->output->set_env('keep_alive', $keep_alive);
- }
-
- if ($framed) {
- $this->comm_path .= '&_framed=1';
- $this->output->set_env('framed', true);
- }
-
- $this->output->set_env('task', $this->task);
- $this->output->set_env('action', $this->action);
- $this->output->set_env('comm_path', $this->comm_path);
- $this->output->set_charset(RCMAIL_CHARSET);
-
- // add some basic labels to client
- $this->output->add_label('loading', 'servererror');
-
- return $this->output;
- }
-
-
- /**
- * Create an output object for JSON responses
- *
- * @return rcube_json_output Reference to JSON output object
- */
- public function json_init()
- {
- if (!($this->output instanceof rcube_json_output))
- $this->output = new rcube_json_output($this->task);
-
- return $this->output;
- }
-
-
- /**
- * Create SMTP object and connect to server
- *
- * @param boolean True if connection should be established
- */
- public function smtp_init($connect = false)
- {
- $this->smtp = new rcube_smtp();
-
- if ($connect)
- $this->smtp->connect();
- }
-
-
- /**
- * Create global IMAP object and connect to server
- *
- * @param boolean True if connection should be established
- * @todo Remove global $IMAP
- */
- public function imap_init($connect = false)
- {
- // already initialized
- if (is_object($this->imap))
- return;
-
- $this->imap = new rcube_imap();
- $this->imap->skip_deleted = $this->config->get('skip_deleted');
-
- // enable caching of imap data
- $imap_cache = $this->config->get('imap_cache');
- $messages_cache = $this->config->get('messages_cache');
- // for backward compatybility
- if ($imap_cache === null && $messages_cache === null && $this->config->get('enable_caching')) {
- $imap_cache = 'db';
- $messages_cache = true;
- }
- if ($imap_cache)
- $this->imap->set_caching($imap_cache);
- if ($messages_cache)
- $this->imap->set_messages_caching(true);
-
- // set pagesize from config
- $this->imap->set_pagesize($this->config->get('pagesize', 50));
-
- // Setting root and delimiter before establishing the connection
- // can save time detecting them using NAMESPACE and LIST
- $options = array(
- 'auth_type' => $this->config->get('imap_auth_type', 'check'),
- 'auth_cid' => $this->config->get('imap_auth_cid'),
- 'auth_pw' => $this->config->get('imap_auth_pw'),
- 'debug' => (bool) $this->config->get('imap_debug', 0),
- 'force_caps' => (bool) $this->config->get('imap_force_caps'),
- 'timeout' => (int) $this->config->get('imap_timeout', 0),
- );
-
- $this->imap->set_options($options);
-
- // set global object for backward compatibility
- $GLOBALS['IMAP'] = $this->imap;
-
- $hook = $this->plugins->exec_hook('imap_init', array('fetch_headers' => $this->imap->fetch_add_headers));
- if ($hook['fetch_headers'])
- $this->imap->fetch_add_headers = $hook['fetch_headers'];
-
- // support this parameter for backward compatibility but log warning
- if ($connect) {
- $this->imap_connect();
- raise_error(array(
- 'code' => 800, 'type' => 'imap',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "rcube::imap_init(true) is deprecated, use rcube::imap_connect() instead"),
- true, false);
- }
- }
-
-
- /**
- * Connect to IMAP server with stored session data
- *
- * @return bool True on success, false on error
- */
- public function imap_connect()
- {
- if (!$this->imap)
- $this->imap_init();
-
- if ($_SESSION['imap_host'] && !$this->imap->conn->connected()) {
- if (!$this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl'])) {
- if ($this->output)
- $this->output->show_message($this->imap->get_error_code() == -1 ? 'imaperror' : 'sessionerror', 'error');
- }
- else {
- $this->set_imap_prop();
- return $this->imap->conn;
- }
- }
-
- return false;
- }
-
-
- /**
- * Create session object and start the session.
- */
- public function session_init()
- {
- // session started (Installer?)
- if (session_id())
- return;
-
- $sess_name = $this->config->get('session_name');
- $sess_domain = $this->config->get('session_domain');
- $lifetime = $this->config->get('session_lifetime', 0) * 60;
-
- // set session domain
- if ($sess_domain) {
- ini_set('session.cookie_domain', $sess_domain);
- }
- // set session garbage collecting time according to session_lifetime
- if ($lifetime) {
- ini_set('session.gc_maxlifetime', $lifetime * 2);
- }
-
- ini_set('session.cookie_secure', rcube_https_check());
- ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
- ini_set('session.use_cookies', 1);
- ini_set('session.use_only_cookies', 1);
- ini_set('session.serialize_handler', 'php');
-
- // use database for storing session data
- $this->session = new rcube_session($this->get_dbh(), $this->config);
-
- $this->session->register_gc_handler('rcmail_temp_gc');
- $this->session->register_gc_handler('rcmail_cache_gc');
-
- // start PHP session (if not in CLI mode)
- if ($_SERVER['REMOTE_ADDR'])
- session_start();
-
- // set initial session vars
- if (!$_SESSION['user_id'])
- $_SESSION['temp'] = true;
- }
-
-
- /**
- * Configure session object internals
- */
- public function session_configure()
- {
- if (!$this->session)
- return;
-
- $lifetime = $this->config->get('session_lifetime', 0) * 60;
-
- // set keep-alive/check-recent interval
- if ($keep_alive = $this->config->get('keep_alive')) {
- // be sure that it's less than session lifetime
- if ($lifetime)
- $keep_alive = min($keep_alive, $lifetime - 30);
- $keep_alive = max(60, $keep_alive);
- $this->session->set_keep_alive($keep_alive);
- }
-
- $this->session->set_secret($this->config->get('des_key') . $_SERVER['HTTP_USER_AGENT']);
- $this->session->set_ip_check($this->config->get('ip_check'));
- }
-
-
- /**
- * Perfom login to the IMAP server and to the webmail service.
- * This will also create a new user entry if auto_create_user is configured.
- *
- * @param string IMAP user name
- * @param string IMAP password
- * @param string IMAP host
- * @return boolean True on success, False on failure
- */
- function login($username, $pass, $host=NULL)
- {
- $user = NULL;
- $config = $this->config->all();
-
- if (!$host)
- $host = $config['default_host'];
-
- // Validate that selected host is in the list of configured hosts
- if (is_array($config['default_host'])) {
- $allowed = false;
- foreach ($config['default_host'] as $key => $host_allowed) {
- if (!is_numeric($key))
- $host_allowed = $key;
- if ($host == $host_allowed) {
- $allowed = true;
- break;
- }
- }
- if (!$allowed)
- return false;
- }
- else if (!empty($config['default_host']) && $host != rcube_parse_host($config['default_host']))
- return false;
-
- // parse $host URL
- $a_host = parse_url($host);
- if ($a_host['host']) {
- $host = $a_host['host'];
- $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? $a_host['scheme'] : null;
- if (!empty($a_host['port']))
- $imap_port = $a_host['port'];
- else if ($imap_ssl && $imap_ssl != 'tls' && (!$config['default_port'] || $config['default_port'] == 143))
- $imap_port = 993;
- }
-
- $imap_port = $imap_port ? $imap_port : $config['default_port'];
-
- /* Modify username with domain if required
- Inspired by Marco <P0L0_notspam_binware.org>
- */
- // Check if we need to add domain
- if (!empty($config['username_domain']) && strpos($username, '@') === false) {
- if (is_array($config['username_domain']) && isset($config['username_domain'][$host]))
- $username .= '@'.rcube_parse_host($config['username_domain'][$host], $host);
- else if (is_string($config['username_domain']))
- $username .= '@'.rcube_parse_host($config['username_domain'], $host);
- }
-
- // Convert username to lowercase. If IMAP backend
- // is case-insensitive we need to store always the same username (#1487113)
- if ($config['login_lc']) {
- $username = mb_strtolower($username);
- }
-
- // try to resolve email address from virtuser table
- if (strpos($username, '@') && ($virtuser = rcube_user::email2user($username))) {
- $username = $virtuser;
- }
-
- // Here we need IDNA ASCII
- // Only rcube_contacts class is using domain names in Unicode
- $host = rcube_idn_to_ascii($host);
- if (strpos($username, '@')) {
- // lowercase domain name
- list($local, $domain) = explode('@', $username);
- $username = $local . '@' . mb_strtolower($domain);
- $username = rcube_idn_to_ascii($username);
- }
-
- // user already registered -> overwrite username
- if ($user = rcube_user::query($username, $host))
- $username = $user->data['username'];
-
- if (!$this->imap)
- $this->imap_init();
-
- // try IMAP login
- if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl))) {
- // try with lowercase
- $username_lc = mb_strtolower($username);
- if ($username_lc != $username) {
- // try to find user record again -> overwrite username
- if (!$user && ($user = rcube_user::query($username_lc, $host)))
- $username_lc = $user->data['username'];
-
- if ($imap_login = $this->imap->connect($host, $username_lc, $pass, $imap_port, $imap_ssl))
- $username = $username_lc;
- }
- }
-
- // exit if IMAP login failed
- if (!$imap_login)
- return false;
-
- // user already registered -> update user's record
- if (is_object($user)) {
- // update last login timestamp
- $user->touch();
- }
- // create new system user
- else if ($config['auto_create_user']) {
- if ($created = rcube_user::create($username, $host)) {
- $user = $created;
- }
- else {
- raise_error(array(
- 'code' => 620, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Failed to create a user record. Maybe aborted by a plugin?"
- ), true, false);
- }
- }
- else {
- raise_error(array(
- 'code' => 621, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Access denied for new user $username. 'auto_create_user' is disabled"
- ), true, false);
- }
-
- // login succeeded
- if (is_object($user) && $user->ID) {
- // Configure environment
- $this->set_user($user);
- $this->set_imap_prop();
- $this->session_configure();
-
- // fix some old settings according to namespace prefix
- $this->fix_namespace_settings($user);
-
- // create default folders on first login
- if ($config['create_default_folders'] && (!empty($created) || empty($user->data['last_login']))) {
- $this->imap->create_default_folders();
- }
-
- // set session vars
- $_SESSION['user_id'] = $user->ID;
- $_SESSION['username'] = $user->data['username'];
- $_SESSION['imap_host'] = $host;
- $_SESSION['imap_port'] = $imap_port;
- $_SESSION['imap_ssl'] = $imap_ssl;
- $_SESSION['password'] = $this->encrypt($pass);
- $_SESSION['login_time'] = mktime();
-
- if (isset($_REQUEST['_timezone']) && $_REQUEST['_timezone'] != '_default_')
- $_SESSION['timezone'] = floatval($_REQUEST['_timezone']);
- if (isset($_REQUEST['_dstactive']) && $_REQUEST['_dstactive'] != '_default_')
- $_SESSION['dst_active'] = intval($_REQUEST['_dstactive']);
-
- // force reloading complete list of subscribed mailboxes
- $this->imap->clear_cache('mailboxes', true);
-
- return true;
- }
-
- return false;
- }
-
-
- /**
- * Set root dir and last stored mailbox
- * This must be done AFTER connecting to the server!
- */
- public function set_imap_prop()
- {
- $this->imap->set_charset($this->config->get('default_charset', RCMAIL_CHARSET));
-
- if ($default_folders = $this->config->get('default_imap_folders')) {
- $this->imap->set_default_mailboxes($default_folders);
- }
- if (isset($_SESSION['mbox'])) {
- $this->imap->set_mailbox($_SESSION['mbox']);
- }
- if (isset($_SESSION['page'])) {
- $this->imap->set_page($_SESSION['page']);
- }
- }
-
-
- /**
- * Auto-select IMAP host based on the posted login information
- *
- * @return string Selected IMAP host
- */
- public function autoselect_host()
- {
- $default_host = $this->config->get('default_host');
- $host = null;
-
- if (is_array($default_host)) {
- $post_host = get_input_value('_host', RCUBE_INPUT_POST);
-
- // direct match in default_host array
- if ($default_host[$post_host] || in_array($post_host, array_values($default_host))) {
- $host = $post_host;
- }
-
- // try to select host by mail domain
- list($user, $domain) = explode('@', get_input_value('_user', RCUBE_INPUT_POST));
- if (!empty($domain)) {
- foreach ($default_host as $imap_host => $mail_domains) {
- if (is_array($mail_domains) && in_array($domain, $mail_domains)) {
- $host = $imap_host;
- break;
- }
- }
- }
-
- // take the first entry if $host is still an array
- if (empty($host)) {
- $host = array_shift($default_host);
- }
- }
- else if (empty($default_host)) {
- $host = get_input_value('_host', RCUBE_INPUT_POST);
- }
- else
- $host = rcube_parse_host($default_host);
-
- return $host;
- }
-
-
- /**
- * Get localized text in the desired language
- *
- * @param mixed $attrib Named parameters array or label name
- * @param string $domain Label domain (plugin) name
- *
- * @return string Localized text
- */
- public function gettext($attrib, $domain=null)
- {
- // load localization files if not done yet
- if (empty($this->texts))
- $this->load_language();
-
- // extract attributes
- if (is_string($attrib))
- $attrib = array('name' => $attrib);
-
- $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1;
- $name = $attrib['name'] ? $attrib['name'] : '';
-
- // attrib contain text values: use them from now
- if (($setval = $attrib[strtolower($_SESSION['language'])]) || ($setval = $attrib['en_us']))
- $this->texts[$name] = $setval;
-
- // check for text with domain
- if ($domain && ($text_item = $this->texts[$domain.'.'.$name]))
- ;
- // text does not exist
- else if (!($text_item = $this->texts[$name])) {
- return "[$name]";
- }
-
- // make text item array
- $a_text_item = is_array($text_item) ? $text_item : array('single' => $text_item);
-
- // decide which text to use
- if ($nr == 1) {
- $text = $a_text_item['single'];
- }
- else if ($nr > 0) {
- $text = $a_text_item['multiple'];
- }
- else if ($nr == 0) {
- if ($a_text_item['none'])
- $text = $a_text_item['none'];
- else if ($a_text_item['single'])
- $text = $a_text_item['single'];
- else if ($a_text_item['multiple'])
- $text = $a_text_item['multiple'];
- }
-
- // default text is single
- if ($text == '') {
- $text = $a_text_item['single'];
- }
-
- // replace vars in text
- if (is_array($attrib['vars'])) {
- foreach ($attrib['vars'] as $var_key => $var_value)
- $text = str_replace($var_key[0]!='$' ? '$'.$var_key : $var_key, $var_value, $text);
- }
-
- // format output
- if (($attrib['uppercase'] && strtolower($attrib['uppercase']=='first')) || $attrib['ucfirst'])
- return ucfirst($text);
- else if ($attrib['uppercase'])
- return mb_strtoupper($text);
- else if ($attrib['lowercase'])
- return mb_strtolower($text);
-
- return $text;
- }
-
-
- /**
- * Check if the given text label exists
- *
- * @param string $name Label name
- * @param string $domain Label domain (plugin) name or '*' for all domains
- * @param string $ref_domain Sets domain name if label is found
- *
- * @return boolean True if text exists (either in the current language or in en_US)
- */
- public function text_exists($name, $domain = null, &$ref_domain = null)
- {
- // load localization files if not done yet
- if (empty($this->texts))
- $this->load_language();
-
- if (isset($this->texts[$name])) {
- $ref_domain = '';
- return true;
- }
-
- // any of loaded domains (plugins)
- if ($domain == '*') {
- foreach ($this->plugins->loaded_plugins() as $domain)
- if (isset($this->texts[$domain.'.'.$name])) {
- $ref_domain = $domain;
- return true;
- }
- }
- // specified domain
- else if ($domain) {
- $ref_domain = $domain;
- return isset($this->texts[$domain.'.'.$name]);
- }
-
- return false;
- }
-
- /**
- * Load a localization package
- *
- * @param string Language ID
- */
- public function load_language($lang = null, $add = array())
- {
- $lang = $this->language_prop(($lang ? $lang : $_SESSION['language']));
-
- // load localized texts
- if (empty($this->texts) || $lang != $_SESSION['language']) {
- $this->texts = array();
-
- // handle empty lines after closing PHP tag in localization files
- ob_start();
-
- // get english labels (these should be complete)
- @include(INSTALL_PATH . 'program/localization/en_US/labels.inc');
- @include(INSTALL_PATH . 'program/localization/en_US/messages.inc');
-
- if (is_array($labels))
- $this->texts = $labels;
- if (is_array($messages))
- $this->texts = array_merge($this->texts, $messages);
-
- // include user language files
- if ($lang != 'en' && is_dir(INSTALL_PATH . 'program/localization/' . $lang)) {
- include_once(INSTALL_PATH . 'program/localization/' . $lang . '/labels.inc');
- include_once(INSTALL_PATH . 'program/localization/' . $lang . '/messages.inc');
-
- if (is_array($labels))
- $this->texts = array_merge($this->texts, $labels);
- if (is_array($messages))
- $this->texts = array_merge($this->texts, $messages);
- }
-
- ob_end_clean();
-
- $_SESSION['language'] = $lang;
- }
-
- // append additional texts (from plugin)
- if (is_array($add) && !empty($add))
- $this->texts += $add;
- }
-
-
- /**
- * Read directory program/localization and return a list of available languages
- *
- * @return array List of available localizations
- */
- public function list_languages()
- {
- static $sa_languages = array();
-
- if (!sizeof($sa_languages)) {
- @include(INSTALL_PATH . 'program/localization/index.inc');
-
- if ($dh = @opendir(INSTALL_PATH . 'program/localization')) {
- while (($name = readdir($dh)) !== false) {
- if ($name[0] == '.' || !is_dir(INSTALL_PATH . 'program/localization/' . $name))
- continue;
-
- if ($label = $rcube_languages[$name])
- $sa_languages[$name] = $label;
- }
- closedir($dh);
- }
- }
-
- return $sa_languages;
- }
-
-
- /**
- * Destroy session data and remove cookie
- */
- public function kill_session()
- {
- $this->plugins->exec_hook('session_destroy');
-
- $this->session->kill();
- $_SESSION = array('language' => $this->user->language, 'temp' => true);
- $this->user->reset();
- }
-
-
- /**
- * Do server side actions on logout
- */
- public function logout_actions()
- {
- $config = $this->config->all();
-
- // on logout action we're not connected to imap server
- if (($config['logout_purge'] && !empty($config['trash_mbox'])) || $config['logout_expunge']) {
- if (!$this->session->check_auth())
- return;
-
- $this->imap_connect();
- }
-
- if ($config['logout_purge'] && !empty($config['trash_mbox'])) {
- $this->imap->clear_mailbox($config['trash_mbox']);
- }
-
- if ($config['logout_expunge']) {
- $this->imap->expunge('INBOX');
- }
-
- // Try to save unsaved user preferences
- if (!empty($_SESSION['preferences'])) {
- $this->user->save_prefs(unserialize($_SESSION['preferences']));
- }
- }
-
-
- /**
- * Function to be executed in script shutdown
- * Registered with register_shutdown_function()
- */
- public function shutdown()
- {
- foreach ($this->shutdown_functions as $function)
- call_user_func($function);
-
- if (is_object($this->smtp))
- $this->smtp->disconnect();
-
- foreach ($this->address_books as $book) {
- if (is_object($book) && is_a($book, 'rcube_addressbook'))
- $book->close();
- }
-
- foreach ($this->caches as $cache) {
- if (is_object($cache))
- $cache->close();
- }
-
- if (is_object($this->imap))
- $this->imap->close();
-
- // before closing the database connection, write session data
- if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
- session_write_close();
- }
-
- // write performance stats to logs/console
- if ($this->config->get('devel_mode')) {
- if (function_exists('memory_get_usage'))
- $mem = show_bytes(memory_get_usage());
- if (function_exists('memory_get_peak_usage'))
- $mem .= '/'.show_bytes(memory_get_peak_usage());
-
- $log = $this->task . ($this->action ? '/'.$this->action : '') . ($mem ? " [$mem]" : '');
- if (defined('RCMAIL_START'))
- rcube_print_time(RCMAIL_START, $log);
- else
- console($log);
- }
- }
-
-
- /**
- * Registers shutdown function to be executed on shutdown.
- * The functions will be executed before destroying any
- * objects like smtp, imap, session, etc.
- *
- * @param callback Function callback
- */
- public function add_shutdown_function($function)
- {
- $this->shutdown_functions[] = $function;
- }
-
-
- /**
- * Generate a unique token to be used in a form request
- *
- * @return string The request token
- */
- public function get_request_token()
- {
- $sess_id = $_COOKIE[ini_get('session.name')];
- if (!$sess_id) $sess_id = session_id();
- $plugin = $this->plugins->exec_hook('request_token', array('value' => md5('RT' . $this->user->ID . $this->config->get('des_key') . $sess_id)));
- return $plugin['value'];
- }
-
-
- /**
- * Check if the current request contains a valid token
- *
- * @param int Request method
- * @return boolean True if request token is valid false if not
- */
- public function check_request($mode = RCUBE_INPUT_POST)
- {
- $token = get_input_value('_token', $mode);
- $sess_id = $_COOKIE[ini_get('session.name')];
- return !empty($sess_id) && $token == $this->get_request_token();
- }
-
-
- /**
- * Create unique authorization hash
- *
- * @param string Session ID
- * @param int Timestamp
- * @return string The generated auth hash
- */
- private function get_auth_hash($sess_id, $ts)
- {
- $auth_string = sprintf('rcmail*sess%sR%s*Chk:%s;%s',
- $sess_id,
- $ts,
- $this->config->get('ip_check') ? $_SERVER['REMOTE_ADDR'] : '***.***.***.***',
- $_SERVER['HTTP_USER_AGENT']);
-
- if (function_exists('sha1'))
- return sha1($auth_string);
- else
- return md5($auth_string);
- }
-
-
- /**
- * Encrypt using 3DES
- *
- * @param string $clear clear text input
- * @param string $key encryption key to retrieve from the configuration, defaults to 'des_key'
- * @param boolean $base64 whether or not to base64_encode() the result before returning
- *
- * @return string encrypted text
- */
- public function encrypt($clear, $key = 'des_key', $base64 = true)
- {
- if (!$clear)
- return '';
- /*-
- * Add a single canary byte to the end of the clear text, which
- * will help find out how much of padding will need to be removed
- * upon decryption; see http://php.net/mcrypt_generic#68082
- */
- $clear = pack("a*H2", $clear, "80");
-
- if (function_exists('mcrypt_module_open') &&
- ($td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_CBC, "")))
- {
- $iv = $this->create_iv(mcrypt_enc_get_iv_size($td));
- mcrypt_generic_init($td, $this->config->get_crypto_key($key), $iv);
- $cipher = $iv . mcrypt_generic($td, $clear);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- }
- else {
- @include_once 'des.inc';
-
- if (function_exists('des')) {
- $des_iv_size = 8;
- $iv = $this->create_iv($des_iv_size);
- $cipher = $iv . des($this->config->get_crypto_key($key), $clear, 1, 1, $iv);
- }
- else {
- raise_error(array(
- 'code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not perform encryption; make sure Mcrypt is installed or lib/des.inc is available"
- ), true, true);
- }
- }
-
- return $base64 ? base64_encode($cipher) : $cipher;
- }
-
- /**
- * Decrypt 3DES-encrypted string
- *
- * @param string $cipher encrypted text
- * @param string $key encryption key to retrieve from the configuration, defaults to 'des_key'
- * @param boolean $base64 whether or not input is base64-encoded
- *
- * @return string decrypted text
- */
- public function decrypt($cipher, $key = 'des_key', $base64 = true)
- {
- if (!$cipher)
- return '';
-
- $cipher = $base64 ? base64_decode($cipher) : $cipher;
-
- if (function_exists('mcrypt_module_open') &&
- ($td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_CBC, "")))
- {
- $iv_size = mcrypt_enc_get_iv_size($td);
- $iv = substr($cipher, 0, $iv_size);
-
- // session corruption? (#1485970)
- if (strlen($iv) < $iv_size)
- return '';
-
- $cipher = substr($cipher, $iv_size);
- mcrypt_generic_init($td, $this->config->get_crypto_key($key), $iv);
- $clear = mdecrypt_generic($td, $cipher);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- }
- else {
- @include_once 'des.inc';
-
- if (function_exists('des')) {
- $des_iv_size = 8;
- $iv = substr($cipher, 0, $des_iv_size);
- $cipher = substr($cipher, $des_iv_size);
- $clear = des($this->config->get_crypto_key($key), $cipher, 0, 1, $iv);
- }
- else {
- raise_error(array(
- 'code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not perform decryption; make sure Mcrypt is installed or lib/des.inc is available"
- ), true, true);
- }
- }
-
- /*-
- * Trim PHP's padding and the canary byte; see note in
- * rcmail::encrypt() and http://php.net/mcrypt_generic#68082
- */
- $clear = substr(rtrim($clear, "\0"), 0, -1);
-
- return $clear;
- }
-
- /**
- * Generates encryption initialization vector (IV)
- *
- * @param int Vector size
- * @return string Vector string
- */
- private function create_iv($size)
- {
- // mcrypt_create_iv() can be slow when system lacks entrophy
- // we'll generate IV vector manually
- $iv = '';
- for ($i = 0; $i < $size; $i++)
- $iv .= chr(mt_rand(0, 255));
- return $iv;
- }
-
- /**
- * Build a valid URL to this instance of Roundcube
- *
- * @param mixed Either a string with the action or url parameters as key-value pairs
- * @return string Valid application URL
- */
- public function url($p)
- {
- if (!is_array($p))
- $p = array('_action' => @func_get_arg(0));
-
- $task = $p['_task'] ? $p['_task'] : ($p['task'] ? $p['task'] : $this->task);
- $p['_task'] = $task;
- unset($p['task']);
-
- $url = './';
- $delm = '?';
- foreach (array_reverse($p) as $key => $val) {
- if ($val !== '') {
- $par = $key[0] == '_' ? $key : '_'.$key;
- $url .= $delm.urlencode($par).'='.urlencode($val);
- $delm = '&';
- }
- }
- return $url;
- }
-
-
- /**
- * Use imagemagick or GD lib to read image properties
- *
- * @param string Absolute file path
- * @return mixed Hash array with image props like type, width, height or False on error
- */
- public static function imageprops($filepath)
- {
- $rcmail = rcmail::get_instance();
- if ($cmd = $rcmail->config->get('im_identify_path', false)) {
- list(, $type, $size) = explode(' ', strtolower(rcmail::exec($cmd. ' 2>/dev/null {in}', array('in' => $filepath))));
- if ($size)
- list($width, $height) = explode('x', $size);
- }
- else if (function_exists('getimagesize')) {
- $imsize = @getimagesize($filepath);
- $width = $imsize[0];
- $height = $imsize[1];
- $type = preg_replace('!image/!', '', $imsize['mime']);
- }
-
- return $type ? array('type' => $type, 'width' => $width, 'height' => $height) : false;
- }
-
-
- /**
- * Convert an image to a given size and type using imagemagick (ensures input is an image)
- *
- * @param $p['in'] Input filename (mandatory)
- * @param $p['out'] Output filename (mandatory)
- * @param $p['size'] Width x height of resulting image, e.g. "160x60"
- * @param $p['type'] Output file type, e.g. "jpg"
- * @param $p['-opts'] Custom command line options to ImageMagick convert
- * @return Success of convert as true/false
- */
- public static function imageconvert($p)
- {
- $result = false;
- $rcmail = rcmail::get_instance();
- $convert = $rcmail->config->get('im_convert_path', false);
- $identify = $rcmail->config->get('im_identify_path', false);
-
- // imagemagick is required for this
- if (!$convert)
- return false;
-
- if (!(($imagetype = @exif_imagetype($p['in'])) && ($type = image_type_to_extension($imagetype, false))))
- list(, $type) = explode(' ', strtolower(rcmail::exec($identify . ' 2>/dev/null {in}', $p))); # for things like eps
-
- $type = strtr($type, array("jpeg" => "jpg", "tiff" => "tif", "ps" => "eps", "ept" => "eps"));
- $p += array('type' => $type, 'types' => "bmp,eps,gif,jp2,jpg,png,svg,tif", 'quality' => 75);
- $p['-opts'] = array('-resize' => $p['size'].'>') + (array)$p['-opts'];
-
- if (in_array($type, explode(',', $p['types']))) # Valid type?
- $result = rcmail::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace RGB -quality {quality} {-opts} {in} {type}:{out}', $p) === "";
-
- return $result;
- }
-
-
- /**
- * Construct shell command, execute it and return output as string.
- * Keywords {keyword} are replaced with arguments
- *
- * @param $cmd Format string with {keywords} to be replaced
- * @param $values (zero, one or more arrays can be passed)
- * @return output of command. shell errors not detectable
- */
- public static function exec(/* $cmd, $values1 = array(), ... */)
- {
- $args = func_get_args();
- $cmd = array_shift($args);
- $values = $replacements = array();
-
- // merge values into one array
- foreach ($args as $arg)
- $values += (array)$arg;
-
- preg_match_all('/({(-?)([a-z]\w*)})/', $cmd, $matches, PREG_SET_ORDER);
- foreach ($matches as $tags) {
- list(, $tag, $option, $key) = $tags;
- $parts = array();
-
- if ($option) {
- foreach ((array)$values["-$key"] as $key => $value) {
- if ($value === true || $value === false || $value === null)
- $parts[] = $value ? $key : "";
- else foreach ((array)$value as $val)
- $parts[] = "$key " . escapeshellarg($val);
- }
- }
- else {
- foreach ((array)$values[$key] as $value)
- $parts[] = escapeshellarg($value);
- }
-
- $replacements[$tag] = join(" ", $parts);
- }
-
- // use strtr behaviour of going through source string once
- $cmd = strtr($cmd, $replacements);
-
- return (string)shell_exec($cmd);
- }
-
-
- /**
- * Helper method to set a cookie with the current path and host settings
- *
- * @param string Cookie name
- * @param string Cookie value
- * @param string Expiration time
- */
- public static function setcookie($name, $value, $exp = 0)
- {
- if (headers_sent())
- return;
-
- $cookie = session_get_cookie_params();
-
- setcookie($name, $value, $exp, $cookie['path'], $cookie['domain'],
- rcube_https_check(), true);
- }
-
- /**
- * Registers action aliases for current task
- *
- * @param array $map Alias-to-filename hash array
- */
- public function register_action_map($map)
- {
- if (is_array($map)) {
- foreach ($map as $idx => $val) {
- $this->action_map[$idx] = $val;
- }
- }
- }
-
- /**
- * Returns current action filename
- *
- * @param array $map Alias-to-filename hash array
- */
- public function get_action_file()
- {
- if (!empty($this->action_map[$this->action])) {
- return $this->action_map[$this->action];
- }
-
- return strtr($this->action, '-', '_') . '.inc';
- }
-
- /**
- * Fixes some user preferences according to namespace handling change.
- * Old Roundcube versions were using folder names with removed namespace prefix.
- * Now we need to add the prefix on servers where personal namespace has prefix.
- *
- * @param rcube_user $user User object
- */
- private function fix_namespace_settings($user)
- {
- $prefix = $this->imap->get_namespace('prefix');
- $prefix_len = strlen($prefix);
-
- if (!$prefix_len)
- return;
-
- $prefs = $this->config->all();
- if (!empty($prefs['namespace_fixed']))
- return;
-
- // Build namespace prefix regexp
- $ns = $this->imap->get_namespace();
- $regexp = array();
-
- foreach ($ns as $entry) {
- if (!empty($entry)) {
- foreach ($entry as $item) {
- if (strlen($item[0])) {
- $regexp[] = preg_quote($item[0], '/');
- }
- }
- }
- }
- $regexp = '/^('. implode('|', $regexp).')/';
-
- // Fix preferences
- $opts = array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox', 'archive_mbox');
- foreach ($opts as $opt) {
- if ($value = $prefs[$opt]) {
- if ($value != 'INBOX' && !preg_match($regexp, $value)) {
- $prefs[$opt] = $prefix.$value;
- }
- }
- }
-
- if (!empty($prefs['default_imap_folders'])) {
- foreach ($prefs['default_imap_folders'] as $idx => $name) {
- if ($name != 'INBOX' && !preg_match($regexp, $name)) {
- $prefs['default_imap_folders'][$idx] = $prefix.$name;
- }
- }
- }
-
- if (!empty($prefs['search_mods'])) {
- $folders = array();
- foreach ($prefs['search_mods'] as $idx => $value) {
- if ($idx != 'INBOX' && $idx != '*' && !preg_match($regexp, $idx)) {
- $idx = $prefix.$idx;
- }
- $folders[$idx] = $value;
- }
- $prefs['search_mods'] = $folders;
- }
-
- if (!empty($prefs['message_threading'])) {
- $folders = array();
- foreach ($prefs['message_threading'] as $idx => $value) {
- if ($idx != 'INBOX' && !preg_match($regexp, $idx)) {
- $idx = $prefix.$idx;
- }
- $folders[$prefix.$idx] = $value;
- }
- $prefs['message_threading'] = $folders;
- }
-
- if (!empty($prefs['collapsed_folders'])) {
- $folders = explode('&&', $prefs['collapsed_folders']);
- $count = count($folders);
- $folders_str = '';
-
- if ($count) {
- $folders[0] = substr($folders[0], 1);
- $folders[$count-1] = substr($folders[$count-1], 0, -1);
- }
-
- foreach ($folders as $value) {
- if ($value != 'INBOX' && !preg_match($regexp, $value)) {
- $value = $prefix.$value;
- }
- $folders_str .= '&'.$value.'&';
- }
- $prefs['collapsed_folders'] = $folders_str;
- }
-
- $prefs['namespace_fixed'] = true;
-
- // save updated preferences and reset imap settings (default folders)
- $user->save_prefs($prefs);
- $this->set_imap_prop();
- }
-
-}