mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
175 lines
6.6 KiB
Diff
175 lines
6.6 KiB
Diff
|
diff --git a/NEWS b/NEWS
|
||
|
index 07aa028..b7298bf 100644
|
||
|
--- a/NEWS
|
||
|
+++ b/NEWS
|
||
|
@@ -1,5 +1,22 @@
|
||
|
VERSION DESCRIPTION
|
||
|
-----------------------------------------------------------------------------
|
||
|
+5.0.1 - fix alignment issues with wide character locales (FS#47980)
|
||
|
+ - fix removal of .pacnew files (FS#47993)
|
||
|
+ - fix triggering of Install hooks (FS#47996)
|
||
|
+ - fix handling of stdin scripts called by pacman
|
||
|
+ - hook activity is logged
|
||
|
+ - documentataion updates for alpm-hooks (FS#48080)
|
||
|
+ - makepkg:
|
||
|
+ - increase robustness of variable array checks
|
||
|
+ - makepkg -g does not perform current architecture checks
|
||
|
+ - do not run prepare() with --noextract
|
||
|
+ - all directories in the packaging directory are cleared
|
||
|
+ before each build
|
||
|
+ - fix translations issues (FS#48057, FS#48298)
|
||
|
+ - repo-add:
|
||
|
+ - fix checking for non-existent database
|
||
|
+ - contrib:
|
||
|
+ - zsh_completion: updated makepkg options
|
||
|
5.0.0 - pacman can run hooks pre- and post-transaction. See the
|
||
|
alpm-hooks(5) man page for details and an example hook (FS#2985)
|
||
|
- pacman can now sync and read .files databases (-Fy) and do basic
|
||
|
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
|
||
|
index e410481..4b4a22c 100644
|
||
|
--- a/doc/PKGBUILD.5.txt
|
||
|
+++ b/doc/PKGBUILD.5.txt
|
||
|
@@ -52,10 +52,10 @@ similar to `$_basekernver`.
|
||
|
+
|
||
|
The `pkgver` variable can be automatically updated by providing a `pkgver()`
|
||
|
function in the PKGBUILD that outputs the new package version.
|
||
|
-This is run after downloading and extracting the sources so it can use those
|
||
|
-files in determining the new `pkgver`.
|
||
|
-This is most useful when used with sources from version control systems (see
|
||
|
-below).
|
||
|
+This is run after downloading and extracting the sources and running the
|
||
|
+`prepare()` function (if present), so it can use those files in determining the
|
||
|
+new `pkgver`. This is most useful when used with sources from version control
|
||
|
+systems (see below).
|
||
|
|
||
|
*pkgrel*::
|
||
|
This is the release number specific to the Arch Linux release. This
|
||
|
diff --git a/scripts/libmakepkg/tidy/emptydirs.sh.in b/scripts/libmakepkg/tidy/emptydirs.sh.in
|
||
|
index 32b8d8c..85ab39d 100644
|
||
|
--- a/scripts/libmakepkg/tidy/emptydirs.sh.in
|
||
|
+++ b/scripts/libmakepkg/tidy/emptydirs.sh.in
|
||
|
@@ -33,6 +33,7 @@ tidy_remove+=('tidy_emptydirs')
|
||
|
tidy_emptydirs() {
|
||
|
if check_option "emptydirs" "n"; then
|
||
|
msg2 "$(gettext "Removing empty directories...")"
|
||
|
- find . -depth -type d -exec rmdir '{}' + 2>/dev/null
|
||
|
+ # we are unable to use '-empty' as it is non-POSIX and not support by all find variants
|
||
|
+ find . -depth -type d -exec rmdir '{}' \; 2>/dev/null
|
||
|
fi
|
||
|
}
|
||
|
diff --git a/scripts/libmakepkg/util/util.sh b/scripts/libmakepkg/util/util.sh
|
||
|
index 675e75d..f9f1c20 100644
|
||
|
--- a/scripts/libmakepkg/util/util.sh
|
||
|
+++ b/scripts/libmakepkg/util/util.sh
|
||
|
@@ -46,7 +46,7 @@ is_array() {
|
||
|
local shellopts=$(shopt -p)
|
||
|
shopt -s extglob
|
||
|
|
||
|
- if [[ $(declare -p "$i") == declare\ -*([[:alnum:]])a*([[:alnum:]])\ * ]]; then
|
||
|
+ if [[ $(declare -p "$v") == declare\ -*([[:alnum:]])a*([[:alnum:]])\ * ]]; then
|
||
|
ret=0
|
||
|
fi
|
||
|
|
||
|
diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in
|
||
|
index 30d2704..0db0952 100644
|
||
|
--- a/scripts/pacman-key.sh.in
|
||
|
+++ b/scripts/pacman-key.sh.in
|
||
|
@@ -483,7 +483,7 @@ verify_sig() {
|
||
|
local ret=0
|
||
|
for sig; do
|
||
|
msg "Checking %s..." "$sig"
|
||
|
- if ! "${GPG_PACMAN[@]}" --status-fd 1 --verify "$sig" | grep -qE '^\[GNUPG:\] TRUST_(FULLY|ULTIMATE)$'; then
|
||
|
+ if ! "${GPG_PACMAN[@]}" --status-fd 1 --verify "$sig" | grep -qE '^\[GNUPG:\] TRUST_(FULLY|ULTIMATE).*$'; then
|
||
|
error "$(gettext "The signature identified by %s could not be verified.")" "$sig"
|
||
|
ret=1
|
||
|
fi
|
||
|
diff --git a/src/pacman/check.c b/src/pacman/check.c
|
||
|
index 0fe74e8..d282cc2 100644
|
||
|
--- a/src/pacman/check.c
|
||
|
+++ b/src/pacman/check.c
|
||
|
@@ -254,7 +254,6 @@ int check_pkg_full(alpm_pkg_t *pkg)
|
||
|
const char *root, *pkgname;
|
||
|
size_t errors = 0;
|
||
|
size_t rootlen;
|
||
|
- char filepath[PATH_MAX];
|
||
|
struct archive *mtree;
|
||
|
struct archive_entry *entry = NULL;
|
||
|
size_t file_count = 0;
|
||
|
@@ -267,7 +266,6 @@ int check_pkg_full(alpm_pkg_t *pkg)
|
||
|
pm_printf(ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
|
||
|
return 1;
|
||
|
}
|
||
|
- strcpy(filepath, root);
|
||
|
|
||
|
pkgname = alpm_pkg_get_name(pkg);
|
||
|
mtree = alpm_pkg_mtree_open(pkg);
|
||
|
@@ -282,6 +280,8 @@ int check_pkg_full(alpm_pkg_t *pkg)
|
||
|
while(alpm_pkg_mtree_next(pkg, mtree, &entry) == ARCHIVE_OK) {
|
||
|
struct stat st;
|
||
|
const char *path = archive_entry_pathname(entry);
|
||
|
+ char filepath[PATH_MAX];
|
||
|
+ int filepath_len;
|
||
|
mode_t type;
|
||
|
size_t file_errors = 0;
|
||
|
int backup = 0;
|
||
|
@@ -292,31 +292,37 @@ int check_pkg_full(alpm_pkg_t *pkg)
|
||
|
path += 2;
|
||
|
}
|
||
|
|
||
|
- if(strcmp(path, ".INSTALL") == 0) {
|
||
|
- char filename[PATH_MAX];
|
||
|
- snprintf(filename, PATH_MAX, "%slocal/%s-%s/install",
|
||
|
- alpm_option_get_dbpath(config->handle) + 1,
|
||
|
- pkgname, alpm_pkg_get_version(pkg));
|
||
|
- archive_entry_set_pathname(entry, filename);
|
||
|
- path = archive_entry_pathname(entry);
|
||
|
- } else if(strcmp(path, ".CHANGELOG") == 0) {
|
||
|
- char filename[PATH_MAX];
|
||
|
- snprintf(filename, PATH_MAX, "%slocal/%s-%s/changelog",
|
||
|
- alpm_option_get_dbpath(config->handle) + 1,
|
||
|
- pkgname, alpm_pkg_get_version(pkg));
|
||
|
- archive_entry_set_pathname(entry, filename);
|
||
|
- path = archive_entry_pathname(entry);
|
||
|
- } else if(*path == '.') {
|
||
|
- continue;
|
||
|
- }
|
||
|
+ if(*path == '.') {
|
||
|
+ const char *dbfile = NULL;
|
||
|
|
||
|
- file_count++;
|
||
|
+ if(strcmp(path, ".INSTALL") == 0) {
|
||
|
+ dbfile = "install";
|
||
|
+ } else if(strcmp(path, ".CHANGELOG") == 0) {
|
||
|
+ dbfile = "changelog";
|
||
|
+ } else {
|
||
|
+ continue;
|
||
|
+ }
|
||
|
|
||
|
- if(rootlen + 1 + strlen(path) > PATH_MAX) {
|
||
|
- pm_printf(ALPM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
|
||
|
- continue;
|
||
|
+ /* Do not append root directory as alpm_option_get_dbpath is already
|
||
|
+ * an absoute path */
|
||
|
+ filepath_len = snprintf(filepath, PATH_MAX, "%slocal/%s-%s/%s",
|
||
|
+ alpm_option_get_dbpath(config->handle),
|
||
|
+ pkgname, alpm_pkg_get_version(pkg), dbfile);
|
||
|
+ if(filepath_len >= PATH_MAX) {
|
||
|
+ pm_printf(ALPM_LOG_WARNING, _("path too long: %slocal/%s-%s/%s\n"),
|
||
|
+ alpm_option_get_dbpath(config->handle),
|
||
|
+ pkgname, alpm_pkg_get_version(pkg), dbfile);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
+ } else {
|
||
|
+ filepath_len = snprintf(filepath, PATH_MAX, "%s%s", root, path);
|
||
|
+ if(filepath_len >= PATH_MAX) {
|
||
|
+ pm_printf(ALPM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
}
|
||
|
- strcpy(filepath + rootlen, path);
|
||
|
+
|
||
|
+ file_count++;
|
||
|
|
||
|
exists = check_file_exists(pkgname, filepath, rootlen, &st);
|
||
|
if(exists == 1) {
|