diff --git a/findutils-4.7.0-root-tests.patch b/findutils-4.7.0-root-tests.patch new file mode 100644 index 0000000..5207ac4 --- /dev/null +++ b/findutils-4.7.0-root-tests.patch @@ -0,0 +1,132 @@ +From 498674f70816bb380ce11e62b620e4ece7763fd0 Mon Sep 17 00:00:00 2001 +From: Bernhard Voelker +Date: Sun, 9 Feb 2020 19:58:07 +0100 +Subject: [PATCH] tests: avoid FP when run as root + +Test 'sv-bug-54171' produced a false-positive error as 'find' would +not fail for an unreadable directory when run as root. +Migrate the test to the newer shell-based tests, and add the +'skip_if_root_' guard to avoid a false-positive. + +* find/testsuite/find.posix/sv-bug-54171.exp: Remove. +* find/testsuite/find.posix/sv-bug-54171.xo: Remove. +* find/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP): Remove the +above deleted test. +* tests/find/depth-unreadable-dir.sh: Add test. +* tests/local.mk (all_tests): Reference it. + +Test FP introduced in commit v4.6.0-178-gdf4610d0. +Fixes https://savannah.gnu.org/bugs/?57762 +and https://bugzilla.redhat.com/1799064 + +Upstream-commit: 2f9fff9e1f0c0b7a9034d7c46ca197ce693c4736 +Signed-off-by: Kamil Dudka +--- + find/testsuite/Makefile.am | 2 -- + find/testsuite/find.posix/sv-bug-54171.exp | 5 --- + find/testsuite/find.posix/sv-bug-54171.xo | 1 - + tests/find/depth-unreadable-dir.sh | 39 ++++++++++++++++++++++ + tests/local.mk | 1 + + 5 files changed, 40 insertions(+), 8 deletions(-) + delete mode 100644 find/testsuite/find.posix/sv-bug-54171.exp + delete mode 100644 find/testsuite/find.posix/sv-bug-54171.xo + create mode 100755 tests/find/depth-unreadable-dir.sh + +diff --git a/find/testsuite/Makefile.am b/find/testsuite/Makefile.am +index d252451a..77a2902c 100644 +--- a/find/testsuite/Makefile.am ++++ b/find/testsuite/Makefile.am +@@ -119,7 +119,6 @@ find.posix/prune-stat.xo \ + find.posix/sizetype.xo \ + find.posix/sv-bug-15235.xo \ + find.posix/sv-bug-19613.xo \ +-find.posix/sv-bug-54171.xo \ + find.posix/typesize.xo + + +@@ -246,7 +245,6 @@ find.posix/sv-bug-15235.exp \ + find.posix/sv-bug-19605.exp \ + find.posix/sv-bug-19613.exp \ + find.posix/sv-bug-19617.exp \ +-find.posix/sv-bug-54171.exp \ + find.posix/typesize.exp \ + find.posix/user-empty.exp \ + find.posix/user-missing.exp +diff --git a/find/testsuite/find.posix/sv-bug-54171.exp b/find/testsuite/find.posix/sv-bug-54171.exp +deleted file mode 100644 +index 8e5448fb..00000000 +--- a/find/testsuite/find.posix/sv-bug-54171.exp ++++ /dev/null +@@ -1,5 +0,0 @@ +-exec rm -rf tmp +-exec mkdir tmp tmp/dir +-exec chmod 0311 tmp/dir +-find_start f {tmp -depth -name dir } +-exec rm -rf tmp +diff --git a/find/testsuite/find.posix/sv-bug-54171.xo b/find/testsuite/find.posix/sv-bug-54171.xo +deleted file mode 100644 +index 2dc4706a..00000000 +--- a/find/testsuite/find.posix/sv-bug-54171.xo ++++ /dev/null +@@ -1 +0,0 @@ +-tmp/dir +diff --git a/tests/find/depth-unreadable-dir.sh b/tests/find/depth-unreadable-dir.sh +new file mode 100755 +index 00000000..86e2fd60 +--- /dev/null ++++ b/tests/find/depth-unreadable-dir.sh +@@ -0,0 +1,39 @@ ++#!/bin/sh ++# find -depth: ensure to output an unreadable directory. ++ ++# Copyright (C) 2020 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 . ++ ++. "${srcdir=.}/tests/init.sh"; fu_path_prepend_ ++print_ver_ find ++ ++# Find run as root would not fail for an unreadable directory. ++skip_if_root_ ++ ++# Prepare an unreadable directory, and the expected stdout/stderr. ++mkdir tmp tmp/dir \ ++ && chmod 0311 tmp/dir \ ++ && echo 'tmp/dir' > exp \ ++ && echo "find: 'tmp/dir': Permission denied" > experr \ ++ || framework_failure_ ++ ++# Run FTS-based find with -depth; versions < 4.7.0 failed to output ++# an unreadable directory (see #54171). ++returns_ 1 find tmp -depth -name dir > out 2> err || fail=1 ++ ++compare exp out || fail=1 ++compare experr err || fail=1 ++ ++Exit $fail +diff --git a/tests/local.mk b/tests/local.mk +index dccc7342..986df55e 100644 +--- a/tests/local.mk ++++ b/tests/local.mk +@@ -106,6 +106,7 @@ check-root: + + all_tests = \ + tests/misc/help-version.sh \ ++ tests/find/depth-unreadable-dir.sh \ + tests/find/many-dir-entries-vs-OOM.sh \ + tests/find/name-lbracket-literal.sh \ + tests/find/printf_escapechars.sh \ +-- +2.21.1 + diff --git a/findutils.spec b/findutils.spec index 44ff8b9..fd70900 100644 --- a/findutils.spec +++ b/findutils.spec @@ -1,7 +1,7 @@ Summary: The GNU versions of find utilities (find and xargs) Name: findutils Version: 4.7.0 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 1 License: GPLv3+ URL: http://www.gnu.org/software/findutils/ @@ -22,6 +22,9 @@ Patch4: findutils-4.6.0-test-lock.patch # implement the -noleaf option of find (#1252549) Patch5: findutils-4.6.0-leaf-opt.patch +# make upstream test-suite work with root privileges (#1799064) +Patch6: findutils-4.7.0-root-tests.patch + Conflicts: filesystem < 3 Provides: /bin/find Provides: bundled(gnulib) @@ -109,6 +112,9 @@ rm -f %{buildroot}%{_infodir}/dir %{_infodir}/find-maint.info.* %changelog +* Tue Feb 11 2020 Kamil Dudka - 1:4.7.0-3 +- make upstream test-suite work with root privileges (#1799064) + * Tue Jan 28 2020 Fedora Release Engineering - 1:4.7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild