From: Vincent Bernat Date: Sat, 8 Jan 2011 14:35:41 +0000 (+0000) Subject: New upstream release. X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e68bb23e96527af31700f46e6ef207c14bdcc495;p=roundcube.git New upstream release. --- diff --git a/debian/changelog b/debian/changelog index a82c6a1..8cb64f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +roundcube (0.5~rc-1) UNRELEASED; 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. + + Update SQL commands to use to upgrade database. + That also closes: #602922. + + 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. + + -- Vincent Bernat Sat, 08 Jan 2011 15:15:56 +0100 + roundcube (0.3.1-6) unstable; urgency=low * Update Arabic debconf translation, thanks to Ossama Khayat. diff --git a/debian/control b/debian/control index e7d4251..93ff4bb 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,9 @@ Section: web Priority: extra Maintainer: Debian Roundcube Maintainers Uploaders: Vincent Bernat , Romain Beauxis -Build-Depends: cdbs, debhelper (>= 5), cdbs (>= 0.4.27), po-debconf +Build-Depends: cdbs, + debhelper, + dh-buildinfo, po-debconf Homepage: http://www.roundcube.net/ Standards-Version: 3.9.0 Vcs-Svn: svn://svn.debian.org/svn/pkg-roundcube/trunk @@ -11,8 +13,16 @@ Vcs-Browser: http://svn.debian.org/wsvn/pkg-roundcube/trunk/ Package: roundcube-core Architecture: all -Depends: dbconfig-common, debconf | debconf-2.0, apache2 | lighttpd | httpd, php5, php5-mcrypt, php5-gd, roundcube-sqlite (= ${source:Version}) | roundcube-mysql (= ${source:Version}) | roundcube-pgsql (= ${source:Version}), php-mdb2, php-auth, php-net-smtp, php-net-socket, php-mail-mime (>= 1.7.0), ucf, tinymce (>= 3), ${misc:Depends}, libmagic1, php5-pspell, libjs-jquery (>= 1.3.3) -Suggests: php-auth-sasl +Depends: dbconfig-common, debconf | debconf-2.0, ucf, + apache2 | lighttpd | httpd, + php5, php5-mcrypt, php5-gd, + 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.4.2), + libmagic1, + roundcube-sqlite (= ${source:Version}) | roundcube-mysql (= ${source:Version}) | roundcube-pgsql (= ${source:Version}), + ${misc:Depends} +Suggests: php-auth-sasl (>= 1.0.3) Replaces: roundcube Breaks: roundcube (<< 0.1~rc2-2) Description: skinnable AJAX based webmail solution for IMAP servers diff --git a/debian/control.in b/debian/control.in index badc5d5..aa0b4e9 100644 --- a/debian/control.in +++ b/debian/control.in @@ -11,8 +11,16 @@ Vcs-Browser: http://svn.debian.org/wsvn/pkg-roundcube/trunk/ Package: roundcube-core Architecture: all -Depends: dbconfig-common, debconf | debconf-2.0, apache2 | lighttpd | httpd, php5, php5-mcrypt, php5-gd, roundcube-sqlite (= ${source:Version}) | roundcube-mysql (= ${source:Version}) | roundcube-pgsql (= ${source:Version}), php-mdb2, php-auth, php-net-smtp, php-net-socket, php-mail-mime (>= 1.7.0), ucf, tinymce (>= 3), ${misc:Depends}, libmagic1, php5-pspell, libjs-jquery (>= 1.3.3) -Suggests: php-auth-sasl +Depends: dbconfig-common, debconf | debconf-2.0, ucf, + apache2 | lighttpd | httpd, + php5, php5-mcrypt, php5-gd, + 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.4.2), + libmagic1, + roundcube-sqlite (= ${source:Version}) | roundcube-mysql (= ${source:Version}) | roundcube-pgsql (= ${source:Version}), + ${misc:Depends} +Suggests: php-auth-sasl (>= 1.0.3) Replaces: roundcube Breaks: roundcube (<< 0.1~rc2-2) Description: skinnable AJAX based webmail solution for IMAP servers diff --git a/debian/patches/correct-magic-path.patch b/debian/patches/correct-magic-path.patch index e2ca99f..db7e4be 100644 --- a/debian/patches/correct-magic-path.patch +++ b/debian/patches/correct-magic-path.patch @@ -4,12 +4,12 @@ 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 -@@ -338,7 +338,7 @@ - $rcmail_config['max_pagesize'] = 200; +@@ -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'; - // default sort col - $rcmail_config['message_sort_col'] = 'date'; + // Enable DNS checking for e-mail address validation + $rcmail_config['email_dns_check'] = false; diff --git a/debian/patches/correct_install_path.patch b/debian/patches/correct_install_path.patch index 04ec738..6afa098 100644 --- a/debian/patches/correct_install_path.patch +++ b/debian/patches/correct_install_path.patch @@ -4,12 +4,12 @@ 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 -@@ -27,7 +27,7 @@ - define('JS_OBJECT_NAME', 'rcmail'); +@@ -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/'); +- define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/'); ++ define('INSTALL_PATH', '/var/lib/roundcube/'); } - - define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config'); + + if (!defined('RCMAIL_CONFIG_DIR')) { diff --git a/debian/patches/dbconfig-common_support.patch b/debian/patches/dbconfig-common_support.patch index fbc2c0e..574c67e 100644 --- a/debian/patches/dbconfig-common_support.patch +++ b/debian/patches/dbconfig-common_support.patch @@ -11,8 +11,8 @@ Index: b/config/db.inc.php.dist -// 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 -+/* Do not set db_dsnw here, use dpkg-reconfigure roundcube to configure database ! */ +-// 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'; diff --git a/debian/patches/default-charset-utf8.patch b/debian/patches/default-charset-utf8.patch index 24c3ea5..8e840b2 100644 --- a/debian/patches/default-charset-utf8.patch +++ b/debian/patches/default-charset-utf8.patch @@ -4,12 +4,12 @@ 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 -@@ -215,7 +215,7 @@ - $rcmail_config['mdn_requests'] = 0; +@@ -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'; - // Make use of the built-in spell checker. It is based on GoogieSpell. - // Since Google only accepts connections over https your PHP installatation + // skin name: folder from skins/ + $rcmail_config['skin'] = 'default'; diff --git a/debian/patches/loginbox-size.patch b/debian/patches/loginbox-size.patch index ce56b9f..74c693f 100644 --- a/debian/patches/loginbox-size.patch +++ b/debian/patches/loginbox-size.patch @@ -4,7 +4,7 @@ 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 -@@ -506,7 +506,7 @@ +@@ -677,7 +677,7 @@ margin-left: auto; margin-right: auto; margin-top: 50px; diff --git a/debian/patches/series b/debian/patches/series index 8d2af00..bf6a1fe 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,10 +4,4 @@ use_packaged_tinymce.patch correct-magic-path.patch use_pspell.patch loginbox-size.patch -changeset_r3170.patch -changeset_r3202.patch -dont-limit-email-local-part.patch -disable-dns-prefetch.patch default-charset-utf8.patch -received-headers-sa.patch -fix-599586.patch diff --git a/debian/patches/use_packaged_tinymce.patch b/debian/patches/use_packaged_tinymce.patch index a498c59..4382673 100644 --- a/debian/patches/use_packaged_tinymce.patch +++ b/debian/patches/use_packaged_tinymce.patch @@ -4,7 +4,7 @@ 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 -@@ -128,7 +128,7 @@ +@@ -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); diff --git a/debian/patches/use_pspell.patch b/debian/patches/use_pspell.patch index d3ade03..d50c423 100644 --- a/debian/patches/use_pspell.patch +++ b/debian/patches/use_pspell.patch @@ -4,7 +4,7 @@ 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 -@@ -224,7 +224,7 @@ +@@ -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. diff --git a/debian/rules b/debian/rules index 92d44a2..1b31316 100755 --- a/debian/rules +++ b/debian/rules @@ -40,15 +40,14 @@ binary-install/roundcube-core:: find $(CURDIR)/debian/roundcube-core/usr/share/roundcube -type f -print0 | xargs -r0 chmod -x # Remove useless file rm $(CURDIR)/debian/roundcube-core/usr/share/roundcube/bin/*.sh - rm $(CURDIR)/debian/roundcube-core/usr/share/roundcube/bin/decrypt.php find $(CURDIR)/debian/roundcube-core -name '._*' -print0 | xargs -r0 rm find $(CURDIR)/debian/roundcube-core -name '*.js.src' -print0 | xargs -r0 rm # 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-1.3.min.js - dh_link -proundcube-core usr/share/javascript/jquery/jquery.min.js usr/share/roundcube/program/js/jquery-1.3.min.js + rm $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/jquery-1.4.min.js + dh_link -proundcube-core usr/share/javascript/jquery/jquery.min.js usr/share/roundcube/program/js/jquery-1.4.min.js $(patsubst %,binary-install/%,$(DEB_PACKAGES)) :: binary-install/% : install -d $(CURDIR)/debian/$(cdbs_curpkg)/usr/share/bug/$(cdbs_curpkg) diff --git a/debian/sql/mysql/0.5~rc-1 b/debian/sql/mysql/0.5~rc-1 new file mode 100644 index 0000000..9d7f758 --- /dev/null +++ b/debian/sql/mysql/0.5~rc-1 @@ -0,0 +1,87 @@ +-- 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; + diff --git a/debian/sql/pgsql/0.5~rc-1 b/debian/sql/pgsql/0.5~rc-1 new file mode 100644 index 0000000..73e50be --- /dev/null +++ b/debian/sql/pgsql/0.5~rc-1 @@ -0,0 +1,51 @@ +-- Updates from version 0.3-stable + +TRUNCATE messages; +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); + diff --git a/debian/sql/sqlite/0.5~rc-1 b/debian/sql/sqlite/0.5~rc-1 new file mode 100644 index 0000000..d3aad40 --- /dev/null +++ b/debian/sql/sqlite/0.5~rc-1 @@ -0,0 +1,146 @@ +-- Updates from version 0.3-stable + +DELETE FROM messages; +DROP INDEX ix_messages_user_cache_uid; +CREATE UNIQUE INDEX ix_messages_user_cache_uid ON messages (user_id,cache_key,uid); +CREATE INDEX ix_messages_index ON messages (user_id,cache_key,idx); +DROP INDEX ix_contacts_user_id; +CREATE INDEX ix_contacts_user_id ON contacts(user_id, email); + +-- Updates from version 0.3.1 + +-- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; -- + +CREATE TABLE temp_identities ( + identity_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + standard tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '', + organization varchar(128) default '', + email varchar(128) NOT NULL default '', + "reply-to" varchar(128) NOT NULL default '', + bcc varchar(128) NOT NULL default '', + signature text NOT NULL default '', + html_signature tinyint NOT NULL default '0' +); +INSERT INTO temp_identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature) + SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature + FROM identities WHERE del=0; + +DROP INDEX ix_identities_user_id; +DROP TABLE identities; + +CREATE TABLE identities ( + identity_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', + del tinyint NOT NULL default '0', + standard tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '', + organization varchar(128) default '', + email varchar(128) NOT NULL default '', + "reply-to" varchar(128) NOT NULL default '', + bcc varchar(128) NOT NULL default '', + signature text NOT NULL default '', + html_signature tinyint NOT NULL default '0' +); +CREATE INDEX ix_identities_user_id ON identities(user_id, del); + +INSERT INTO identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature) + SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature + FROM temp_identities; + +DROP TABLE temp_identities; + +CREATE TABLE contactgroups ( + contactgroup_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', + del tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '' +); + +CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del); + +CREATE TABLE contactgroupmembers ( + contactgroup_id integer NOT NULL, + contact_id integer NOT NULL default '0', + created datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (contactgroup_id, contact_id) +); + +-- Updates from version 0.3.1 + +CREATE TABLE tmp_users ( + user_id integer NOT NULL PRIMARY KEY, + username varchar(128) NOT NULL default '', + mail_host varchar(128) NOT NULL default '', + alias varchar(128) NOT NULL default '', + created datetime NOT NULL default '0000-00-00 00:00:00', + last_login datetime NOT NULL default '0000-00-00 00:00:00', + language varchar(5), + preferences text NOT NULL default '' +); + +INSERT INTO tmp_users (user_id, username, mail_host, alias, created, last_login, language, preferences) + SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM users; + +DROP TABLE users; + +CREATE TABLE users ( + user_id integer NOT NULL PRIMARY KEY, + username varchar(128) NOT NULL default '', + mail_host varchar(128) NOT NULL default '', + alias varchar(128) NOT NULL default '', + created datetime NOT NULL default '0000-00-00 00:00:00', + last_login datetime DEFAULT NULL, + language varchar(5), + preferences text NOT NULL default '' +); + +INSERT INTO users (user_id, username, mail_host, alias, created, last_login, language, preferences) + SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM tmp_users; + +CREATE INDEX ix_users_username ON users(username); +CREATE INDEX ix_users_alias ON users(alias); +DROP TABLE tmp_users; + +-- Updates from version 0.4.2 + +DROP INDEX ix_users_username; +CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host); + +CREATE TABLE contacts_tmp ( + contact_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', + del tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '', + email varchar(255) NOT NULL default '', + firstname varchar(128) NOT NULL default '', + surname varchar(128) NOT NULL default '', + vcard text NOT NULL default '' +); + +INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard) + SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts; + +DROP TABLE contacts; +CREATE TABLE contacts ( + contact_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', + del tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '', + email varchar(255) NOT NULL default '', + firstname varchar(128) NOT NULL default '', + surname varchar(128) NOT NULL default '', + vcard text NOT NULL default '' +); + +INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard) + SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp; + +CREATE INDEX ix_contacts_user_id ON contacts(user_id, email); +DROP TABLE contacts_tmp; +