mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 09:43:03 +00:00
Honor epoch field in PKGBUILD files.
The epoch field in PKGBUILD files was completely ignored until now, and the final Version field for a package consisted only of pkgver and pkgrel (example: 5.0-1) This means that rpc.php reported the version incorrectly for packages having epoch > 0. One case where this was a problem is that it confused AUR helpers wanting to examine all locally installed packages (with epoch > 0) and search the AUR for an updated version. The epoch field is taken into consideration now, and if not 0, will be prepended to the final Version field (example: 1:5.0-1) Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
b60a30af71
commit
2131d3cb8b
1 changed files with 10 additions and 6 deletions
|
@ -303,6 +303,12 @@ if ($uid):
|
|||
$result = db_query($q, $dbh);
|
||||
$pdata = mysql_fetch_assoc($result);
|
||||
|
||||
if (isset($new_pkgbuild['epoch']) && (int)$new_pkgbuild['epoch'] > 0) {
|
||||
$pkg_version = sprintf('%d:%s-%s', $new_pkgbuild['epoch'], $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']);
|
||||
} else {
|
||||
$pkg_version = sprintf('%s-%s', $new_pkgbuild['pkgver'], $new_pkgbuild['pkgrel']);
|
||||
}
|
||||
|
||||
if ($pdata) {
|
||||
# This is an overwrite of an existing package, the database ID
|
||||
# needs to be preserved so that any votes are retained. However,
|
||||
|
@ -325,10 +331,9 @@ if ($uid):
|
|||
}
|
||||
|
||||
# Update package data
|
||||
$q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s-%s', License = '%s', Description = '%s', URL = '%s', OutOfDateTS = NULL, MaintainerUID = %d WHERE ID = %d",
|
||||
$q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s', License = '%s', Description = '%s', URL = '%s', OutOfDateTS = NULL, MaintainerUID = %d WHERE ID = %d",
|
||||
mysql_real_escape_string($new_pkgbuild['pkgname']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgver']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgrel']),
|
||||
mysql_real_escape_string($pkg_version),
|
||||
mysql_real_escape_string($new_pkgbuild['license']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgdesc']),
|
||||
mysql_real_escape_string($new_pkgbuild['url']),
|
||||
|
@ -339,11 +344,10 @@ if ($uid):
|
|||
|
||||
} else {
|
||||
# This is a brand new package
|
||||
$q = sprintf("INSERT INTO Packages (Name, License, Version, CategoryID, Description, URL, SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID) VALUES ('%s', '%s', '%s-%s', %d, '%s', '%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), %d, %d)",
|
||||
$q = sprintf("INSERT INTO Packages (Name, License, Version, CategoryID, Description, URL, SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID) VALUES ('%s', '%s', '%s', %d, '%s', '%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), %d, %d)",
|
||||
mysql_real_escape_string($new_pkgbuild['pkgname']),
|
||||
mysql_real_escape_string($new_pkgbuild['license']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgver']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgrel']),
|
||||
mysql_real_escape_string($pkg_version),
|
||||
mysql_real_escape_string($_REQUEST['category']),
|
||||
mysql_real_escape_string($new_pkgbuild['pkgdesc']),
|
||||
mysql_real_escape_string($new_pkgbuild['url']),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue