Fix typo in "web/lib/pkgfuncs.inc".
[aur.git] / UPGRADING
blobe51285080d467afee0f0803a071338d0f9edbff9
1 Upgrading
2 =========
4 From 1.7.0 to 1.8.0
5 -------------------
7 1. Run the following MySQL statements:
9 ----
10 ALTER TABLE Packages ADD OutOfDateTS BIGINT UNSIGNED NULL DEFAULT NULL;
11 UPDATE Packages SET OutOfDateTS = UNIX_TIMESTAMP() WHERE OutOfDate = 1;
12 ALTER TABLE Packages DROP OutOfDate, DROP FSPath, DROP URLPath, DROP LocationID;
13 DROP TABLE PackageLocations, PackageContents;
14 ALTER TABLE AccountTypes MODIFY AccountType VARCHAR(32) NOT NULL DEFAULT '';
15 ALTER TABLE Users MODIFY Username VARCHAR(32) NOT NULL,
16         MODIFY Email VARCHAR(64) NOT NULL,
17         MODIFY RealName VARCHAR(64) NOT NULL DEFAULT '',
18         MODIFY LangPreference VARCHAR(5) NOT NULL DEFAULT 'en',
19         MODIFY IRCNick VARCHAR(32) NOT NULL DEFAULT '';
20 ALTER TABLE PackageCategories MODIFY Category VARCHAR(32) NOT NULL;
21 ALTER TABLE Packages MODIFY Name VARCHAR(64) NOT NULL,
22         MODIFY Version VARCHAR(32) NOT NULL DEFAULT '',
23         MODIFY Description VARCHAR(255) NOT NULL DEFAULT "An Arch Package",
24         MODIFY URL VARCHAR(255) NOT NULL DEFAULT "http://www.archlinux.org",
25         MODIFY License VARCHAR(40) NOT NULL DEFAULT '';
26 ALTER TABLE PackageSources
27         MODIFY Source VARCHAR(255) NOT NULL DEFAULT "/dev/null";
28 ALTER TABLE TU_VoteInfo
29         MODIFY User VARCHAR(32) collate latin1_general_ci NOT NULL;
30 CREATE TABLE PackageBlacklist (
31         ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
32         Name VARCHAR(64) NOT NULL,
33         PRIMARY KEY (ID),
34         UNIQUE (Name)
36 ----
38 2. Drop all fulltext indexes from the "Packages" table:
40 Please do this with care. `ALTER TABLE Packages DROP INDEX Name;` will work in
41 most cases but might remove the wrong index if your indexes have been created
42 in a non-standard order (e.g. during some update process). You'd better run
43 `SHOW INDEX FROM Packages;` before to ensure that your setup doesn't use a
44 different naming.
46 3. You will need to update all packages which are stored in the incoming dir as
47 in 1.8.0, source tarballs are no longer extracted automatically and PKGBUILDs
48 are from now on located in the same subdirectories as the tarballs themselves.
49 The following script will do the conversion automatically when being run inside
50 "$INCOMING_DIR":
52 ----
53 #!/bin/bash
55 for pkg in *; do
56         if [ -d "${pkg}" -a ! -f "${pkg}/PKGBUILD" ]; then
57                 pkgbuild_file=$(find -P "${pkg}" -name PKGBUILD)
58                 [ -n "${pkgbuild_file}" ] && \
59                         cp "${pkgbuild_file}" "${pkg}/PKGBUILD"
60         fi
61 done
62 ----
64 4. (optional): 1.8.0 includes a helper utility called "aurblup" that can be
65 used to prevent users from uploading source packages with names identical to
66 packages in predefined binary repos, e.g. the official repositories of your
67 distribution. In order to build and install aurblup, enter the following
68 commands:
70         cd scripts/aurblup/
71         make config.h
72         $EDITOR config.h
73         make install  # as root
75 Add something like "0 * * * * /usr/local/bin/aurblup" to root's crontab to make
76 aurblup update the package blacklist every hour.
78 NOTE: You can run aurblup as non-privileged user as well. Make sure that the
79 user has read-write access to "/var/lib/aurblup/" (or whatever you defined with
80 "ALPM_DBPATH") tho.
82 5. (optional): As of 1.8.0, all MySQL tables should be InnoDB compatible. To
83 convert a table, you can use this statement: `ALTER TABLE $foo ENGINE=InnoDB;`.
84 If you want to stick with MyISAM or another storage engine that doesn't support
85 transactions, you will need to disable the "MYSQL_USE_TRANSACTIONS" setting in
86 "config.h" when setting up aurblup.
88 From 1.6.0 to 1.7.0
89 -------------------
90 ALTER TABLE Users ADD Salt CHAR(32) NOT NULL DEFAULT '';
91 ALTER TABLE Users ADD ResetKey CHAR(32) NOT NULL DEFAULT '';
92 ALTER TABLE Users MODIFY LangPreference CHAR(5) NOT NULL DEFAULT 'en';
95 From 1.5.2 to 1.5.3
96 -------------------
97 1. Ensure this appears in config.inc:
98    define("DEFAULT_LANG", "en");
101 From 1.5.1 to 1.5.2
102 -------------------
103 1. Ensure Pear and File/Find.php are in the path. See web/README.txt.
105 2. Update your running copy of support/scripts/newpackage-notify.
107 3. Run this in web/lib:
108 <?php
110 # Run the script from within lib
111 include('config.inc');
112 include('aur.inc');
114 $query = "UPDATE Packages SET " .
115          "FSPath = CONCAT('" . INCOMING_DIR . "', Name, '/', Name,
116 '.tar.gz'), " .
117          "URLPath = CONCAT('" . URL_DIR . "', Name, '/', Name, '.tar.gz') " .
118          "WHERE DummyPKG = 0 AND LocationID = 2;";
120 $dbh = db_connect();
121 db_query($query, $dbh);
123 $query = "ALTER TABLE Packages DROP COLUMN AURMaintainerUID;";
124 db_query($query, $dbh);
127 1.3.0
128 -----
129 ALTER TABLE PackageDepends ADD COLUMN DepCondition VARCHAR(20) AFTER DepPkgID;
130 ALTER TABLE Packages ADD License CHAR(40) NOT NULL DEFAULT '';
133 1.2.10
134 ------
135 ALTER TABLE Packages MODIFY Description CHAR(255) NOT NULL DEFAULT "An Arch Package";
138 longerpkgname
139 -------------
140 ALTER TABLE Packages MODIFY Name CHAR(64) NOT NULL;