Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

13 changed files with 429 additions and 20 deletions

View File

@ -1 +1 @@
6c9e46602adece1c2dae91ed065899d7f810bf01 SOURCES/acl-2.2.53.tar.gz
a5343e9f75326ffe5aa8d5d042e52227a3fd66cb acl-2.3.1.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/acl-2.2.53.tar.gz
/acl-2.[23].*.tar.gz

View File

@ -0,0 +1,44 @@
From 085cc4ff56857d234e80f37d0316c13eb5718696 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
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

View File

@ -0,0 +1,60 @@
From 7ce89c695e76ec41fcebd83f8b728f63b0361a2d Mon Sep 17 00:00:00 2001
From: Renaud Metrich <rmetrich@redhat.com>
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

BIN
acl-2.3.1.tar.gz.sig Normal file

Binary file not shown.

View File

@ -1,14 +1,24 @@
Summary: Access control list utilities
Name: acl
Version: 2.2.53
Release: 1%{?dist}
Version: 2.3.1
Release: 4%{?dist}
BuildRequires: gawk
BuildRequires: gcc
BuildRequires: gettext
BuildRequires: libattr-devel
BuildRequires: libtool
Requires: libacl = %{version}-%{release}
BuildRequires: make
BuildRequires: perl(FileHandle)
Requires: libacl%{?_isa} = %{version}-%{release}
Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar.gz
# 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-11833)
# https://git.savannah.nongnu.org/cgit/acl.git/commit/?id=7ce89c695e76ec41fcebd83f8b728f63b0361a2d
Patch2: 0001-acl-2.3.1-setfacl-preserve-failed-status.patch
License: GPLv2+
URL: https://savannah.nongnu.org/projects/acl
@ -19,7 +29,6 @@ manipulating access control lists.
%package -n libacl
Summary: Dynamic library for access control list support
License: LGPLv2+
Group: System Environment/Libraries
Conflicts: filesystem < 3
%description -n libacl
@ -30,8 +39,7 @@ control lists.
%package -n libacl-devel
Summary: Files needed for building programs with libacl
License: LGPLv2+
Group: Development/Libraries
Requires: libacl = %{version}-%{release}, libattr-devel
Requires: libacl%{?_isa} = %{version}-%{release}, libattr-devel
%description -n libacl-devel
This package contains header files and documentation needed to develop
@ -48,35 +56,38 @@ defined in POSIX 1003.1e draft standard 17.
# sed -i 's/-O2/-O0/' libtool include/builddefs
# unset CFLAGS
make %{?_smp_mflags}
%make_build
%check
# make the test-suite use the just built library (instead of the system one)
export LD_LIBRARY_PATH="${RPM_BUILD_ROOT}%{_libdir}:${LD_LIBRARY_PATH}"
if ./setfacl -m "u:$(id -u):rwx" .; then
if test 0 = "$(id -u)"; then
# test/root/permissions.test requires the 'daemon' user to be a member
# of the 'bin' group in order not to fail. Prevent the test from
# running if we detect that its requirements are not met (#1085389).
if id -nG daemon | { ! grep bin >/dev/null; }; then
sed -e 's|test/root/permissions.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
sed -e 's|test/root/permissions.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
# test/root/setfacl.test fails if 'bin' user cannot access build dir
if ! runuser -u bin -- "${PWD}/setfacl" --version; then
sed -e 's|test/root/setfacl.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
# test/root/setfacl.test fails if 'bin' user cannot access build dir
if ! runuser -u bin -- "${PWD}/setfacl" --version; then
sed -e 's|test/root/setfacl.test||' \
-i test/Makemodule.am Makefile.in Makefile
fi
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
@ -92,7 +103,6 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%ldconfig_scriptlets -n libacl
%files -f %{name}.lang
%{!?_licensedir:%global license %%doc}
%license doc/COPYING*
%{_bindir}/chacl
%{_bindir}/getfacl
@ -113,6 +123,56 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%{_libdir}/libacl.so.*
%changelog
* Fri Oct 06 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-4
- preserve failed setfacl return code (RHEL-11833)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.1-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.1-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Mar 16 2021 Kamil Dudka <kdudka@redhat.com> - 2.3.1-1
- new upstream release
* Fri Mar 12 2021 Kamil Dudka <kdudka@redhat.com> - 2.3.0-1
- new upstream release
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Aug 31 2020 Kamil Dudka <kdudka@redhat.com> 2.2.53-9
- make __acl_create_entry_obj() work with LTO enabled (#1873975)
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-8
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jun 03 2020 Tom Stellard <tstellar@redhat.com> - 2.2.53-6
- Spec file cleanups and build fix
- Add BuildRequires: perl-FileHandle to fix make check
- Add BuildRequres: gcc [1]
- Use make_build [2] and make_install[3] macros
- [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/#_buildrequires_and_requires
- [2] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make
- [3] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_why_the_makeinstall_macro_should_not_be_used
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.53-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 02 2018 Kamil Dudka <kdudka@redhat.com> 2.2.53-1
- new upstream release

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (acl-2.3.1.tar.gz) = f101e27058c959f4c412f475c3fc77a90d1ead8728701e4ce04ff08b34139d35e0e72278c9ac7622ba6054e81c0aeca066e09491b5f5666462e3866705a0e892

View File

@ -0,0 +1,88 @@
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# Author: Milos Malik <mmalik@redhat.com>
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Example Makefile for RHTS #
# This example is geared towards a test for a specific package #
# It does most of the work for you, but may require further coding #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# The toplevel namespace within which the test lives.
# FIXME: You will need to change this:
TOPLEVEL_NAMESPACE=CoreOS
# The name of the package under test:
# FIXME: you wil need to change this:
PACKAGE_NAME=acl
# The path of the test below the package:
# FIXME: you wil need to change this:
RELATIVE_PATH=Sanity/cmd-line-options
# Version of the test. Used with make tag.
export TESTVERSION=1.0
# The combined namespace of the test.
export TEST=/$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
# A phony target is one that is not really the name of a file.
# It is just a name for some commands to be executed when you
# make an explicit request. There are two reasons to use a
# phony target: to avoid a conflict with a file of the same
# name, and to improve performance.
.PHONY: all install download clean
# executables to be built should be added here, they will be generated on the system under test.
BUILT_FILES=
# data files, .c files, scripts anything needed to either compile the test and/or run it.
FILES=$(METADATA) runtest.sh Makefile PURPOSE test-core.sh
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x ./runtest.sh ./test-core.sh
clean:
rm -f *~ *.rpm $(BUILT_FILES)
# You may need to add other targets e.g. to build executables from source code
# Add them here:
# Include Common Makefile
include /usr/share/rhts/lib/rhts-make.include
# Generate the testinfo.desc here:
$(METADATA): Makefile
@touch $(METADATA)
# Change to the test owner's name
@echo "Owner: Milos Malik <mmalik@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "Description: utilities are tested if they support basic command line options" >> $(METADATA)
@echo "TestTime: 2m" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
# add any other packages for which your test ought to run here
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
# add any other requirements for the script to run here
@echo "License: GPLv2" >> $(METADATA)
# You may need other fields here; see the documentation
rhts-lint $(METADATA)

View File

@ -0,0 +1,5 @@
Test Name: cmd-line-options
Author: Milos Malik <mmalik@redhat.com>
Location: /CoreOS/acl/Sanity/cmd-line-options
Short Description: Utilities are tested if they support basic command line options.
Safe: yes

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# Author: Milos Malik <mmalik@redhat.com>
rhts-run-simple-test $TEST ./test-core.sh

View File

@ -0,0 +1,113 @@
#!/bin/sh
# Description: sanity test for acl package
# Author: Milos Malik <mmalik@redhat.com>
##### Variable Declaration #####
VERSION=1.0
# FAIL unless test explicitly passes
RESULT=FAIL
# Each pass increases SCORE by 1
SCORE=0
TOTAL=8
# Set language so we know what results to test for
set_lang=0
old_lang=$LANG
new_lang=en_US.UTF-8
# Which package and which utility do we test?
PACKAGE=acl
##### Function Declaration #####
log () {
printf "\n:: $1 ::\n"
}
check_exit_code () {
echo -e "\t* exit code: $1"
if [ $1 $2 $3 ] ; then
let "SCORE += 1"
fi
}
##### Begin Test #####
log "[`date +%H:%M:%S`] Begin Test - $TEST-$VERSION"
# Warn if not running as root that test might fail
e_user=$(whoami)
if [[ x"${e_user}" != x"root" ]]; then
log "Warning, not running as root! This test might fail."
fi
# Temporarily set LANG to value we can trust results from
if [[ x"${LANG}" != x"${new_lang}" ]]; then
log "Warning, LANG not set to ${new_lang}!"
log "Temporarily setting LANG to ${new_lang}, was ${old_lang}"
set_lang=1
export LANG=${new_lang}
log "Done, LANG=${new_lang}."
fi
log "getfacl -h"
getfacl -h >& /dev/null
check_exit_code $? -eq 0
log "getfacl --help"
getfacl --help >& /dev/null
check_exit_code $? -eq 0
log "getfacl -v"
getfacl -v >& /dev/null
check_exit_code $? -eq 0
log "getfacl --version"
getfacl --version >& /dev/null
check_exit_code $? -eq 0
log "setfacl -h"
setfacl -h >& /dev/null
check_exit_code $? -eq 0
log "setfacl --help"
setfacl --help >& /dev/null
check_exit_code $? -eq 0
log "setfacl -v"
setfacl -v >& /dev/null
check_exit_code $? -eq 0
log "setfacl --version"
setfacl --version >& /dev/null
check_exit_code $? -eq 0
# Reset LANG to original value
if [[ ${set_lang} == 1 ]]; then
log "Resetting LANG to ${old_lang}."
export LANG=${old_lang}
log "Done, LANG=${old_lang}."
fi
log "[`date +%H:%M:%S`] End Test - $TEST-$VERSION"
##### Report results #####
log "SCORE: ${SCORE}/${TOTAL}"
if [ ${SCORE} -eq ${TOTAL} ] ; then
# everything was OK
log "RESULT: PASS"
printf "\n\n"
exit 0
else
# something failed
log "RESULT: FAIL"
printf "\n\n"
exit 1
fi
##### End Test #####

13
tests/tests.yml Normal file
View File

@ -0,0 +1,13 @@
---
# This first play always runs on the local staging system
- hosts: localhost
roles:
- role: standard-test-beakerlib
tags:
- classic
- container
- atomic
tests:
- cmd-line-options
required_packages:
- which # which package required for cmd-line-options