From 2481fa9e665e4072da845b56292e0cd371fcbf05 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 22 May 2024 13:49:52 +0000 Subject: [PATCH] import UBI acl-2.2.53-3.el8 --- ....2.53-setfacl-preserve-failed-status.patch | 60 +++++++++++++++++++ SOURCES/0001-acl-2.2.53-test-runwrapper.patch | 44 ++++++++++++++ SPECS/acl.spec | 27 +++++++-- 3 files changed, 126 insertions(+), 5 deletions(-) create mode 100644 SOURCES/0001-acl-2.2.53-setfacl-preserve-failed-status.patch create mode 100644 SOURCES/0001-acl-2.2.53-test-runwrapper.patch diff --git a/SOURCES/0001-acl-2.2.53-setfacl-preserve-failed-status.patch b/SOURCES/0001-acl-2.2.53-setfacl-preserve-failed-status.patch new file mode 100644 index 0000000..01fa307 --- /dev/null +++ b/SOURCES/0001-acl-2.2.53-setfacl-preserve-failed-status.patch @@ -0,0 +1,60 @@ +From 7ce89c695e76ec41fcebd83f8b728f63b0361a2d Mon Sep 17 00:00:00 2001 +From: Renaud Metrich +Date: Thu, 5 Oct 2023 11:17:51 +0200 +Subject: [PATCH] setfacl: preserve the failed status when processing multiple + files + +Resolves the following bug: +``` +$ mkdir FOO +$ setfacl -m d:g:user:rwX -m g:user:rwX ./FOO/bar ./FOO +setfacl: ./FOO/bar: No such file or directory +$ echo $? +0 +``` + +(Cleanup added while applying.) + +Upstream-commit: 7ce89c695e76ec41fcebd83f8b728f63b0361a2d +--- + tools/setfacl.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/tools/setfacl.c b/tools/setfacl.c +index fd0bf2e..4140276 100644 +--- a/tools/setfacl.c ++++ b/tools/setfacl.c +@@ -332,7 +332,7 @@ int main(int argc, char *argv[]) + { + int opt; + int saw_files = 0; +- int status = 0; ++ int status = 0, status2; + FILE *file; + int which; + int lineno; +@@ -555,7 +555,9 @@ int main(int argc, char *argv[]) + goto synopsis; + saw_files = 1; + +- status = next_file(optarg, seq); ++ status2 = next_file(optarg, seq); ++ if (status == 0) ++ status = status2; + break; + + case 'B': /* restore ACL backup */ +@@ -642,7 +644,9 @@ int main(int argc, char *argv[]) + goto synopsis; + saw_files = 1; + +- status = next_file(argv[optind++], seq); ++ status2 = next_file(argv[optind++], seq); ++ if (status == 0) ++ status = status2; + } + if (!saw_files) + goto synopsis; +-- +2.41.0 + diff --git a/SOURCES/0001-acl-2.2.53-test-runwrapper.patch b/SOURCES/0001-acl-2.2.53-test-runwrapper.patch new file mode 100644 index 0000000..7c27c6c --- /dev/null +++ b/SOURCES/0001-acl-2.2.53-test-runwrapper.patch @@ -0,0 +1,44 @@ +From 085cc4ff56857d234e80f37d0316c13eb5718696 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 3 Jul 2018 10:46:58 +0200 +Subject: [PATCH] test/runwrapper: copy the preloaded library + +... to a temporary directory because the original location might +not be accessible by other users. +--- + test/runwrapper | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/test/runwrapper b/test/runwrapper +index 6e0e899..de4555a 100755 +--- a/test/runwrapper ++++ b/test/runwrapper +@@ -1,7 +1,23 @@ + #!/bin/bash + +-if [ -e "$PWD/.libs/libtestlookup.so" ]; then +- export LD_PRELOAD="$PWD/.libs/libtestlookup.so" ++src="$PWD/.libs/libtestlookup.so" ++dst= ++if [ -e "$src" ]; then ++ # copy the preloaded library to a temporary directory because ++ # the original location might not be accessible by other users ++ tmp="$(mktemp -d)" ++ chmod 0755 "$tmp" ++ dst="${tmp}/libtestlookup.so" ++ cp -L "$src" "$dst" ++ export LD_PRELOAD="$dst" + fi + + "${srcdir:-${PWD}}"/test/run "$@" ++ec="$?" ++ ++if [ -n "$dst" ]; then ++ # remove the temporary location ++ rm -rf "$dst" ++fi ++ ++exit "$ec" +-- +2.14.4 + diff --git a/SPECS/acl.spec b/SPECS/acl.spec index 1d76fd4..63cc137 100644 --- a/SPECS/acl.spec +++ b/SPECS/acl.spec @@ -1,9 +1,9 @@ Summary: Access control list utilities Name: acl Version: 2.2.53 -Release: 1%{?dist} +Release: 3%{?dist} BuildRequires: gawk -BuildRequires: gettext +BuildRequires: gettext-devel BuildRequires: libattr-devel BuildRequires: libtool Requires: libacl = %{version}-%{release} @@ -12,6 +12,13 @@ Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar License: GPLv2+ URL: https://savannah.nongnu.org/projects/acl +# avoid permission denied problem with LD_PRELOAD in the test-suite +Patch1: 0001-acl-2.2.53-test-runwrapper.patch + +# preserve failed setfacl return code (RHEL-3909) +# https://git.savannah.nongnu.org/cgit/acl.git/commit/?id=7ce89c695e76ec41fcebd83f8b728f63b0361a2d +Patch2: 0001-acl-2.2.53-setfacl-preserve-failed-status.patch + %description This package contains the getfacl and setfacl utilities needed for manipulating access control lists. @@ -41,6 +48,9 @@ defined in POSIX 1003.1e draft standard 17. %prep %autosetup -p1 +# newer autoconf fixes rpath warnings from rpminspect +autoreconf -fvi + %build %configure @@ -48,7 +58,7 @@ defined in POSIX 1003.1e draft standard 17. # sed -i 's/-O2/-O0/' libtool include/builddefs # unset CFLAGS -make %{?_smp_mflags} +%make_build %check if ./setfacl -m "u:$(id -u):rwx" .; then @@ -69,14 +79,14 @@ if ./setfacl -m "u:$(id -u):rwx" .; then fi # run the upstream test-suite - make check || exit $? + %make_build check || exit $? else echo '*** ACLs are probably not supported by the file system,' \ 'the test-suite will NOT run ***' fi %install -make install DESTDIR=$RPM_BUILD_ROOT +%make_install # get rid of libacl.a and libacl.la rm -f $RPM_BUILD_ROOT%{_libdir}/libacl.a @@ -113,6 +123,13 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}* %{_libdir}/libacl.so.* %changelog +* Fri Oct 06 2023 Lukáš Zaoral - 2.2.53-3 +- fix RPATH rpminspect reports +- actually apply an included patch + +* Fri Oct 06 2023 Lukáš Zaoral - 2.2.53-2 +- preserve failed setfacl return code (RHEL-3909) + * Mon Jul 02 2018 Kamil Dudka 2.2.53-1 - new upstream release