diff options
author | Nicolas Iooss | 2021-10-12 00:10:12 +0200 |
---|---|---|
committer | Nicolas Iooss | 2021-10-12 00:10:12 +0200 |
commit | 4765619d1f2b84eefafcc05f25d64a96affe97e8 (patch) | |
tree | af049895a62382ab8efb31e6f0f9b97aa6e983aa | |
parent | f7b910ce9f3f222b015cbdbc31609f71b91eb380 (diff) | |
download | aur-4765619d1f2b84eefafcc05f25d64a96affe97e8.tar.gz |
coreutils-selinux 9.0-2 update
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | 01-fix-fs72253.patch | 92 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | backport_syscall_fix.patch | 114 |
4 files changed, 121 insertions, 130 deletions
@@ -1,7 +1,7 @@ pkgbase = coreutils-selinux pkgdesc = The basic file, shell and text manipulation utilities of the GNU operating system with SELinux support - pkgver = 8.32 - pkgrel = 1 + pkgver = 9.0 + pkgrel = 2 url = https://www.gnu.org/software/coreutils/ arch = x86_64 arch = aarch64 @@ -14,16 +14,16 @@ pkgbase = coreutils-selinux depends = libcap depends = openssl depends = libselinux - provides = coreutils=8.32-1 - provides = selinux-coreutils=8.32-1 + provides = coreutils=9.0-2 + provides = selinux-coreutils=9.0-2 conflicts = coreutils conflicts = selinux-coreutils - source = https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz - source = https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz.sig - source = backport_syscall_fix.patch + source = https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz + source = https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz.sig + source = 01-fix-fs72253.patch validpgpkeys = 6C37DC12121A5006BC1DB804DF6FD971306037D9 - sha256sums = 4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa + sha256sums = ce30acdf4a41bc5bb30dd955e9eaa75fa216b4e3deb08889ed32433c7b3b97ce sha256sums = SKIP - sha256sums = ee8ddb4e04d89089ba6022dcc736e145cf3149f8c317d3ea114485605060fe83 + sha256sums = aefec296212c10f8ddae10225216847f537e573d80b678161f453b34fd183bf5 pkgname = coreutils-selinux diff --git a/01-fix-fs72253.patch b/01-fix-fs72253.patch new file mode 100644 index 000000000000..ad2b068875bc --- /dev/null +++ b/01-fix-fs72253.patch @@ -0,0 +1,92 @@ +From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001 +From: =?utf8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com> +Date: Fri, 24 Sep 2021 20:57:41 +0100 +Subject: [PATCH] chmod: fix exit status when ignoring symlinks + +* src/chmod.c: Reorder enum so CH_NOT_APPLIED +can be treated as a non error. +* tests/chmod/ignore-symlink.sh: A new test. +* tests/local.mk: Reference the new test. +Fixes https://bugs.gnu.org/50784 +--- + src/chmod.c | 4 ++-- + tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++ + tests/local.mk | 1 + + 4 files changed, 40 insertions(+), 2 deletions(-) + create mode 100755 tests/chmod/ignore-symlink.sh + +diff --git a/src/chmod.c b/src/chmod.c +index 37b04f5..57ac47f 100644 +--- a/src/chmod.c ++++ b/src/chmod.c +@@ -44,8 +44,8 @@ struct change_status + enum + { + CH_NO_STAT, +- CH_NOT_APPLIED, + CH_FAILED, ++ CH_NOT_APPLIED, + CH_NO_CHANGE_REQUESTED, + CH_SUCCEEDED + } +@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent) + if ( ! recurse) + fts_set (fts, ent, FTS_SKIP); + +- return CH_NO_CHANGE_REQUESTED <= ch.status; ++ return CH_NOT_APPLIED <= ch.status; + } + + /* Recursively change the modes of the specified FILES (the last entry +diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh +new file mode 100755 +index 0000000..5ce3de8 +--- /dev/null ++++ b/tests/chmod/ignore-symlink.sh +@@ -0,0 +1,31 @@ ++#!/bin/sh ++# Test for proper exit code of chmod on a processed symlink. ++ ++# Copyright (C) 2021 Free Software Foundation, Inc. ++ ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see <https://www.gnu.org/licenses/>. ++ ++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src ++print_ver_ chmod ++ ++mkdir dir || framework_failure_ ++touch dir/f || framework_failure_ ++ln -s f dir/l || framework_failure_ ++ ++# This operation ignores symlinks but should succeed. ++chmod u+w -R dir 2> out || fail=1 ++ ++compare /dev/null out || fail=1 ++ ++Exit $fail +diff --git a/tests/local.mk b/tests/local.mk +index 228d0e3..b5b893f 100644 +--- a/tests/local.mk ++++ b/tests/local.mk +@@ -456,6 +456,7 @@ all_tests = \ + tests/chmod/c-option.sh \ + tests/chmod/equal-x.sh \ + tests/chmod/equals.sh \ ++ tests/chmod/ignore-symlink.sh \ + tests/chmod/inaccessible.sh \ + tests/chmod/octal.sh \ + tests/chmod/setgid.sh \ +-- +1.9.1 + @@ -10,8 +10,8 @@ # If you want to help keep it up to date, please open a Pull Request there. pkgname=coreutils-selinux -pkgver=8.32 -pkgrel=1 +pkgver=9.0 +pkgrel=2 pkgdesc='The basic file, shell and text manipulation utilities of the GNU operating system with SELinux support' arch=('x86_64' 'aarch64') license=('GPL3') @@ -22,11 +22,11 @@ conflicts=("${pkgname/-selinux}" "selinux-${pkgname/-selinux}") provides=("${pkgname/-selinux}=${pkgver}-${pkgrel}" "selinux-${pkgname/-selinux}=${pkgver}-${pkgrel}") source=("https://ftp.gnu.org/gnu/${pkgname/-selinux}/${pkgname/-selinux}-$pkgver.tar.xz"{,.sig} - backport_syscall_fix.patch) # https://github.com/coreutils/coreutils/commit/10fcb97bd728f09d4a027eddf8ad2900f0819b0a.patch + '01-fix-fs72253.patch') validpgpkeys=('6C37DC12121A5006BC1DB804DF6FD971306037D9') # Pádraig Brady -sha256sums=('4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa' +sha256sums=('ce30acdf4a41bc5bb30dd955e9eaa75fa216b4e3deb08889ed32433c7b3b97ce' 'SKIP' - 'ee8ddb4e04d89089ba6022dcc736e145cf3149f8c317d3ea114485605060fe83') + 'aefec296212c10f8ddae10225216847f537e573d80b678161f453b34fd183bf5') prepare() { cd ${pkgname/-selinux}-$pkgver @@ -34,15 +34,28 @@ prepare() { local filename for filename in "${source[@]}"; do if [[ "$filename" =~ \.patch$ ]]; then - msg2 "Applying patch ${filename##*/}" + echo "Applying patch ${filename##*/}" patch -p1 -N -i "$srcdir/${filename##*/}" fi done : + + # tail -F fails to find out that files are removed, in test VM + # so disable the tests which verify this + sed '/^ tests\/tail-2\/assert\.sh\s/d' -i tests/local.mk + sed '/^ tests\/tail-2\/inotify-dir-recreate\.sh\s/d' -i tests/local.mk + + # some tests create directories with long name, which does not work on GitHub Actions + sed '/^ tests\/du\/long-from-unreadable\.sh\s/d' -i tests/local.mk + sed '/^ tests\/rm\/deep-2\.sh\s/d' -i tests/local.mk } build() { cd ${pkgname/-selinux}-$pkgver + aclocal -I m4 + autoconf -f + autoheader -f + automake -f ./configure \ --prefix=/usr \ --libexecdir=/usr/lib \ @@ -54,7 +67,7 @@ build() { check() { cd ${pkgname/-selinux}-$pkgver - #make check + make check } package() { diff --git a/backport_syscall_fix.patch b/backport_syscall_fix.patch deleted file mode 100644 index 42e78b731f62..000000000000 --- a/backport_syscall_fix.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Thu, 5 Mar 2020 17:25:29 -0800 -Subject: [PATCH] ls: restore 8.31 behavior on removed directories - -* NEWS: Mention this. -* src/ls.c: Do not include <sys/sycall.h> -(print_dir): Don't worry about whether the directory is removed. -* tests/ls/removed-directory.sh: Adjust to match new (i.e., old) -behavior. ---- - NEWS | 6 ++++++ - src/ls.c | 22 ---------------------- - tests/ls/removed-directory.sh | 10 ++-------- - 3 files changed, 8 insertions(+), 30 deletions(-) - -diff --git a/NEWS b/NEWS -index fdc8bf5db..653e7178b 100644 ---- a/NEWS -+++ b/NEWS -@@ -2,6 +2,12 @@ GNU coreutils NEWS -*- outline -*- - - * Noteworthy changes in release ?.? (????-??-??) [?] - -+** Changes in behavior -+ -+ On GNU/Linux systems, ls no longer issues an error message on -+ directory merely because it was removed. This reverts a change -+ that was made in release 8.32. -+ - - * Noteworthy changes in release 8.32 (2020-03-05) [stable] - -diff --git a/src/ls.c b/src/ls.c -index 24b983287..4acf5f44d 100644 ---- a/src/ls.c -+++ b/src/ls.c -@@ -49,10 +49,6 @@ - # include <sys/ptem.h> - #endif - --#ifdef __linux__ --# include <sys/syscall.h> --#endif -- - #include <stdio.h> - #include <assert.h> - #include <setjmp.h> -@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - struct dirent *next; - uintmax_t total_blocks = 0; - static bool first = true; -- bool found_any_entries = false; - - errno = 0; - dirp = opendir (name); -@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - next = readdir (dirp); - if (next) - { -- found_any_entries = true; - if (! file_ignored (next->d_name)) - { - enum filetype type = unknown; -@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) - if (errno != EOVERFLOW) - break; - } --#ifdef __linux__ -- else if (! found_any_entries) -- { -- /* If readdir finds no directory entries at all, not even "." or -- "..", then double check that the directory exists. */ -- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1 -- && errno != EINVAL) -- { -- /* We exclude EINVAL as that pertains to buffer handling, -- and we've passed NULL as the buffer for simplicity. -- ENOENT is returned if appropriate before buffer handling. */ -- file_failure (command_line_arg, _("reading directory %s"), name); -- } -- break; -- } --#endif - else - break; - -diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh -index e8c835dab..fe8f929a1 100755 ---- a/tests/ls/removed-directory.sh -+++ b/tests/ls/removed-directory.sh -@@ -26,20 +26,14 @@ case $host_triplet in - *) skip_ 'non linux kernel' ;; - esac - --LS_FAILURE=2 -- --cat <<\EOF >exp-err || framework_failure_ --ls: reading directory '.': No such file or directory --EOF -- - cwd=$(pwd) - mkdir d || framework_failure_ - cd d || framework_failure_ - rmdir ../d || framework_failure_ - --returns_ $LS_FAILURE ls >../out 2>../err || fail=1 -+ls >../out 2>../err || fail=1 - cd "$cwd" || framework_failure_ - compare /dev/null out || fail=1 --compare exp-err err || fail=1 -+compare /dev/null err || fail=1 - - Exit $fail |