From fe1848e61901f2245ad2eb72582ac6458d0368c7 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Fri, 6 Mar 2015 09:32:09 +0100 Subject: [PATCH] xbps: update to 0.44. --- ...g_revdeps-find-pkg-via-repo_get_xxx-.patch | 28 ---- ...formance-improvement-to-the-ownedby-.patch | 88 ----------- ...ask-2-before-unpacking-package-files.patch | 52 ------- ...g-unpacking-as-soon-as-a-file-cannot.patch | 66 -------- ...nd-remove-properly-symlinks-with-rel.patch | 133 ----------------- ...ix-a-memleak-introduced-in-1403826fa.patch | 24 --- ...cord-target-file-or-relative-symlink.patch | 78 ---------- ...bps_sanitize_path-to-fix-78-properly.patch | 141 ------------------ ...le-correctly-another-case-of-relativ.patch | 68 --------- ...-timestamps-while-unpacking-as-regul.patch | 41 ----- ...ore-file-mtime-in-metadata-for-upcom.patch | 64 -------- srcpkgs/xbps/template | 19 +-- 12 files changed, 6 insertions(+), 796 deletions(-) delete mode 100644 srcpkgs/xbps/patches/0001-xbps_repo_get_pkg_revdeps-find-pkg-via-repo_get_xxx-.patch delete mode 100644 srcpkgs/xbps/patches/0002-xbps-query-8-performance-improvement-to-the-ownedby-.patch delete mode 100644 srcpkgs/xbps/patches/0003-Use-a-sane-umask-2-before-unpacking-package-files.patch delete mode 100644 srcpkgs/xbps/patches/0004-libxbps-abort-pkg-unpacking-as-soon-as-a-file-cannot.patch delete mode 100644 srcpkgs/xbps/patches/0005-libxbps-detect-and-remove-properly-symlinks-with-rel.patch delete mode 100644 srcpkgs/xbps/patches/0006-libxbps-fix-a-memleak-introduced-in-1403826fa.patch delete mode 100644 srcpkgs/xbps/patches/0007-xbps-create-8-record-target-file-or-relative-symlink.patch delete mode 100644 srcpkgs/xbps/patches/0008-Introduce-xbps_sanitize_path-to-fix-78-properly.patch delete mode 100644 srcpkgs/xbps/patches/0009-xbps-create-handle-correctly-another-case-of-relativ.patch delete mode 100644 srcpkgs/xbps/patches/0010-Restore-pkg-file-timestamps-while-unpacking-as-regul.patch delete mode 100644 srcpkgs/xbps/patches/0011-xbps-create-8-store-file-mtime-in-metadata-for-upcom.patch diff --git a/srcpkgs/xbps/patches/0001-xbps_repo_get_pkg_revdeps-find-pkg-via-repo_get_xxx-.patch b/srcpkgs/xbps/patches/0001-xbps_repo_get_pkg_revdeps-find-pkg-via-repo_get_xxx-.patch deleted file mode 100644 index e4a7585b2c4..00000000000 --- a/srcpkgs/xbps/patches/0001-xbps_repo_get_pkg_revdeps-find-pkg-via-repo_get_xxx-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 5d7a5a646d2f6629135b3d3ada1be00c55457151 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Tue, 6 Jan 2015 07:58:45 +0100 -Subject: [PATCH 1/3] xbps_repo_get_pkg_revdeps: find pkg via repo_get_xxx not - rpool_get_xxx. - ---- - lib/repo.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/repo.c b/lib/repo.c -index aeca621..67e556b 100644 ---- lib/repo.c -+++ lib/repo.c -@@ -434,8 +434,8 @@ xbps_repo_get_pkg_revdeps(struct xbps_repo *repo, const char *pkg) - if (repo->idx == NULL) - return NULL; - -- if (((pkgd = xbps_rpool_get_pkg(repo->xhp, pkg)) == NULL) && -- ((pkgd = xbps_rpool_get_virtualpkg(repo->xhp, pkg)) == NULL)) { -+ if (((pkgd = xbps_repo_get_pkg(repo, pkg)) == NULL) && -+ ((pkgd = xbps_repo_get_virtualpkg(repo, pkg)) == NULL)) { - errno = ENOENT; - return NULL; - } --- -2.2.1 - diff --git a/srcpkgs/xbps/patches/0002-xbps-query-8-performance-improvement-to-the-ownedby-.patch b/srcpkgs/xbps/patches/0002-xbps-query-8-performance-improvement-to-the-ownedby-.patch deleted file mode 100644 index 21a483739ca..00000000000 --- a/srcpkgs/xbps/patches/0002-xbps-query-8-performance-improvement-to-the-ownedby-.patch +++ /dev/null @@ -1,88 +0,0 @@ -From cdf7fc81af26414c8729721771d948677194ecef Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Thu, 8 Jan 2015 10:32:08 +0100 -Subject: [PATCH 2/3] xbps-query(8): performance improvement to the ownedby - mode with --regex. - -Only compile the ERE once, rather than on any file. Found and suggested -by Christian Neukirchen (@chneukirchen). ---- - NEWS | 3 +++ - bin/xbps-query/ownedby.c | 23 ++++++++++++++--------- - 2 files changed, 17 insertions(+), 9 deletions(-) - -diff --git a/bin/xbps-query/ownedby.c b/bin/xbps-query/ownedby.c -index 0def81a..4e3e175 100644 ---- bin/xbps-query/ownedby.c -+++ bin/xbps-query/ownedby.c -@@ -1,5 +1,5 @@ - /*- -- * Copyright (c) 2010-2014 Juan Romero Pardines. -+ * Copyright (c) 2010-2015 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -37,8 +37,9 @@ - #include "defs.h" - - struct ffdata { -- bool regex; -+ bool rematch; - const char *pat, *repouri; -+ regex_t regex; - xbps_array_t allkeys; - xbps_dictionary_t filesd; - }; -@@ -52,7 +53,6 @@ match_files_by_pattern(xbps_dictionary_t pkg_filesd, - xbps_array_t array; - xbps_object_t obj; - const char *keyname, *filestr, *typestr; -- regex_t regex; - - keyname = xbps_dictionary_keysym_cstring_nocopy(key); - -@@ -72,13 +72,10 @@ match_files_by_pattern(xbps_dictionary_t pkg_filesd, - xbps_dictionary_get_cstring_nocopy(obj, "file", &filestr); - if (filestr == NULL) - continue; -- if (ffd->regex) { -- if (regcomp(®ex, ffd->pat, REG_EXTENDED|REG_NOSUB) != 0) -- return; -- if (regexec(®ex, filestr, 0, 0, 0) == 0) { -+ if (ffd->rematch) { -+ if (regexec(&ffd->regex, filestr, 0, 0, 0) == 0) { - printf("%s: %s (%s)\n", pkgver, filestr, typestr); - } -- regfree(®ex); - } else { - if ((fnmatch(ffd->pat, filestr, FNM_PERIOD)) == 0) - printf("%s: %s (%s)\n", pkgver, filestr, typestr); -@@ -176,16 +173,24 @@ ownedby(struct xbps_handle *xhp, const char *pat, bool repo, bool regex) - char *rfile; - int rv; - -- ffd.regex = regex; -+ ffd.rematch = false; - ffd.pat = pat; - - if ((rfile = realpath(pat, NULL)) != NULL) - ffd.pat = rfile; - -+ if (regex) { -+ ffd.rematch = true; -+ if (regcomp(&ffd.regex, ffd.pat, REG_EXTENDED|REG_NOSUB) != 0) -+ return EINVAL; -+ } - if (repo) - rv = xbps_rpool_foreach(xhp, repo_ownedby_cb, &ffd); - else - rv = xbps_pkgdb_foreach_cb(xhp, ownedby_pkgdb_cb, &ffd); - -+ if (regex) -+ regfree(&ffd.regex); -+ - return rv; - } --- -2.2.1 - diff --git a/srcpkgs/xbps/patches/0003-Use-a-sane-umask-2-before-unpacking-package-files.patch b/srcpkgs/xbps/patches/0003-Use-a-sane-umask-2-before-unpacking-package-files.patch deleted file mode 100644 index 36482f65337..00000000000 --- a/srcpkgs/xbps/patches/0003-Use-a-sane-umask-2-before-unpacking-package-files.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 91b7b2fd5ac354e1f4fa2e1f04247242aeebbf23 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Sun, 11 Jan 2015 11:01:09 +0100 -Subject: [PATCH] Use a sane umask(2) before unpacking package files. - -See https://github.com/voidlinux/void-packages/issues/835 -for more information. ---- - NEWS | 3 +++ - lib/package_unpack.c | 8 +++++++- - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/lib/package_unpack.c b/lib/package_unpack.c -index 237883f..d655cee 100644 ---- lib/package_unpack.c -+++ lib/package_unpack.c -@@ -1,5 +1,5 @@ - /*- -- * Copyright (c) 2008-2014 Juan Romero Pardines. -+ * Copyright (c) 2008-2015 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -502,6 +502,7 @@ xbps_unpack_binary_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkg_repod) - const char *pkgver; - char *bpkg = NULL; - int pkg_fd = -1, rv = 0; -+ mode_t myumask; - - assert(xbps_object_type(pkg_repod) == XBPS_TYPE_DICTIONARY); - -@@ -529,6 +530,8 @@ xbps_unpack_binary_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkg_repod) - archive_read_support_compression_xz(ar); - archive_read_support_format_tar(ar); - -+ myumask = umask(022); -+ - pkg_fd = open(bpkg, O_RDONLY|O_CLOEXEC); - if (pkg_fd == -1) { - rv = errno; -@@ -594,5 +597,8 @@ out: - if (bpkg) - free(bpkg); - -+ /* restore */ -+ umask(myumask); -+ - return rv; - } --- -2.2.1 - diff --git a/srcpkgs/xbps/patches/0004-libxbps-abort-pkg-unpacking-as-soon-as-a-file-cannot.patch b/srcpkgs/xbps/patches/0004-libxbps-abort-pkg-unpacking-as-soon-as-a-file-cannot.patch deleted file mode 100644 index 278ae6d0177..00000000000 --- a/srcpkgs/xbps/patches/0004-libxbps-abort-pkg-unpacking-as-soon-as-a-file-cannot.patch +++ /dev/null @@ -1,66 +0,0 @@ -From d11230a29de77ff5ab121134b5b7f083b10dca52 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Sun, 18 Jan 2015 10:22:05 +0100 -Subject: [PATCH 1/2] libxbps: abort pkg unpacking as soon as a file cannot be - written. - -Close #74 ---- - NEWS | 4 ++++ - lib/package_unpack.c | 17 +++++++++++------ - 2 files changed, 15 insertions(+), 6 deletions(-) - ---- lib/package_unpack.c -+++ lib/package_unpack.c -@@ -86,7 +86,7 @@ unpack_archive(struct xbps_handle *xhp, - ssize_t entry_size; - const char *file, *entry_pname, *transact; - char *pkgname, *buf; -- int ar_rv, rv, entry_type, flags; -+ int ar_rv, rv, error, entry_type, flags; - bool preserve, update, file_exists, skip_obsoletes; - bool skip_extract, force, xucd_stats; - uid_t euid; -@@ -94,7 +94,7 @@ unpack_archive(struct xbps_handle *xhp, - binpkg_filesd = pkg_filesd = NULL; - force = preserve = update = file_exists = false; - skip_obsoletes = xucd_stats = false; -- ar_rv = rv = entry_type = flags = 0; -+ ar_rv = rv = error = entry_type = flags = 0; - - xbps_dictionary_get_bool(pkg_repod, "preserve", &preserve); - xbps_dictionary_get_bool(pkg_repod, "skip-obsoletes", &skip_obsoletes); -@@ -403,10 +403,12 @@ unpack_archive(struct xbps_handle *xhp, - * Extract entry from archive. - */ - if (archive_read_extract(ar, entry, flags) != 0) { -+ error = archive_errno(ar); - xbps_set_cb_state(xhp, XBPS_STATE_UNPACK_FAIL, -- archive_errno(ar), pkgver, -+ error, pkgver, - "%s: [unpack] failed to extract file `%s': %s", -- pkgver, entry_pname, archive_error_string(ar)); -+ pkgver, entry_pname, strerror(error)); -+ break; - } else { - if (xhp->unpack_cb != NULL) { - xucd.entry_extract_count++; -@@ -417,10 +419,13 @@ unpack_archive(struct xbps_handle *xhp, - /* - * If there was any error extracting files from archive, error out. - */ -- if (ar_rv == ARCHIVE_FATAL) { -+ if (error || ar_rv == ARCHIVE_FATAL) { -+ rv = error; -+ if (!rv) -+ rv = ar_rv; - xbps_set_cb_state(xhp, XBPS_STATE_UNPACK_FAIL, rv, pkgver, - "%s: [unpack] failed to extract files: %s", -- pkgver, archive_error_string(ar)); -+ pkgver, strerror(rv)); - goto out; - } - /* --- -2.2.2 - diff --git a/srcpkgs/xbps/patches/0005-libxbps-detect-and-remove-properly-symlinks-with-rel.patch b/srcpkgs/xbps/patches/0005-libxbps-detect-and-remove-properly-symlinks-with-rel.patch deleted file mode 100644 index cb581dcc424..00000000000 --- a/srcpkgs/xbps/patches/0005-libxbps-detect-and-remove-properly-symlinks-with-rel.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 1403826fa6509c570ae167bc1344cc7acf605138 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Tue, 17 Feb 2015 11:59:05 +0100 -Subject: [PATCH] libxbps: detect and remove properly symlinks with relative - targets. - -Close #78 ---- - NEWS | 3 +++ - lib/package_remove.c | 23 +++++++++++++++-------- - tests/xbps/libxbps/shell/remove_test.sh | 32 +++++++++++++++++++++++++++++++- - 3 files changed, 49 insertions(+), 9 deletions(-) - -diff --git a/lib/package_remove.c b/lib/package_remove.c -index 57ea49b..04d6e00 100644 ---- lib/package_remove.c -+++ lib/package_remove.c -@@ -96,7 +96,7 @@ static char * - symlink_target(struct xbps_handle *xhp, const char *path) - { - struct stat sb; -- char *lnk, *res; -+ char *lnk, *res = NULL; - ssize_t r; - - if (lstat(path, &sb) == -1) -@@ -111,16 +111,23 @@ symlink_target(struct xbps_handle *xhp, const char *path) - return NULL; - } - lnk[sb.st_size] = '\0'; -- if (lnk[0] != '/') { -- char *p, *dname; -+ if (strstr(lnk, "./") || lnk[0] != '/') { -+ char *p, *p1, *dname; - - /* relative */ - p = strdup(path); - assert(p); - dname = dirname(p); - assert(dname); -- dname += strlen(xhp->rootdir) + 1; -- res = xbps_xasprintf("%s/%s", dname, lnk); -+ p = xbps_xasprintf("%s/%s", dname, lnk); -+ assert(p); -+ if (strstr(p, "./") && ((p1 = realpath(p, NULL)))) { -+ res = strdup(p1 + strlen(xhp->rootdir)); -+ } -+ if (res == NULL) { -+ res = strdup(p + strlen(xhp->rootdir)+1); -+ } -+ assert(res); - free(lnk); - free(p); - } else { -@@ -375,15 +382,15 @@ xbps_remove_pkg(struct xbps_handle *xhp, const char *pkgver, bool update) - rv = EPERM; - goto out; - } -+ /* Remove links */ -+ if ((rv = remove_pkg_files(xhp, pkgfilesd, "links", pkgver)) != 0) -+ goto out; - /* Remove regular files */ - if ((rv = remove_pkg_files(xhp, pkgfilesd, "files", pkgver)) != 0) - goto out; - /* Remove configuration files */ - if ((rv = remove_pkg_files(xhp, pkgfilesd, "conf_files", pkgver)) != 0) - goto out; -- /* Remove links */ -- if ((rv = remove_pkg_files(xhp, pkgfilesd, "links", pkgver)) != 0) -- goto out; - /* Remove dirs */ - if ((rv = remove_pkg_files(xhp, pkgfilesd, "dirs", pkgver)) != 0) - goto out; -diff --git a/tests/xbps/libxbps/shell/remove_test.sh b/tests/xbps/libxbps/shell/remove_test.sh -index a160a67..1566903 100644 ---- tests/xbps/libxbps/shell/remove_test.sh -+++ tests/xbps/libxbps/shell/remove_test.sh -@@ -62,7 +62,7 @@ remove_symlinks_body() { - xbps-rindex -d -a $PWD/*.xbps - atf_check_equal $? 0 - cd .. -- xbps-install -r root -C null.conf --repository=$PWD/some_repo -y B -+ xbps-install -r root --repository=$PWD/some_repo -y B - atf_check_equal $? 0 - xbps-pkgdb -r root -m manual A - atf_check_equal $? 0 -@@ -75,6 +75,35 @@ remove_symlinks_body() { - atf_check_equal $rv 0 - } - -+atf_test_case remove_symlinks_relative -+ -+remove_symlinks_relative_head() { -+ atf_set "descr" "Tests for package removal: relative symlink cleanup test" -+} -+ -+remove_symlinks_relative_body() { -+ mkdir some_repo -+ mkdir -p pkg_A/usr/lib pkg_A/usr/share/lib -+ touch -f pkg_A/usr/lib/libfoo.so.1.2.0 -+ ln -sfr pkg_A/usr/lib/libfoo.so.1.2.0 pkg_A/usr/share/lib/libfoo.so.1 -+ -+ cd some_repo -+ xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A -+ atf_check_equal $? 0 -+ xbps-rindex -d -a $PWD/*.xbps -+ atf_check_equal $? 0 -+ cd .. -+ xbps-install -r root --repository=$PWD/some_repo -y A -+ atf_check_equal $? 0 -+ xbps-remove -r root -Ryvd A -+ atf_check_equal $? 0 -+ rv=0 -+ if [ -h root/usr/share/lib/libfoo.so.1 -o -h root/usr/lib/libfoo.so.1.2.0 -o -d root/usr/share/lib -o -d root/usr/lib ]; then -+ rv=1 -+ fi -+ atf_check_equal $rv 0 -+} -+ - # 3rd test: make sure that symlinks to the rootfs are also removed. - atf_test_case remove_symlinks_from_root - -@@ -353,6 +382,7 @@ atf_init_test_cases() { - atf_add_test_case keep_modified_symlinks - atf_add_test_case remove_readonly_files - atf_add_test_case remove_symlinks -+ atf_add_test_case remove_symlinks_relative - atf_add_test_case remove_symlinks_from_root - atf_add_test_case remove_symlinks_modified - atf_add_test_case remove_dups --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0006-libxbps-fix-a-memleak-introduced-in-1403826fa.patch b/srcpkgs/xbps/patches/0006-libxbps-fix-a-memleak-introduced-in-1403826fa.patch deleted file mode 100644 index f5395188cab..00000000000 --- a/srcpkgs/xbps/patches/0006-libxbps-fix-a-memleak-introduced-in-1403826fa.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 628a34456036fa8c7f68768328f70fa6a383b986 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Tue, 17 Feb 2015 16:39:04 +0100 -Subject: [PATCH 1/3] libxbps: fix a memleak introduced in 1403826fa. - ---- - lib/package_remove.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/package_remove.c b/lib/package_remove.c -index 04d6e00..623a805 100644 ---- lib/package_remove.c -+++ lib/package_remove.c -@@ -123,6 +123,7 @@ symlink_target(struct xbps_handle *xhp, const char *path) - assert(p); - if (strstr(p, "./") && ((p1 = realpath(p, NULL)))) { - res = strdup(p1 + strlen(xhp->rootdir)); -+ free(p1); - } - if (res == NULL) { - res = strdup(p + strlen(xhp->rootdir)+1); --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0007-xbps-create-8-record-target-file-or-relative-symlink.patch b/srcpkgs/xbps/patches/0007-xbps-create-8-record-target-file-or-relative-symlink.patch deleted file mode 100644 index 34476ce332f..00000000000 --- a/srcpkgs/xbps/patches/0007-xbps-create-8-record-target-file-or-relative-symlink.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 3c34c300d1827f011803b24e9ab5058c81ec3564 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Wed, 18 Feb 2015 14:55:54 +0100 -Subject: [PATCH 2/3] xbps-create(8): record target file or relative symlinks - correctly. - ---- - NEWS | 2 ++ - bin/xbps-create/main.c | 3 ++- - tests/xbps/xbps-create/basic_test.sh | 31 ++++++++++++++++++++++++++++++- - 3 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/bin/xbps-create/main.c b/bin/xbps-create/main.c -index 9e65599..f09a114 100644 ---- bin/xbps-create/main.c -+++ bin/xbps-create/main.c -@@ -303,7 +303,8 @@ ftw_cb(const char *fpath, const struct stat *sb, int type, struct FTW *ftwbuf _u - free(p2); - free(p); - } -- } else if (strchr(buf, '/') == NULL) { -+ } else if (buf[0] != '/') { -+ /* relative path */ - p = strdup(filep); - assert(p); - dname = dirname(p); -diff --git a/tests/xbps/xbps-create/basic_test.sh b/tests/xbps/xbps-create/basic_test.sh -index 6769047..d712403 100644 ---- tests/xbps/xbps-create/basic_test.sh -+++ tests/xbps/xbps-create/basic_test.sh -@@ -19,7 +19,7 @@ hardlinks_size_body() { - cd .. - xbps-rindex -d -a repo/*.xbps - atf_check_equal $? 0 -- result="$(xbps-query -r root -C empty.conf --repository=$PWD/repo -p installed_size foo)" -+ result="$(xbps-query -r root --repository=repo -p installed_size foo)" - expected="10B" - rv=0 - if [ "$result" != "$expected" ]; then -@@ -30,6 +30,35 @@ hardlinks_size_body() { - atf_check_equal $rv 0 - } - -+atf_test_case symlink_relative_target -+ -+symlink_relative_target_head() { -+ atf_set "descr" "xbps-create(8): relative symlinks in destdir must be absolute" -+} -+ -+symlink_relative_target_body() { -+ mkdir -p repo pkg_A/usr/include/gsm -+ touch -f pkg_A/usr/include/gsm/gsm.h -+ cd pkg_A/usr/include -+ ln -s gsm/gsm.h gsm.h -+ cd ../../../repo -+ xbps-create -A noarch -n foo-1.0_1 -s "foo pkg" ../pkg_A -+ atf_check_equal $? 0 -+ cd .. -+ xbps-rindex -d -a repo/*.xbps -+ atf_check_equal $? 0 -+ result="$(xbps-query -r root --repository=repo -f foo|tr -d '\n')" -+ expected="/usr/include/gsm/gsm.h/usr/include/gsm.h -> /usr/include/gsm/gsm.h" -+ rv=0 -+ if [ "$result" != "$expected" ]; then -+ echo "result: $result" -+ echo "expected: $expected" -+ rv=1 -+ fi -+ atf_check_equal $rv 0 -+} -+ - atf_init_test_cases() { - atf_add_test_case hardlinks_size -+ atf_add_test_case symlink_relative_target - } --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0008-Introduce-xbps_sanitize_path-to-fix-78-properly.patch b/srcpkgs/xbps/patches/0008-Introduce-xbps_sanitize_path-to-fix-78-properly.patch deleted file mode 100644 index 644815cfd20..00000000000 --- a/srcpkgs/xbps/patches/0008-Introduce-xbps_sanitize_path-to-fix-78-properly.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 1722635e088e385757a7ef04494b4c23456986d8 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Wed, 18 Feb 2015 15:12:39 +0100 -Subject: [PATCH 3/3] Introduce xbps_sanitize_path() to fix #78 properly. - -This removes multiple slashes of a path and returns you a buffer with -the sanitized string. ---- - include/xbps.h.in | 11 ++++++++++- - lib/package_remove.c | 24 ++++++++++++++++-------- - lib/util.c | 29 ++++++++++++++++++++++++++++- - 3 files changed, 54 insertions(+), 10 deletions(-) - -diff --git a/include/xbps.h.in b/include/xbps.h.in -index aebe315..712d952 100644 ---- include/xbps.h.in -+++ include/xbps.h.in -@@ -48,7 +48,7 @@ - * - * This header documents the full API for the XBPS Library. - */ --#define XBPS_API_VERSION "20141209" -+#define XBPS_API_VERSION "20150218" - - #ifndef XBPS_VERSION - #define XBPS_VERSION "UNSET" -@@ -1933,6 +1933,15 @@ int xbps_cmpver(const char *pkg1, const char *pkg2); - */ - char *xbps_pubkey2fp(struct xbps_handle *xhp, xbps_data_t pubkey); - -+/** -+ * Returns a buffer with a sanitized path from \a src. -+ * This removes multiple slashes. -+ * -+ * @return The sanitized path in a buffer. -+ * The returned buffer must be free(3)d when it's no longer necessary. -+ */ -+char *xbps_sanitize_path(const char *src); -+ - /*@}*/ - - #ifdef __cplusplus -diff --git a/lib/package_remove.c b/lib/package_remove.c -index 623a805..0b586e8 100644 ---- lib/package_remove.c -+++ lib/package_remove.c -@@ -96,7 +96,7 @@ static char * - symlink_target(struct xbps_handle *xhp, const char *path) - { - struct stat sb; -- char *lnk, *res = NULL; -+ char *p, *p1, *dname, *lnk, *res = NULL; - ssize_t r; - - if (lstat(path, &sb) == -1) -@@ -112,8 +112,6 @@ symlink_target(struct xbps_handle *xhp, const char *path) - } - lnk[sb.st_size] = '\0'; - if (strstr(lnk, "./") || lnk[0] != '/') { -- char *p, *p1, *dname; -- - /* relative */ - p = strdup(path); - assert(p); -@@ -121,16 +119,26 @@ symlink_target(struct xbps_handle *xhp, const char *path) - assert(dname); - p = xbps_xasprintf("%s/%s", dname, lnk); - assert(p); -- if (strstr(p, "./") && ((p1 = realpath(p, NULL)))) { -- res = strdup(p1 + strlen(xhp->rootdir)); -- free(p1); -+ p1 = xbps_sanitize_path(p); -+ assert(p1); -+ free(p); -+ if ((strstr(p1, "./")) && (p = realpath(p1, NULL))) { -+ if (strcmp(xhp->rootdir, "/") == 0) -+ res = strdup(p); -+ else -+ res = strdup(p + strlen(xhp->rootdir)); -+ -+ free(p); - } - if (res == NULL) { -- res = strdup(p + strlen(xhp->rootdir)+1); -+ if (strcmp(xhp->rootdir, "/") == 0) -+ res = strdup(p1); -+ else -+ res = strdup(p1 + strlen(xhp->rootdir)); - } - assert(res); - free(lnk); -- free(p); -+ free(p1); - } else { - /* absolute */ - res = lnk; -diff --git a/lib/util.c b/lib/util.c -index 0361a7c..72b8e7d 100644 ---- lib/util.c -+++ lib/util.c -@@ -1,5 +1,5 @@ - /*- -- * Copyright (c) 2008-2014 Juan Romero Pardines. -+ * Copyright (c) 2008-2015 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -425,3 +425,30 @@ xbps_pkg_reverts(xbps_dictionary_t pkg, const char *pkgver) - - return false; - } -+ -+char * -+xbps_sanitize_path(const char *src) -+{ -+ const char *s = src; -+ char *d, *dest; -+ size_t len; -+ -+ assert(src); -+ len = strlen(src); -+ assert(len != 0); -+ -+ dest = malloc(len); -+ assert(dest); -+ d = dest; -+ -+ while ((*d = *s)) { -+ if (*s == '/' && *(s+1) == '/') { -+ s++; -+ continue; -+ } -+ d++, s++; -+ } -+ *d = '\0'; -+ -+ return dest; -+} --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0009-xbps-create-handle-correctly-another-case-of-relativ.patch b/srcpkgs/xbps/patches/0009-xbps-create-handle-correctly-another-case-of-relativ.patch deleted file mode 100644 index 688217ab535..00000000000 --- a/srcpkgs/xbps/patches/0009-xbps-create-handle-correctly-another-case-of-relativ.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 69e3a50e75de5a555504a0fc733fd9f484e33a79 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Thu, 19 Feb 2015 09:44:09 +0100 -Subject: [PATCH 1/2] xbps-create: handle correctly another case of relative - symlinks. - ---- - bin/xbps-create/main.c | 2 +- - tests/xbps/xbps-create/basic_test.sh | 29 +++++++++++++++++++++++++++++ - 2 files changed, 30 insertions(+), 1 deletion(-) - -diff --git a/bin/xbps-create/main.c b/bin/xbps-create/main.c -index f09a114..e089700 100644 ---- bin/xbps-create/main.c -+++ bin/xbps-create/main.c -@@ -283,7 +283,7 @@ ftw_cb(const char *fpath, const struct stat *sb, int type, struct FTW *ftwbuf _u - * Check if symlink is absolute or relative; on the former - * make it absolute for the target object. - */ -- if (strncmp(buf, "../", 3) == 0) { -+ if (strstr(buf, "./")) { - p = realpath(fpath, NULL); - if (p == NULL) { - /* -diff --git a/tests/xbps/xbps-create/basic_test.sh b/tests/xbps/xbps-create/basic_test.sh -index d712403..3460088 100644 ---- tests/xbps/xbps-create/basic_test.sh -+++ tests/xbps/xbps-create/basic_test.sh -@@ -58,7 +58,36 @@ symlink_relative_target_body() { - atf_check_equal $rv 0 - } - -+atf_test_case symlink_relative_target_cwd -+ -+symlink_relative_target_cwd_head() { -+ atf_set "descr" "xbps-create(8): relative symlinks to cwd in destdir must be absolute" -+} -+ -+symlink_relative_target_cwd_body() { -+ mkdir -p repo pkg_A/usr/include/gsm -+ touch -f pkg_A/usr/include/gsm/gsm.h -+ cd pkg_A/usr/include -+ ln -s ./gsm/gsm.h gsm.h -+ cd ../../../repo -+ xbps-create -A noarch -n foo-1.0_1 -s "foo pkg" ../pkg_A -+ atf_check_equal $? 0 -+ cd .. -+ xbps-rindex -d -a repo/*.xbps -+ atf_check_equal $? 0 -+ result="$(xbps-query -r root --repository=repo -f foo|tr -d '\n')" -+ expected="/usr/include/gsm/gsm.h/usr/include/gsm.h -> /usr/include/gsm/gsm.h" -+ rv=0 -+ if [ "$result" != "$expected" ]; then -+ echo "result: $result" -+ echo "expected: $expected" -+ rv=1 -+ fi -+ atf_check_equal $rv 0 -+} -+ - atf_init_test_cases() { - atf_add_test_case hardlinks_size - atf_add_test_case symlink_relative_target -+ atf_add_test_case symlink_relative_target_cwd - } --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0010-Restore-pkg-file-timestamps-while-unpacking-as-regul.patch b/srcpkgs/xbps/patches/0010-Restore-pkg-file-timestamps-while-unpacking-as-regul.patch deleted file mode 100644 index 6a0fa13ef26..00000000000 --- a/srcpkgs/xbps/patches/0010-Restore-pkg-file-timestamps-while-unpacking-as-regul.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ae8ce645421962402b046cd2a34c27aa3c38609a Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Sat, 21 Feb 2015 16:52:27 +0100 -Subject: [PATCH] Restore pkg file timestamps while unpacking as regular user. - -Requested by @dominikh. ---- - NEWS | 3 +++ - include/xbps_api_impl.h | 10 +++++----- - tests/xbps/xbps-create/basic_test.sh | 25 +++++++++++++++++++++++++ - 3 files changed, 33 insertions(+), 5 deletions(-) - -diff --git a/include/xbps_api_impl.h b/include/xbps_api_impl.h -index b177bf8..a9fb07c 100644 ---- include/xbps_api_impl.h -+++ include/xbps_api_impl.h -@@ -1,5 +1,5 @@ - /*- -- * Copyright (c) 2010-2014 Juan Romero Pardines. -+ * Copyright (c) 2010-2015 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -46,10 +46,10 @@ - #include "compat.h" - - #define EXTRACT_FLAGS ARCHIVE_EXTRACT_SECURE_NODOTDOT | \ -- ARCHIVE_EXTRACT_SECURE_SYMLINKS --#define FEXTRACT_FLAGS ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM | \ -- ARCHIVE_EXTRACT_TIME | ARCHIVE_EXTRACT_UNLINK | \ -- EXTRACT_FLAGS -+ ARCHIVE_EXTRACT_SECURE_SYMLINKS | \ -+ ARCHIVE_EXTRACT_TIME | ARCHIVE_EXTRACT_PERM | \ -+ ARCHIVE_EXTRACT_UNLINK -+#define FEXTRACT_FLAGS ARCHIVE_EXTRACT_OWNER | EXTRACT_FLAGS - - #ifndef __UNCONST - #define __UNCONST(a) ((void *)(unsigned long)(const void *)(a)) --- -2.3.0 - diff --git a/srcpkgs/xbps/patches/0011-xbps-create-8-store-file-mtime-in-metadata-for-upcom.patch b/srcpkgs/xbps/patches/0011-xbps-create-8-store-file-mtime-in-metadata-for-upcom.patch deleted file mode 100644 index 536d673f31a..00000000000 --- a/srcpkgs/xbps/patches/0011-xbps-create-8-store-file-mtime-in-metadata-for-upcom.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 2cae0cba01fc4baab98073006187d6edb94eedf0 Mon Sep 17 00:00:00 2001 -From: Juan RP -Date: Sun, 22 Feb 2015 18:20:32 +0100 -Subject: [PATCH] xbps-create(8): store file mtime in metadata for upcoming - changes. - ---- - NEWS | 3 +++ - bin/xbps-create/main.c | 12 ++++++++++-- - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/bin/xbps-create/main.c b/bin/xbps-create/main.c -index e089700..5f2e101 100644 ---- bin/xbps-create/main.c -+++ bin/xbps-create/main.c -@@ -1,5 +1,5 @@ - /*- -- * Copyright (c) 2012-2014 Juan Romero Pardines. -+ * Copyright (c) 2012-2015 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without -@@ -57,6 +57,7 @@ - - struct xentry { - TAILQ_ENTRY(xentry) entries; -+ uint64_t mtime; - char *file, *type, *target, *hash; - ino_t inode; - }; -@@ -272,6 +273,8 @@ ftw_cb(const char *fpath, const struct stat *sb, int type, struct FTW *ftwbuf _u - */ - xe->type = strdup("links"); - assert(xe->type); -+ /* store modification time for regular files and links */ -+ xe->mtime = (uint64_t)sb->st_mtime; - buf = malloc(sb->st_size+1); - assert(buf); - r = readlink(fpath, buf, sb->st_size+1); -@@ -348,6 +351,8 @@ ftw_cb(const char *fpath, const struct stat *sb, int type, struct FTW *ftwbuf _u - die("failed to process hash for %s:", fpath); - - xe->inode = sb->st_ino; -+ /* store modification time for regular files and links */ -+ xe->mtime = (uint64_t)sb->st_mtime; - - } else if (type == FTW_D || type == FTW_DP) { - /* directory */ -@@ -409,8 +414,11 @@ process_xentry(const char *key, const char *mutable_files) - xbps_dictionary_set_cstring(d, "file", p); - if (xe->target) - xbps_dictionary_set_cstring(d, "target", xe->target); -- else if (xe->hash) -+ if (xe->hash) - xbps_dictionary_set_cstring(d, "sha256", xe->hash); -+ if (xe->mtime) -+ xbps_dictionary_set_uint64(d, "mtime", xe->mtime); -+ - xbps_array_add(a, d); - xbps_object_release(d); - } --- -2.3.0 - diff --git a/srcpkgs/xbps/template b/srcpkgs/xbps/template index a8d826c4ae7..1d5e60af6bf 100644 --- a/srcpkgs/xbps/template +++ b/srcpkgs/xbps/template @@ -1,7 +1,7 @@ # Template file for 'xbps' pkgname=xbps -version=0.43.1 -revision=11 +version=0.44 +revision=1 bootstrap=yes build_style=configure short_desc="The XBPS package system utilities" @@ -9,10 +9,10 @@ maintainer="Juan RP " homepage="https://github.com/voidlinux/xbps" license="2-clause-BSD" distfiles="https://github.com/voidlinux/xbps/archive/${version}.tar.gz" -checksum=d8a2511dbeb7bccad0bf0bfd4fa9e46c5483c523db1f30bdd179c24ddf244e26 +checksum=159199564c6b6203dc2ce517fbe8c377e470813ffa7f51121df2589cb8259e4c makedepends="zlib-devel libressl-devel>=2.1.4 libarchive-devel>=3.1.2" -depends="xbps-triggers>=0.75" +depends="xbps-triggers" if [ -z "$CHROOT_READY" ]; then CFLAGS+=" -idirafter ${XBPS_MASTERDIR}/usr/include" @@ -30,16 +30,9 @@ else fi -if [ "$XBPS_TARGET_MACHINE" = "i686-musl" ]; then - # XXX disable SSP until the issue is found. - CFLAGS+=" -fno-stack-protector" -fi - do_configure() { - if [ "$CHROOT_READY" ]; then - _args="--enable-tests" - fi - HAVE_VASPRINTF=1 ./configure --prefix=/usr --sysconfdir=/etc --enable-debug ${_args} + HAVE_VASPRINTF=1 ./configure --prefix=/usr --sysconfdir=/etc --enable-debug \ + ${CHROOT_READY:+--enable-tests} } libxbps_package() {