Compare commits

...

448 Commits

Author SHA1 Message Date
Kamil Dudka 4dcaf08c8b Resolves: #2112870 - fix regression introduced in the last commit 2022-08-02 14:19:10 +02:00
Kamil Dudka 26b2c3ae54 Related: #2112870 - reflect review comments on the previous change 2022-08-02 11:08:50 +02:00
Kamil Dudka e0f6afe5e6 Resolves: #2112870 - prevent unexpand from failing on control characters 2022-08-01 17:17:07 +02:00
Fedora Release Engineering 2158b83433 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 23:35:44 +00:00
Pádraig Brady f672fec436 make simple backups in correct dir; broken in 9.1
From https://bugs.gnu.org/55029
2022-04-23 14:27:11 +01:00
Kamil Dudka cc30dec8eb coreutils-9.0.tar.xz.sig: remove signature no longer used 2022-04-19 13:00:29 +02:00
Kamil Dudka 9325dbbef7 new upstream release 9.1 2022-04-19 12:45:57 +02:00
Kamil Dudka 1f19874524 Resolves: #2044981 - ls, stat: avoid triggering automounts 2022-03-21 08:48:08 +01:00
Kamil Dudka c25beef1ca Resolves: #2058686 - make `df --direct` work again 2022-03-01 10:25:55 +01:00
Fedora Release Engineering d00a2dffe1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 23:51:06 +00:00
Kamil Dudka dddf06a3e5 chmod: fix exit status when ignoring symlinks 2021-10-04 14:20:36 +02:00
Kamil Dudka a39a95cf1a drop rh_i18n_wip.tar.gz which is not used by coreutils pkg
It can be obtained from git history in case it is actually needed.
2021-10-04 09:18:14 +02:00
Kamil Dudka 97967f71c8 coreutils-i18n.patch: synchronize the patch with openSUSE 2021-10-04 09:01:57 +02:00
Kamil Dudka 59649f0733 coreutils-i18n.patch: squash all i18n patches together
... so that we can easily synchronize the patch with openSUSE
2021-10-04 08:57:28 +02:00
Bernhard Voelker 4a2b84513e make upstream test-suite work again with i18n patch
New tests in tests/pr/pr-tests.pl have names which - with the suffix
"-mb" for the i18n test - become "too long (>30)".  I adjusted
'tests/Coreutils.pm' accordingly.
2021-10-04 08:54:26 +02:00
Kamil Dudka baf6440388 new upstream release 9.0 2021-10-04 08:54:26 +02:00
Sahana Prasad 67dacdf0ad Rebuilt with OpenSSL 3.0.0 2021-09-14 18:59:58 +02:00
Fedora Release Engineering b55ae3bd16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 20:02:21 +00:00
Fedora Release Engineering 37018cae6e - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 15:05:13 +00:00
Stewart Smith 9482c160b7 gpgverify source tarball
The old upstream-key.gpg was probably correct some time in the past,
but it's not true anymore. Luckily Savannah has a nice team gpg keyring
that we can use.

Signed-off-by: Stewart Smith <trawets@amazon.com>
2021-07-09 18:16:38 +00:00
Kamil Dudka 1250da8dfb Resolves: #1979814 - df: fix duplicated remote entries due to bind mounts 2021-07-07 17:59:02 +02:00
Kamil Dudka c05b5f83e5 Resolves: #1976935 - tail: fix stack out-of-bounds write with --follow 2021-07-01 14:42:14 +02:00
Kamil Dudka a0cb772e6f Resolves: #1913358 - mountlist: recognize fuse.portal as dummy file system 2021-06-08 09:18:54 +02:00
Kamil Dudka d21fd8df0d Related: #1953669 - fix false positives in the upstrem test-suite 2021-05-17 18:52:49 +02:00
Kamil Dudka 9666248b72 Resolves: #1953669 - cp: pick additional copy_file_range()-related fixes
... from upstream
2021-05-17 18:52:48 +02:00
Kamil Dudka 18d8c0abc1 Related: #1953669 - embed coreutils-8.32-copy-swap.patch
... into coreutils-8.32-cp-file-range.patch

It is confusing when 1 patch out of 8 from the same patchset is kept
separately.
2021-05-17 16:35:15 +02:00
Kamil Dudka ce3b866d19 changelog: forgot to mention public bug #1956080 2021-05-03 14:03:56 +02:00
Kamil Dudka 3a336cf37e Related: #1953669 - copy: ensure we enforce --reflink=never 2021-05-03 12:31:07 +02:00
Kamil Dudka 56555a47f2 Resolves: #1953669 - copy: do not refuse to copy a swap file 2021-04-27 10:35:48 +02:00
Kamil Dudka e4decc2688 Resolves: #1947850 - weaken the dependency on glibc-doc
... to reduce minimal installations
2021-04-10 18:33:31 +02:00
Kamil Dudka e680748e28 Related: #1830318 - drop the last use of ncurses no longer needed
We do not install or maintain /etc/DIR_COLORS.256color any more.
2021-04-10 18:33:31 +02:00
Kamil Dudka 32fb61705f Related: #1938695 - utimens: fix confusing arg type in internal func 2021-04-10 18:33:12 +02:00
Kamil Dudka e3402b5fd4 Resolves: #1938695 - hostname,ln: fix memory leaks detected by Coverity 2021-03-26 14:01:53 +01:00
Kamil Dudka 1737e5c81f Resolves: #1730048 - cp: use copy_file_range if available 2021-03-24 16:09:51 +01:00
Kamil Dudka 6b50cb9fc4 Resolves: #1921427 - stat: add support for the exfat file system 2021-02-18 15:38:36 +01:00
Kamil Dudka c822f6b1c0 Resolves: #959597 - make coreutils-common recommend glibc-doc
... for info doc refs
2021-02-03 17:05:57 +01:00
Kamil Dudka 4bd3080a00 Resolves: #1921249 - ls: fix crash printing SELinux context for unstatable files 2021-02-02 15:28:59 +01:00
Kamil Dudka 7afd521be2 Resolves: #1921246 - split: fix --number=K/N to output correct part of file 2021-02-02 15:28:19 +01:00
Kamil Dudka d5245cc71c Resolves: #1919775 - expr: fix invalid read with unmatched \(...\) 2021-02-02 15:25:51 +01:00
Fedora Release Engineering 581c05ccb4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 02:34:09 +00:00
Kamil Dudka 44351906c7 coreutils.spec: keep BR list alphabetically sorted 2021-01-07 09:00:22 +01:00
Tom Stellard f0b46ff947 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2020-12-19 05:23:46 +00:00
Kamil Dudka 1a18f20c40 Resolves: #1905481 - rm: do not skip files upon failure
... to remove an empty dir
2020-12-08 14:36:26 +01:00
Kamil Dudka 4af0c9fc89 df,stat,tail: recognize more file system types 2020-11-03 20:45:20 +01:00
Kamil Dudka 3a62768287 use upstream patch to eliminate unportable gnulib tests 2020-11-03 20:44:21 +01:00
Kamil Dudka f4b85e63ba make the %build section idempotent
... so that we can run `fedpkg compile --short` repeatedly
2020-10-14 18:13:09 +02:00
Kamil Dudka 441f1d7519 Resolves: #1830318 - do not install /etc/DIR_COLORS.256color 2020-08-17 12:46:51 +02:00
Kamil Dudka 5d08d14bbc Resolves: #1861108 - cp: default to --reflink=auto 2020-07-30 17:36:08 +02:00
Fedora Release Engineering fe6d386d13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 14:35:30 +00:00
Kamil Dudka 27d47106a2 replace weirdo constant in gnulib tests
... causing test failures on armv7hl
2020-07-24 19:17:09 +02:00
Kamil Dudka 6d3ccf4f6f Related: #1789115 - disable -flto on ppc64le to make test-float pass 2020-07-24 19:16:16 +02:00
Kamil Dudka fac4ffd39e fix the last change log entry 2020-07-24 19:15:28 +02:00
Tom Stellard 3426965b81 Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
2020-07-13 18:53:32 +00:00
James Cassell 5d12163012 make ncurses optional 2020-06-26 03:19:47 -04:00
James Cassell d72df4e29b ncurses is required by colorls.sh in coreutils-common
- colorls.sh uses tput from ncurses https://bugzilla.redhat.com/show_bug.cgi?id=469277
- colorls.sh was moved to -common package but the ncurses requirement
was not (in commit 5fb9bc4700 )
2020-06-26 02:45:57 -04:00
Kamil Dudka 1f6e0df263 compile with -Dlint to enable optional initialization and cleanup code
Upstream suggests to build with -Dlint for static analyzers:

    https://lists.gnu.org/archive/html/coreutils/2018-06/msg00110.html

... and even for production binary RPMs:

    https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00130.html

There is currently no measurable performance drop or other known downside.
2020-05-15 19:19:05 +02:00
Kamil Dudka bce50ab523 increase verbosity of the build
... so that compiler flags used for each compilation unit are visible
directly in the build log.
2020-05-15 19:19:05 +02:00
Kamil Dudka 2f7b3e0a8c Resolves: #1823247 - du: simplify leaf optimization for XFS 2020-04-23 15:07:37 +02:00
Tom Stellard f4a53e34d0 Fix missing inline function definition
The coreutils-i18n-expand-unexpand.patch adds 3 definitions of the
mbfile_multi_getc function.  2 of the definitions are marked with
the inline keyword, which means that there must also be an externally
visible definition.  The 3rd definition is marked extern inline, which statisfies
this requirement.  However, the 3rd definition is defined in mbfile.c
which is not compiled or linked in to any executable.  This causes build
failures if the compiler decides not to inline the function (which it is
allowed to do) e.g.

src/expand.c:153: undefined reference to `mbfile_multi_getc'

clang does not inline this function, but gcc does which is why
you will not see this failure when compiling with gcc.  However,
gcc could choose not to inline this, so even though the build succeeds,
it is depending on an implementation detail of gcc rather than the
C specification.

In order to fix this problem, mbfile.c was added to the list of sources for
any executable that uses mbfile_multi_getc.
2020-04-17 04:12:54 +00:00
Kamil Dudka d27f8523e2 uniq: remove collation handling as required by newer POSIX
Related upstream commit:
https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=8e81d44b5

Related Austin Group ticket:
https://www.austingroupbugs.net/view.php?id=963

Patch provided by Bernhard Voelker.
2020-03-11 14:20:22 +01:00
Kamil Dudka 9ed5d5b0f9 add missing BR for perl* needed for test-suite 2020-03-11 12:50:58 +01:00
Kamil Dudka acfa9e81ec Resolves: #1811038 - make mknod work again in chroot
... without /proc being mounted
2020-03-11 10:42:02 +01:00
Kamil Dudka 44b7afa142 ls: restore 8.31 behavior on removed directories 2020-03-09 14:19:35 +01:00
Kamil Dudka 4a6bfcaa46 do not use IF_LINT for initialization of scalar variables
It triggers false positives in compilers and static analyzers
for no real benefit.
2020-03-05 18:02:07 +01:00
Kamil Dudka b7eb17e7ee run tests/ls/removed-directory on x86_64 only for now 2020-03-05 17:51:56 +01:00
Kamil Dudka eadc061798 ls: fix compilation failure on aarch64
Bug: https://debbugs.gnu.org/39929
2020-03-05 17:29:48 +01:00
Kamil Dudka b0dc3833bf adapt i18n patch for the new release 2020-03-05 16:51:18 +01:00
Kamil Dudka 46d49783fe adapt DIR_COLORS patch for the new release
... and make it easier to maintain (by using sed for substitutions).
2020-03-05 16:51:13 +01:00
Kamil Dudka 00f87f4b88 new upstream release 8.32 2020-03-05 16:50:47 +01:00
Kamil Dudka 3dbfd57eac Resolves: #1800597 - make upstream test-suite work with root privileges 2020-02-11 10:36:16 +01:00
Kamil Dudka 3957dee9a4 use upstream fix the cp/proc-short-read test 2020-02-05 09:58:24 +01:00
Kamil Dudka 788bd804ff skip a test that relies on /proc/kallsyms having immutable content 2020-01-30 15:02:20 +01:00
Fedora Release Engineering 4f1cea8bda - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 14:49:55 +00:00
Kamil Dudka 664c64dec9 Revert "Resolves: #1760300 - use statx instead of stat when available"
This reverts commit 5cd3289cea because it
does not work well in containers hosted on RHEL-7, as reported in RHBZ:

    https://bugzilla.redhat.com/1760300#c5
2019-10-17 09:19:30 +02:00
Kamil Dudka 5cd3289cea Resolves: #1760300 - use statx instead of stat when available 2019-10-11 13:20:40 +02:00
Fedora Release Engineering 16fe71f18e - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-24 21:02:06 +00:00
Kamil Dudka 07291932a7 Resolves: #1728986 - disable flashing in ls colors for broken symbolic links 2019-07-16 13:04:35 +02:00
Kamil Dudka 2bc851a491 Resolves: #1688740 - fix formatting of sha512sum(1) man page 2019-03-18 13:49:13 +01:00
Kamil Dudka 5637e2b274 new upstream release 8.31 2019-03-11 12:25:47 +01:00
Fedora Release Engineering 30ec1629e9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 16:17:52 +00:00
Igor Gnatenko df169bbdad Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:23:58 +01:00
Kamil Dudka 990cf47f04 sync: fix open() fallback bug
Detected by Coverity Analysis:

Error: RESOURCE_LEAK (CWE-772):
coreutils-8.30/src/sync.c:112: open_fn: Returning handle opened by "open". [Note: The source code implementation of the function has been overridden by a user model.]
coreutils-8.30/src/sync.c:112: var_assign: Assigning: "fd" = handle returned from "open(file, 2049)".
coreutils-8.30/src/sync.c:115: leaked_handle: Handle variable "fd" going out of scope leaks the handle.
113|         if (fd < 0)
114|           error (0, rd_errno, _("error opening %s"), quoteaf (file));
115|->       return false;
116|       }
117|

Bug: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33287
2018-11-07 16:04:59 +01:00
Kamil Dudka d3d47dee12 fix implicit declaration warning in coreutils-getgrouplist.patch
Error: COMPILER_WARNING:
coreutils-8.30/lib/mgetgroups.c: scope_hint: In function 'mgetgroups'
coreutils-8.30/lib/mgetgroups.c:167:11: warning: implicit declaration of function 'xrealloc'; did you mean 'realloc'? [-Wimplicit-function-declaration]
     g = xrealloc (g, max_n_groups * sizeof (GETGROUPS_T));
         ^~~~~~~~
165|       {
166|         max_n_groups = ng;
167|->       g = xrealloc (g, max_n_groups * sizeof (GETGROUPS_T));
168|       }
169|       if (e == -1)
2018-11-07 15:54:23 +01:00
Kevin Fenzi 5decf6eab4 Also remove Requires pre/post used by info scriptlets. 2018-11-03 14:12:43 -07:00
Kevin Fenzi 9cc8a839e2 Remove no longer needed info scriptlets 2018-11-03 12:41:59 -07:00
Kamil Dudka 71b79ae180 Resolves: CVE-2018-17942 - fix heap-based buffer overflow in vasnprintf() 2018-10-11 14:39:54 +02:00
Kamil Dudka 7c7259b187 changelog: fix the last entry (version-release was missing) 2018-10-11 14:37:42 +02:00
Fedora Release Engineering abb9bb783a - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-12 22:15:30 +00:00
Kamil Dudka 333a307888 Resolves: #1598518 - rename gnulib's renameat2 to renameatu to avoid clash with glibc 2018-07-10 15:04:21 +02:00
Bernhard Voelker 822c7685b5 sync i18n patches with Suse
- coreutils-i18n-suse-merge.patch:
  * src/exand.c,src/unexpand.c: Avoid -Wcomment warning.
  * src/cut.c (cut_characters_or_cut_bytes_no_split): Change idx from size_t
    to uintmax_t type to avoid a regression on i586, armv7l and ppc.
    Compare upstream, non-MB commit:
      https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=d1a754c8272
    (cut_fields_mb): Likewise for field_idx.
  * tests/misc/cut.pl: Remove downstream tweaks as upstream MB tests are
     working since a while.
2018-07-04 13:02:12 +02:00
Kamil Dudka cf6dd7194c new upstream release 8.30 2018-07-02 11:42:58 +02:00
Kamil Dudka 868a615b18 coreutils-provides.inc: sort the list alphabetically 2018-05-30 09:46:27 +02:00
Kamil Dudka a38fffab2a add provides to coreutils-single to make it a drop-in replacement 2018-05-30 09:37:32 +02:00
Kamil Dudka d01deda0a2 coreutils-8.29-ls-abmon-width.patch: use upstream fix for the test 2018-05-30 09:22:08 +02:00
Kamil Dudka d83775a947 coreutils-8.29-ls-abmon-width.patch: temporarily disable the check
... because it does not work today (May 29th) as reported upstream:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31644
2018-05-29 18:17:34 +02:00
Kamil Dudka 44ebc66935 Resolves: #1577872 - ls: increase the allowed abmon width from 5 to 12 2018-05-29 17:02:58 +02:00
Kamil Dudka 79b09b54df Resolves: #1577872 - date, ls: pick strftime fixes from glibc to improve locale support 2018-05-28 17:48:34 +02:00
Kamil Dudka dd90a0a24b Resolves: #1558249 - fix crash caused by mistakenly enabled leaf optimization 2018-04-20 17:19:41 +02:00
Kamil Dudka 36ef66d59d make it possible to install the latest available Adobe Reader RPM for Linux
This was recently broken by e9599c8226.
2018-03-23 17:39:38 +01:00
Kamil Dudka 359784bfb0 Related: #1555079 - drop BR for bison
... which is not used during the build
2018-03-19 19:21:48 +01:00
Kamil Dudka d507a7b94c Resolves: #1555079 - make sure that parse-datetime.{c,y} ends up in debuginfo 2018-03-16 18:29:04 +01:00
Kamil Dudka 7995abc6ec fix build failure with glibc-2.28
Reported at:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html

../lib/freadahead.c: In function 'freadahead':
../lib/freadahead.c:97:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
   ^~~~~
../lib/freadahead.c:99:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[2]: *** [Makefile:9144: lib/freadahead.o] Error 1
make[2]: *** Waiting for unfinished jobs....
../lib/freadptr.c: In function 'freadptr':
../lib/freadptr.c:119:3: error: #error "Please port gnulib freadptr.c to your platform! Look at the definition of fflush, fread, getc, getc_unlocked on your system, then report this to bug-gnulib."
  #error "Please port gnulib freadptr.c to your platform! Look at the definition of fflush, fread, getc, getc_unlocked on your system, then report this to bug-gnulib."
   ^~~~~
../lib/freadptr.c:29:10: warning: unused variable 'size' [-Wunused-variable]
   size_t size;
          ^~~~
../lib/freadptr.c:121:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
2018-03-06 12:44:50 +01:00
Igor Gnatenko e9599c8226
Remove /bin/* Provides
UsrMove happened more than 10 Fedora releases ago.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-26 11:21:05 +01:00
Kamil Dudka 4a8582e246 add explicit BR for the gcc compiler
... as instructed at:

https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B
2018-02-19 16:23:12 +01:00
Fedora Release Engineering 5d3dc8fdbd - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 05:45:49 +00:00
Kamil Dudka fd470b54bc Resolves: CVE-2017-18018 - doc: warn about following symlinks recursively in chown/chgrp 2018-01-23 16:55:04 +01:00
Kamil Dudka 79fe59c7fc mv -n: do not overwrite the destination 2018-01-23 16:42:41 +01:00
Kamil Dudka d51b521e30 avoid test-suite failure if SELinux is disabled 2018-01-02 15:27:54 +01:00
Kamil Dudka 7effe141a5 add BR for hostname
... to avoid the following build-time message:

./configure: line 7463: hostname: command not found
2018-01-02 15:27:41 +01:00
Kamil Dudka 0cb3deb32b new upstream release 8.29 2018-01-02 15:25:24 +01:00
Igor Gnatenko 02030dc915 Remove very old Provides (mktemp, sh-utils, textwrap, fileutils, stat)
Those are gone in fc9, more than decade ago.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-11-07 16:44:31 +01:00
Rachel Sibley ab7465c4fa add reference link to fedora ci wiki 2017-09-21 12:45:49 -04:00
Rachel Sibley bb681e6c30 Initial commit for Atomic Host Tests 2017-09-21 11:38:05 -04:00
Kamil Dudka 2d00e2bb9a new upstream release 8.28 2017-09-04 11:43:42 +02:00
Ville Skyttä 3490621545 Own the %{_libexecdir}/coreutils dir
According to Fedora Packaging Guidelines, packages must own all
directories they put files in.

Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1483938
2017-08-22 12:52:05 +02:00
Kamil Dudka d2d5d5d057 Resolves: #1482445 - ptx: fix a possible crash caused by integer overflow 2017-08-18 17:52:50 +02:00
Fedora Release Engineering 353860c35c - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 19:11:06 +00:00
Igor Gnatenko 8401ff18e3 Enable separate debuginfo back
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-07-28 19:42:43 +02:00
Kamil Dudka 28658db744 avoid build failure caused broken RPM code
... that produces debuginfo packages

Bug: https://github.com/rpm-software-management/rpm/issues/280
2017-07-26 17:04:53 +02:00
Fedora Release Engineering 8fd1881fe2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 05:30:55 +00:00
Sebastian Kisela 8d02212742 doc: mention `setpriv --no-new-privs` feature in runcon info
* doc/coreutils.texi (runcon invocation): Mention setpriv usage.
Discussed at https://bugzilla.redhat.com/1360903
2017-05-30 09:39:28 +02:00
Kamil Dudka 6f16afd4a6 add coreutils-full provides for coreutils
... to make it explicitly installable
2017-05-16 14:15:41 +02:00
Kamil Dudka fde94e2609 Related: #158405 - drop coreutils-overflow.patch no longer needed
The bug was fixed by the following upstream commit 13 years ago:

http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=COREUTILS-5_2_1-705-g5bca9fb
2017-05-03 15:49:04 +02:00
Kamil Dudka 34aa759415 Related: #1306559 - drop workaround for already fixed rpm-build bug 2017-05-03 14:17:50 +02:00
Kamil Dudka 28873d6a70 do not mention a deprecated option in localized man pages 2017-05-03 13:13:22 +02:00
Kamil Dudka e0b67f5aa9 Related: #246729 - drop workaround no longer needed for 10 years old rpm-build bug 2017-05-03 13:13:22 +02:00
Kamil Dudka b9d157d0ce drop unnecessary uses of %defattr 2017-05-03 13:13:18 +02:00
Sebastian Kisela e00cb1843f tail: revert to polling if a followed directory is replaced (#1283760) 2017-04-28 12:48:03 +02:00
Kamil Dudka e0567d54a7 Resolves: CVE-2017-7476 - date, touch: fix out-of-bounds write via large TZ variable 2017-04-27 09:51:08 +02:00
Kamil Dudka 3d65658099 Resolves: #1444802 - do not obsolete coreutils-single, so it can be installed by DNF2
This reverts commit c553cab787.
2017-04-25 13:44:32 +02:00
Kamil Dudka 4ceb7222e4 fix spurious build failure caused by the misc/date-debug test 2017-03-15 10:16:30 +01:00
Kamil Dudka 7a7c1a231c new upstream release 8.27 2017-03-09 09:57:09 +01:00
Fedora Release Engineering bc25708240 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 07:54:30 +00:00
Kamil Dudka f1a024cc09 Resolves: #1418505 - fold: preserve new-lines in mutlibyte text 2017-02-03 12:36:35 +01:00
Kamil Dudka 5e77c9c1c9 test-lock: disable the rwlock test 2017-01-23 12:47:06 +01:00
Kamil Dudka 5e261ae9b9 changelog: fix a duplicated word in the last entry 2017-01-23 10:46:15 +01:00
Kamil Dudka e128603381 date: fix fix TZ= regression (patch by Pádraig Brady)
Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851934#10
2017-01-23 10:32:08 +01:00
Kamil Dudka b3b3da0cdf use upstream patch for gnulib's test-lock
... instead of disabling it
2017-01-02 10:00:22 +01:00
Kamil Dudka c168f3b343 merge coreutils-selinuxmanpages.patch into coreutils-selinux.patch
It does not make any sense to apply them separately.
2016-12-15 10:45:14 +01:00
Kamil Dudka a4f03c6bc0 drop build fixes no longer needed 2016-12-15 10:38:07 +01:00
Kamil Dudka 59a39fa268 apply patches automatically to ease maintenance 2016-12-02 13:48:08 +01:00
Kamil Dudka 8d346246a7 disable the test-lock gnulib test prone to deadlock
See https://lists.gnu.org/archive/html/bug-gnulib/2015-07/msg00033.html
and https://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=25fb4c6 for
some context.
2016-12-02 11:08:45 +01:00
Kamil Dudka 8d9eac4093 new upstream release 8.26 2016-12-01 19:14:56 +01:00
Kamil Dudka 3ed22ec3e8 md5sum,sha*sum: fix --ignore-missing with checksums starting with 00 2016-10-31 17:52:01 +01:00
Tomas Mraz 21de8b5251 rebuild with OpenSSL 1.1.0 2016-10-11 13:25:50 +02:00
Kamil Dudka 380647993e Resolves: #1365933 - ls: allow interruption when reading slow directories 2016-09-07 20:17:56 +02:00
Kamil Dudka 0e3a55d8dc coreutils.spec: do not compress files that are not installed 2016-09-07 20:09:15 +02:00
Kamil Dudka 39f7c7c836 run autoreconf in %prep 2016-07-19 15:13:06 +02:00
Kamil Dudka adf19d29ec drop post-install fix for Japanese locales that no longer applies 2016-07-19 14:00:38 +02:00
Kamil Dudka 8b01f2371c Resolves: #1355780 - fix 'sort -h -k' in locales that use blank as thousands separator 2016-07-19 13:53:33 +02:00
Kamil Dudka 6cf6cd48dd make 'sort -h' work for arbitrary column
... even when using UTF-8 locales
2016-07-14 16:50:51 +02:00
Kamil Dudka d3849ced08 fix patches such that they apply without offset 2016-07-14 16:29:59 +02:00
Kamil Dudka 9551d101b0 Related: #1335320 - do not print DIR_COLOR to stdout 2016-07-11 22:00:42 +02:00
Kamil Dudka fe09c9cd04 Related: #1354078 - drop %pre dependency on install-info 2016-07-11 17:36:22 +02:00
Kamil Dudka 3bf1e52ff3 Resolves: #1339135 - install -Z now sets default SELinux context for created directories 2016-07-11 17:27:02 +02:00
Kamil Dudka 3792f36ae5 Resolves: #1354078 - drop the %pre scriptlet
... which is no longer needed.  Fileutils, Shellutils, and Textutils
were merged into GNU Coreutils in 2002.  It should be safe not to handle
the transition now in 2016.
2016-07-11 17:17:36 +02:00
Kamil Dudka e207ff79a3 Resolves: #1349579 - clarify recognition of "^COLOR.*none" in /etc/DIR_COLORS 2016-07-11 17:14:09 +02:00
Kamil Dudka 7d9e8632f3 coreutils.spec: fix the last change log entry 2016-07-11 17:13:20 +02:00
Jakub Martisko 0a63fa44ae (un)expand: UTF8-BOM header detection 2016-07-07 12:53:26 +02:00
Ondřej Vašík 34ffa2ef55 change way of detection of interactive shell in colorls.sh script 2016-06-24 12:45:22 +02:00
Kamil Dudka ee3bfc24ca add BR for glibc-langpack-en to prevent the expand/mb test from failing 2016-06-20 16:57:49 +02:00
Kamil Dudka 0433f98b1b coreutils.spec: sort BuildRequires alphabetically
No observable changes intended.  Just to ease the maintenance.
2016-06-20 16:49:30 +02:00
Kamil Dudka 3b6df16a3d Resolves: #1348043 - do not use /bin/mv in %post
... to avoid a circular dependency.

The code where /bin/mv was used does not seem to be useful any more.
Fileutils, Shellutils, and Textutils were merged into GNU Coreutils
in 2002.  It should be safe not to handle the transition now in 2016.
2016-06-20 16:40:30 +02:00
Kamil Dudka 46ebf91d5f Related: #1335320 - maintain downstream DIR_COLOR* files as a patch
... against src/dircolors.hin rather than full copies of the file.
There should be no user-visible change introduced by this commit.

This is just to ease the maintenance -- the resulting files cannot
diverge from upstream without any notice.
2016-06-17 17:14:24 +02:00
Kamil Dudka 50e40c5f2b Resolve: #1335320 - sync /etc/DIR_COLORS with latest upstream 2016-06-17 17:13:50 +02:00
Kamil Dudka 28edec2fbc make sure that the license file is installed
... even if coreutils-common is not
2016-06-15 17:32:29 +02:00
Kamil Dudka 8236de4f4b handle info doc in RPM scriptlets of coreutils-common
... which provides it
2016-06-15 17:31:56 +02:00
Jakub Martisko ffecc6b864 (un)expand: fix regression in handling of input files, where only the first file was processed. 2016-06-14 12:47:41 +02:00
Pádraig Brady 45ce637bf4 maint: remove build workarounds for old upstream bugs
* coreutils.spec: coreutils 8.25 fixed a couple of issues,
so remove our workarounds.
2016-04-22 14:14:54 +01:00
Ondřej Vašík b0302efc50 adjust old i18n patch cut support for coreutils-8.25 2016-03-05 15:53:55 +01:00
Ondřej Vašík 96a98c054d Disable new i18n cut support 2016-03-05 15:28:11 +01:00
Ondřej Vašík 06a5ca2716 cut: fix regression in handling fields for lines wider than 64 chars (#1304839) 2016-02-15 12:47:08 +01:00
Lubomir Rintel 593569e76b Fix the unexpand 2016-02-11 17:56:10 +01:00
Ondřej Vašík 5440a2d9db Add new base32 binary to the list of utils 2016-02-02 15:08:35 +01:00
Ondřej Vašík 67395a7505 upload signature file 2016-02-02 10:08:40 +01:00
Ondrej Oprala cd5c4ef355 Downstream MB tarball of the new impl 2016-01-27 12:08:57 +01:00
Ondrej Oprala ab00e1ea64 Adjust the i18n patch for coreutils-8.25 2016-01-22 14:58:03 +01:00
Pádraig Brady eccec8ba45 simplify/generalize 256 color TERM identifiers
Use globbing newly supported in coreutil 8.25
to reduce the number of entries and also support
other entries like the various screen TERMS at:
http://invisible-island.net/ncurses/terminfo.ti.html#tic-screen-256color
2016-01-20 19:12:52 +00:00
Ondřej Vašík 7d9c9afa38 Initial commit for coreutils 8.25 ... still need to fix two failing tests before build (likely i18n stuff) 2016-01-20 16:43:39 +01:00
Ondrej Oprala 11e5aa1d55 cut: be MB for ALL archs 2016-01-15 11:02:13 +01:00
Ondrej Oprala 01067b2813 Use the new i18n implementation for the cut utility 2016-01-15 10:20:05 +01:00
Ondřej Vašík 452aa4a7e3 mv: prevent dataloss when source dir is specified multiple times (#1297464, by P.Brady) 2016-01-13 12:30:46 +01:00
Pádraig Brady c553cab787 give explicit priority to coreutils over coreutils-single
Make the main coreutils package Obsoletes: coreutils-single
so that it has priority in depsolving.
2015-12-14 14:14:33 +00:00
Pádraig Brady 63c57dca19 reduce dependencies for coreutils-single
Don't depend on libcrypto from the multicall binary in
the coreutils-single package, because that trades space for speed.

Don't depend on libgmp from the multicall binary in
the coreutils-single package, because that only benefits
factor and expr.  The large size of gmp is not seen as
an appropriate tradeoff for this functionality.

Note also there is reduced startup overhead for all tools
with these removed due to not linking with the shared libs.
2015-12-04 11:04:24 +01:00
Pádraig Brady 7f1720d9a2 fix inclusion of /usr/bin/kill in coreutils-single
we need to remove /usr/bin/kill.single
2015-12-03 19:40:06 +00:00
Pádraig Brady 1f6f388ba3 avoid warning about twice specified %files 2015-12-03 19:38:51 +00:00
Ondrej Oprala 32b1e5a154 Use the new i18n implementation for expand/unexpand 2015-12-01 11:20:49 +01:00
Ondřej Vašík 8e9b3fd0aa Merge conflicts 2015-11-30 14:33:26 +01:00
Ondřej Vašík 49c29b4069 Resolves:#1286338 - coreutils-single should provide versioned coreutils 2015-11-30 14:32:27 +01:00
Pádraig Brady 5dc61e9dc1 maint: update stale comments
The comments re %post processing were for a non commited change
that created symlinks during %post that clobbered any existing binaries.
Now all files are directly managed by rpm.
2015-11-24 01:44:48 +00:00
Pádraig Brady 5fb9bc4700 split package and provide coreutils-single
Notes about coreutils:

 - Drops from 14.2MB to 5.5MB.
 - Still requires coreutils-common, though being separated
   allows for easier removal if required.
 - Explicitly conflicts with coreutils-single to avoid errant installs

Notes about coreutils-single:

 - Contains a single multicall binary which is 1.2MB
 - Have to force install over any existing coreutils package
    so best used for initial install without existing coreutils package
 - Doesn't require (but suggests) coreutils-common
    so install that manually for docs, translations, and colors etc.

Notes about coreutils-common:

 - 8.7MB
 - Having this split out gives an easy way to remove all
   docs and translations.

Note RemovePathPostfixes: introduced with rpm 4.13
is used to facilitate producing the two sets of conflicting binaries
from the same build, while maintaining appropriate --fileprovide
in each generated rpm.
2015-11-20 08:56:09 +01:00
Pádraig Brady f0951fecac clean stale parts of the spec file 2015-11-20 08:56:09 +01:00
Kamil Dudka c7c3ee3fab Resolves: #1259942 - fix memory leak in sort/I18N
Patches written by Pádraig.

Note that the corresponding i18n/sort-month test was not included
because it breaks unless sort is compiled -Dlint and we do not want
to decrease performance of the resulting RPMs (and valgrind is not
installed in production buildroots anyway).
2015-09-16 20:09:55 +02:00
Ondřej Vašík 2ad92d25c0 fix one still existing occurance of non-full path in colorls.sh 2015-09-12 08:00:58 +02:00
Pádraig Brady cfbfd8c490 avoid check failure on glibc 2.22
glibc 2.22 introduces two extra stat() calls per opendir(),
which induces a false failure in a test counting stat() calls.
2015-09-01 17:32:54 +01:00
Ondřej Vašík 7b7a0554fb use newer version of sort/I18N fix for CVE-2015-4041 and CVE-2015-4042 2015-07-16 10:35:36 +02:00
Ondřej Vašík 3775f446fe new upstream release 8.24 2015-07-05 09:17:02 +02:00
Peter Robinson 1f9b908a99 Disable failing test-update-copyright to fix FTBFS 2015-07-04 11:25:51 +01:00
Dennis Gilmore 42e4196fc0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 03:15:59 +00:00
Jaromir Capik 1b318dd805 Adding STAGE1 bootstrap recipe 2015-06-11 15:15:44 +02:00
Ondřej Vašík 138c00f55f Oops, forgot to git pull, merging 2015-06-04 10:48:30 +02:00
Ondřej Vašík 58ee24949f call utilities in colorls.* scripts with full path (#1222140) 2015-06-04 10:47:11 +02:00
Kamil Dudka e2395bc17f run 'make check' in parallel to speed up the build 2015-05-14 14:04:44 +02:00
Ondrej Oprala 7adccbb026 sort - fix buffer overflow in some case conversions
- patch by Pádraig Brady
2015-05-13 10:53:55 +02:00
Pádraig Brady 0ea2ae6357 sync/adjust LS_COLORS
* coreutils-DIR_COLORS: sync with upstream
(remove old Xiph formats, add m4a audio format).
* coreutils-DIR_COLORS.256color: Likewise.
Also sync with 8 color mode above, by removing
the specific MULTIHARDLINK coloring, and
giving MISSING symlink targets a red background.
Also lighten the DIR and EXEC color a little
(as discussed in bug 1196642)
* coreutils-DIR_COLORS.lightbgcolor: Sync terminal
types with other 2 databases above.
2015-04-20 15:29:29 +01:00
Peter Robinson 75d03ceef1 drop ChangeLog (covered in enough detail in news for averge users), drop ancient docs 2015-03-22 11:52:47 +00:00
Till Maas 0006fec2f3 Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
2015-02-21 22:22:06 +01:00
Ondřej Vašík ac62214984 have the LC_TIME subdirs with lang macro (#1169027) 2014-12-01 11:59:25 +01:00
Ondřej Vašík 2f8deb0379 handle situation with ro /tmp in colorls scripts (#1149761) 2014-10-15 09:43:08 +02:00
Ondřej Vašík cae27396ec fix the sorting in multibyte locales (NUL-terminate sort keys) - patch by Andreas Schwab (#1146185) 2014-10-01 14:49:30 +02:00
Peter Robinson 89879aa209 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-16 01:18:19 +00:00
Ondřej Vašík f7c8684e5e enable smp_flags again (by B.Voelker), fix regression in chroot 2014-08-05 12:29:51 +02:00
Ondřej Vašík 734e24e1b2 disable _smp_mflags for a while- build failure 2014-07-24 16:08:28 +02:00
Ondřej Vašík f5e87bdc05 skip df/skip-duplicates.sh test for now (passing locally, failing in koji) 2014-07-24 15:56:12 +02:00
Ondřej Vašík df0e53f22d Fix merge conflicts 2014-07-22 14:02:48 +02:00
Ondřej Vašík 9c33d82fb4 new upstream release 8.23, synchronize the old differences in ls SELinux options with upstream 2014-07-22 14:01:39 +02:00
Tom Callaway 8246976bb3 fix license handling 2014-07-11 16:44:33 -04:00
Jakub Čajka 2af6179bec Fixed gnulib tests on ppc64(le) 2014-06-24 12:34:04 +02:00
Dennis Gilmore 8d24562387 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 00:55:53 -05:00
Ondřej Vašík 136250677d fix dd sparse test failure on xfs filesystem(#1085727,by P.Brady) 2014-04-12 20:38:09 -07:00
Ondřej Vašík 1240520fa1 drop the util-linux requirements (smaller docker images), drop ancient obsoletes of -libs subpackage 2014-03-05 13:52:27 +01:00
Ondřej Vašík 156e6cc237 Temporarily disable nohup.sh test, strange /dev/tty issue fail 2014-03-02 21:53:37 +01:00
Ondřej Vašík d700b52311 fix the date crash or infloop in TZ= parsing (#1069657, from upstream) 2014-03-02 20:45:06 +01:00
Ondřej Vašík 55f7ecdd4a cp/mv/install: do not crash when getfscreatecon() is returning a NULL context 2014-01-13 16:26:44 +01:00
Ondřej Vašík 72a0b599c4 Fix the i18n cut optimization restriction (we need UTF8 to grant uniqueness of characters and using strchr() approach), unset the unnecessary envvars after colorls scripts(#1051703) 2014-01-13 12:49:45 +01:00
Ondrej Oprala be3c926a11 Limit the cut optimizations to UTF-8 locales only 2014-01-10 16:06:15 +01:00
Ondřej Vašík b3c0c98841 Add changelog comment 2014-01-08 15:27:56 +01:00
Ondřej Vašík 02d5a162e7 Adjust the patch 2014-01-08 14:55:05 +01:00
Bernhard Voelker dc1142233b i18n patch: simplify multi-byte handling in uniq
* src/uniq.c (check_file): Instead of copying the whole code, simply
determine the value of 'new_group' by invoking different_multi in
the multi-byte case.
2014-01-08 14:54:22 +01:00
Bernhard Voelker e241867dd1 i18n patch: avoid test failure for uniq's 145-mb test case
* tests.misc/uniq.pl: For comparing the stderr message with the
expected result, all multibyte-typical ‘...’ must be replaced
by '...'.  Add a ERR_SUBST expression to do that.
2014-01-08 13:59:00 +01:00
Ondřej Vašík ff51f0cc5e Rediff the changes 2014-01-08 13:58:02 +01:00
Bernhard Voelker ef63c71412 maint: avoid compiler warnings introduced by i18n patch
* src/cut.c (convfail,CONVFAIL): Change to bool to avoid a GCC
warning about signed vs. unsigned.  Also avoid "set but not used"
of convfail in cut_characters_or_cut_bytes_no_split.
(cut_fields_mb): Fix indentation.

* src/expand.c: Add include for wctype.h to declare isblank().

* src/fold.c (fold_file): Add "const" attribute to 'filename' parameter
to avoid "const cast away" in call in main().

* src/join.c (xfields_multibyte): Remove unused variable 't'.
(keycmp): Evaluate the return value of wcrtomb().  Furthermore,
when copying 'beg' to 'copy' array elements, remove the unnecessary
cast to unsigned.
(main): When assigning the newline string to 'newtab', cast away the
implicit const.

* src/pr.c: Remove the unneeded include of wctype.h and the define
of iswprint().
(print_stored): Add the unsigned qualifier to 'first' and 'last' to
avoid a signedness warning.

* src/sort.c (getmonth_mb): Cast away the 'const' qualifier of 's'
when assigning to *ea.

* src/uniq.c (different_multi): Evaluate the return result of wcrtomb();
Add the include of assert.h for that.
2014-01-08 13:48:41 +01:00
Bernhard Voelker 963813cd96 i18n patch: fix wrongly merged code in cut.c
* src/cut.c (cut_characters_or_cut_bytes_no_split): Move setting
of print_delimiter into the correct scope.
2014-01-08 13:17:10 +01:00
Ondřej Vašík 40bc313160 Add Fedora bug reference 2014-01-08 13:03:41 +01:00
Ondrej Oprala 45bd042713 Related:#1021403 - Don't use cut mb path if not necessary 2014-01-08 13:01:49 +01:00
Ondrej Oprala 9b303ebcee Fix sorting by non-first field (#1003544) 2014-01-06 11:49:31 +01:00
Ondřej Vašík 31d3fdd040 do not modify SELinux contexts of existing parent directories when copying files (fix by P.Brady, #1045122) 2014-01-03 08:38:06 +01:00
Ondrej Oprala d6d7448c6a reverted an old change and constricted it's condition, turned off two multibyte tests (wrong strcoll return value) 2014-01-02 21:29:29 +01:00
Ondřej Vašík 83c13991c9 Disable wrong selinux handling in cp -a, document SELinux related deprecated downstream options 2014-01-02 11:39:46 +01:00
Ondřej Vašík 7a1c1f8975 skip even the ls aliases in noninteractive mode (suggested by T. Cordes, #988152) 2013-12-23 10:50:56 +01:00
Ondřej Vašík 94edc2ddc8 Fix the sigabrt caused by 8.22-2 2013-12-22 16:39:13 +01:00
Ondřej Vašík f1ce0c9000 reset buffer before copying to prevent some rare cases of invalid output in join and uniq(#1036289) 2013-12-19 11:09:01 +01:00
Ondřej Vašík 9268947eab update dircolors 2013-12-18 23:41:42 +01:00
Ondřej Vašík bbc81312d7 Related:#1043552 - add new lines into deprecations. 2013-12-18 17:13:25 +01:00
Ondřej Vašík 6f9637e525 cut - Fix the variables in multibyte path to work on 64 bit 2013-12-17 22:24:10 +01:00
Ondřej Vašík a504f0affe Add some info about the failing test (shouldn't fail in rawhide and in common cases, it is not a regression (more probably incomplete fix in coreutils-8.22) 2013-12-16 18:55:30 +01:00
Ondřej Vašík 8ff0950897 fix uniq group support in multibyte 2013-12-16 17:48:21 +01:00
Ondřej Vašík 3a87513acc Reduce the unnecessary SELinux stuff(included upstream), enable openssl (libcrypto) support for HASHsum utilities 2013-12-16 09:42:12 +01:00
Ondřej Vašík a1f9baa6b8 Fix the i18n path in cut.c 2013-12-15 09:05:15 +01:00
Ondřej Vašík bb33bc40ad New upstream version 8.22, rediff, adjusting i18n patch to work after upstream optimizations, will investigate cut.pl before build (failing df symlink check is not a regression) 2013-12-14 18:41:07 +01:00
Ondřej Vašík 595c0722d7 skip output-is-input-mb.p test - failing on armv7l (reported by B.Voelker) 2013-12-12 13:34:32 +01:00
Peter Robinson a6b6d0c94b Add upstream patch to fix test failures on aarch64 2013-12-09 11:26:15 +00:00
Ondřej Vašík b9de06b267 Remove no longer needed files in coreutils-i18n testsuite 2013-12-02 10:53:06 +01:00
Ondřej Vašík cc8ce57be2 Enable cut and sort-merge perl tests for multibyte as well 2013-11-28 01:35:10 +01:00
Ondřej Vašík 3e3be79dfd turn on the multibyte path in the testsuite to cover i18n regressions 2013-11-28 01:24:16 +01:00
Ondřej Vašík 6f1fcbc4c6 Fix possible noclobber issue in colorls.sh as well 2013-11-06 16:18:23 +01:00
Ondřej Vašík afe488cc19 fix possible colorls.csh script errors for tcsh with noclobber set and entered include file (#1027279) 2013-11-06 14:38:56 +01:00
Ondřej Vašík bf6c8ea752 Fix minor issue in colorls.csh script with noclobber on (reported by Ty! Boyack) 2013-11-06 14:24:54 +01:00
Ondřej Vašík 9b2b941682 cp: correct error message for invalid arguments of '--no-preserve' (#1018206) 2013-10-14 09:58:44 +02:00
Ondřej Vašík 32c6651930 pr -e, with a mix of backspaces and TABs, could corrupt the heap in multibyte locales (analyzed by J.Koncicky) 2013-08-15 13:26:11 +02:00
Ondrej Oprala 0dcc5a0d5e sort: fix multibyte incompabilities (#821264) 2013-08-14 19:01:16 +02:00
Dennis Gilmore bce5991c5f - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-03 00:52:16 -05:00
Ondrej Oprala e8fe3e1cf6 change the TMP variable name in colorls.csh to _tmp (#981373) 2013-07-17 14:30:46 +02:00
Ondřej Vašík 1ad7b8db0f revert the last change 2013-05-17 13:16:16 +02:00
Ondřej Vašík 3da08655cd argh, fridays 2013-05-17 10:09:13 +02:00
Ondřej Vašík b87f1b2dfc fix typo 2013-05-17 09:50:40 +02:00
Ondřej Vašík ed5396d91e require glibc-devel to prevent broken links in coreutils info manual (#959697) 2013-05-17 09:21:51 +02:00
Ville Skyttä f0b6f85aff colorls profile script tmp file handling improvements 2013-05-08 17:25:06 +02:00
Ondrej Oprala 7bbf86f2fe Fix tmp file location in colorls scripts (#948008) 2013-04-05 13:04:52 +02:00
Ondřej Vašík c7a1b74c04 DIR_COLORS.xterm should have higher priority than DIR_COLORS.256color (#921651) 2013-03-14 16:50:09 +01:00
Ondrej Oprala 1ad51b6276 add support for INCLUDE in colorls scripts (#818069) 2013-03-11 16:00:59 +01:00
Ondřej Vašík 76ade64f4b fix factor on AArch64 (M.Salter, #917735) 2013-03-04 18:23:34 +01:00
Ondřej Vašík c3f2f52e74 spec file entry for new archive types colorization 2013-03-01 12:14:16 +01:00
Ondřej Vašík 9c597e4334 Colorize several new archive types (#868510) 2013-03-01 12:11:29 +01:00
Ondřej Vašík bad02099bd install: do proper cleanup when strip fails (O.Oprala, B.Voekler, #632444) 2013-02-23 12:03:18 +01:00
Ondřej Vašík bdd83b2e69 merge changes 2013-02-20 16:34:53 +01:00
Ondřej Vašík 1801957473 fix multibyte issue in unexpand(by R.Kollar, #821262) 2013-02-20 16:33:47 +01:00
Ondrej Oprala 1812652505 fix sort-mb-tests.sh test (B.Voelker) 2013-02-18 18:31:54 +01:00
Mark Wielaard 970e32111e fix coreutils-i18n.patch to terminate mbdelim string (#911929)
Signed-off-by: Mark Wielaard <mjw@redhat.com>
2013-02-18 10:32:30 +01:00
Ondřej Vašík c7f6c7b9f6 remove unnecessary powerpc factor patch 2013-02-18 08:45:11 +01:00
Ondřej Vašík 4c4be9e1c9 new upstream release 8.21, update patches 2013-02-15 17:50:47 +01:00
Ondrej Oprala 9ae2bc3ca1 add missing sort-mb-tests.sh to local.mk 2013-02-08 14:55:22 +01:00
Ondřej Vašík 3be440dcae oops, wrong patch ;) 2013-02-05 14:41:51 +01:00
Ondřej Vašík 04d73f0952 add support for DTR/DSR control flow in stty(#445213) 2013-02-05 14:31:22 +01:00
Ondřej Vašík c9e9ece7a3 move inotify-hash-abuse test to root only to disable it in koji builds (fails too often in rawhide) 2013-01-23 10:40:24 +01:00
Ondřej Vašík 3b194abd70 Release++ 2013-01-23 10:05:17 +01:00
Ondřej Vašík 5089cf4365 Fix multiple segmantation faults in i18n patch (by SUSE) - (#869442, #902917) 2013-01-23 10:04:52 +01:00
Ondřej Vašík 85ea3f49e4 Remove fuzzed NEWS entry, fix bogus dates in changelog 2012-12-20 10:20:40 +01:00
Ondřej Vašík 11aeb4e734 seq: fix newline output when -s specified (upstream) 2012-12-20 09:47:38 +01:00
Ondřej Vašík c767e7c27a fix showing duplicates in df (#709351, O.Oprala, B.Voelker) 2012-12-11 08:34:16 +01:00
Ondřej Vašík d9f99cf09b fix factor on 32bit powerpc (upstream, #884715) 2012-12-06 17:11:49 +01:00
Ondřej Vašík 7e4f1a381e disable the temporary O_SYNC fix (glibc is fixed - #872366) 2012-11-05 09:04:38 +01:00
Ondřej Vašík ca6f66d311 temporary hack to make coreutils build 2012-11-02 08:34:04 +01:00
Ondřej Vašík 72f2f9f3eb removed unhelpful hack 2012-11-01 21:39:51 +01:00
Ondřej Vašík c718b5ec2a fix build failure for undeclared O_SYNC in rawhide, remove su and pam relicts 2012-11-01 20:52:47 +01:00
Ondřej Vašík edc2e6afec oops 2012-11-01 15:43:12 +01:00
Ondřej Vašík 5580b508e3 Temporarily require util-linux >= 2.22.1-3 (to prevent missing su/runuser on system), disable getlogin gnulib tests (occasinally troubles in mock environment) 2012-11-01 15:10:38 +01:00
Ondřej Vašík 8b177c8f26 Update patches for new-upstream release 8.20, please DO NOT BUILD - no su 2012-10-27 21:14:41 +02:00
Ondřej Vašík fa6f383f16 fix multibyte issues in cut and expand (M.Briza, #821260) 2012-08-20 13:57:53 +02:00
Ondřej Vašík 7ee630cc50 New upstream release 8.19, remove everything related to su/runuser 2012-08-20 12:07:28 +02:00
Ondřej Vašík 89d1aa92a0 New upstream release changes, su/runuser ones just commented out atm, don't build 2012-08-13 00:14:40 +02:00
Dennis Gilmore 0c6cba0357 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild 2012-07-18 14:41:27 -05:00
Pádraig Brady 28e1367cfe ls: remove the default brown coloring of documents
We leave the list commented out to ease configuration
for those who want this.

There were two main reasons for removing this default coloring:

1. There are many text file extensions and text files without
extensions. You couldn't hope to cover them all, and only
covering a subset introduces inconsistency.

2. Greatly increasing the amount of coloring for these very common
text files, reduces the "highlighting" effect of coloring in general.
2012-07-18 18:02:16 +01:00
Ondřej Vašík 5427c82f63 fix typo in changelog 2012-07-13 13:06:03 +02:00
Ondřej Vašík 1a367d9c9a add virtual provides for bundled(gnulib) copylib (#821748) 2012-05-15 16:26:25 +02:00
Ondřej Vašík bfd5cf1204 ls: upstream fix - correctly show symlinks in / 2012-05-11 21:19:04 +02:00
Ondřej Vašík 315471e18a new upstream release 8.17, defuzz patches 2012-05-11 09:58:08 +02:00
Ondřej Vašík 618e468330 add .htm and .shtml to colorized DIR_COLORS document type (#817218) 2012-05-04 12:33:37 +02:00
Ondřej Vašík 9a7f541e9b This seems to be better fix ;) for noninteractive mode 2012-04-17 15:02:56 +02:00
Ondřej Vašík 6972fb24fa fix the tcsh colorls.csh behaviour in non-interactive mode (#804604) 2012-04-16 07:46:17 +02:00
Ondřej Vašík bb1a465686 new upstream release 8.16, defuzz patches, remove already applied patches 2012-03-26 18:23:32 +02:00
Ondřej Vašík 1618770344 fix regression in du -x with nondir argument (thans D.Stavrovski and J.Meyering) 2012-03-08 14:10:11 +01:00
Ondřej Vašík 58683bf9af fix sort segfault with multibyte locales (by P.Brady) 2012-03-07 21:29:40 +01:00
Harald Hoyer ec52e39a79 turn on testsuite again 2012-02-10 10:19:28 +01:00
Harald Hoyer 0af510e40c add filesystem guard 2012-01-25 21:10:54 +01:00
Harald Hoyer 09220fef36 add missing provides for the /usr-move 2012-01-25 15:48:48 +01:00
Harald Hoyer 56e501f901 coreutils.spec: added realpath 2012-01-25 14:50:28 +01:00
Harald Hoyer 26e34c1ce3 install everything in /usr
This patch is needed for the /usr-move feature
https://fedoraproject.org/wiki/Features/UsrMove

This package requires now 'filesystem' >= 3, which is only installable
on a system which has /bin, /sbin, /lib, /lib64 as symlinks to /usr and
not regular directories. The 'filesystem' package acts as a guard, to
prevent *this* package to be installed on old unconverted systems.

New installations will have the 'filesystem' >=3 layout right away, old
installations need to be converted with anaconda or dracut first; only
after that, the 'filesystem' package, and also *this* package can be
installed.

Packages *should* not install files in /bin, /sbin, /lib, /lib64, but
only in the corresponding directories in /usr. Packages *must* not
install conflicting files with the same names in the corresponding
directories in / and /usr. Especially compatibilty symlinks must not be
installed.

Feel free to modify any of the changes to the spec file, but keep the
above in mind.
2012-01-25 14:28:25 +01:00
Kamil Dudka ad3d42ec4f fix stack smashing, buffer overflow and invalid output of pr (#772172) 2012-01-16 15:48:04 +01:00
Ondřej Vašík 33b6b75afa fix date in changelog 2012-01-07 23:11:59 +01:00
Ondřej Vašík 29106aca87 disable gnulib test stdalign - failing in koji 2012-01-07 21:00:53 +01:00
Ondřej Vašík 7f6231bff1 new upstream release 8.15, patches updated 2012-01-07 20:47:10 +01:00
Ondřej Vašík 377a7b8082 do not use shebang in sourced colorls.csh profile.d script 2012-01-05 21:51:20 +01:00
Ondřej Vašík d910089c7d Damned year changes :) 2012-01-05 15:38:45 +01:00
Ondřej Vašík 04f29fa71b resolve conflict 2012-01-05 15:35:32 +01:00
Ondřej Vašík 586a3174f1 fix pr -c and pr -v segfault with multibyte locales 2012-01-05 15:34:33 +01:00
Rex Dieter 3c275d96b3 rebuild (gmp), last time, I promise 2011-10-31 11:03:56 -05:00
Ondřej Vašík f531c8b978 require at least pam 1.1.3-7 (#748215) 2011-10-24 16:00:37 +02:00
Ondřej Vašík f6278cea7c rebuild for gmp 2011-10-20 14:01:28 +02:00
Ondřej Vašík 240f408e81 oops 2011-10-12 16:48:12 +02:00
Ondřej Vašík cdb1602dfe workaround the build failure in koji for now 2011-10-12 16:47:21 +02:00
Ondřej Vašík 59d9061232 new upstream release 8.14 2011-10-12 16:13:12 +02:00
Marcela Mašláňová c9499bdd25 Bump release and try build with new gmp again. 2011-10-10 11:04:41 +02:00
Marcela Mašláňová a8f8a59fc2 rebuild with new gmp 2011-09-26 14:36:57 +02:00
Ondřej Vašík cb9359bd04 Obsolete coreutils-libs (#737287) 2011-09-12 10:42:33 +02:00
Ondřej Vašík fbca36cbd7 fix the SUSE fix for cut output-delimiter 2011-09-09 14:53:00 +02:00
Ondřej Vašík b5f9200448 new upstream release 8.13, drop libs subpackage, temporarily disable multibyte checks in misc/cut test 2011-09-09 13:16:47 +02:00
Ondrej Vasik a68f226c74 incorporate some i18n patch fixes from SUSE: fix output-delimiter option in cut, prevent infinite loop in sort when ignoring chars, prevent using unitialized variable in cut 2011-09-05 08:18:24 +02:00
Ondřej Vašík 6ff9fce161 su: fix shell suspend in tcsh (#597928) 2011-08-23 14:54:04 +02:00
Ondřej Vašík 9938e5be66 variable u should be static in uname processor type patch 2011-08-18 17:58:14 +02:00
Ondřej Vašík 4afb5b057d Fix cp -Z functionality if destination exists(#715557), deprecate it as non-upstream option (it is easy to achieve this functionality other way, cp should not handle changes) 2011-08-11 16:38:37 +02:00
Ondřej Vašík c9c477adae use acl_extended_file_nofollow() if available (#692823) 2011-07-29 15:12:18 +02:00
Ondřej Vašík 65b57c538d support ecryptfs mount of Private (postlogin into su.pamd) - (#722323) 2011-07-15 15:58:40 +02:00
Ondřej Vašík 2947a97744 new upstream release 8.12, drop accepted patch 2011-04-27 11:03:02 +02:00
Ondřej Vašík d79f57cc32 fix issue with df --direct(extra new line) 2011-04-14 16:51:54 +02:00
Ondřej Vašík 575258689b Forgot to update sources 2011-04-14 12:31:15 +02:00
Ondřej Vašík 50a3bada88 new upstream release 8.11, defuzz patches 2011-04-14 12:30:24 +02:00
Ondřej Vašík fdeedf2670 add note about mkdir mode behaviour into info documentation (#610559) 2011-03-22 09:54:46 +01:00
Ondřej Vašík 7a041cc0d8 fix possible uninitalized variables usage caused by i18n patch(#683799) 2011-03-14 09:43:52 +01:00
Ondrej Vasik 9207a1510e make coreutils build even without patches (with nopam, norunuser and noselinux variables) 2011-03-04 21:18:53 +01:00
Ondřej Vašík e734c6455a colorize documents by DIR_COLORS files(brown like mc) 2011-02-17 16:16:49 +01:00
Ondřej Vašík 78e0be209f add several new TERMs to DIR_COLORS files(#678147) 2011-02-17 10:20:33 +01:00
Dennis Gilmore f467b43c7c - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild 2011-02-08 05:28:48 -06:00
Ondrej Vasik 95b1c6985e fix typo in commit 2011-02-04 20:35:33 +01:00
Ondrej Vasik 16cfab74f0 new upstream release coreutils-8.10 2011-02-04 20:34:45 +01:00
Ondrej Vasik b3f814c1b6 Merge branch 'master' of ssh://pkgs.fedoraproject.org/coreutils 2011-02-04 20:10:36 +01:00
Ondrej Vasik 7165b2fd59 update sources to 8.10 2011-02-04 20:09:36 +01:00
Dennis Gilmore 0c817be19f drop no longer needed mkstemp patch for sparc 2011-01-08 23:42:18 -06:00
Ondřej Vašík 58ba6d5250 new upstream release coreutils-8.9 2011-01-04 17:59:58 +01:00
Ondrej Vasik 1c281144c3 The suffix length was dependent on the number of bytes or lines per file (#666293) 2010-12-31 08:40:52 +01:00
Ondrej Vasik 1dfeb25767 Merge branch 'master' of ssh://pkgs.fedoraproject.org/coreutils 2010-12-23 14:16:03 +01:00
Ondrej Vasik 826eac74c1 new upstream release coreutils-8.8 (#665164), fix parallel sorting issue (#655096) 2010-12-23 14:14:21 +01:00
Ondrej Vasik 163de8bee0 new upstream release coreutils-8.8 (#665164), fix parallel sorting issue (#655096) 2010-12-23 14:13:28 +01:00
Ondrej Vasik 35cd801647 don't prompt for password with runuser(#654367) 2010-11-18 17:28:56 +01:00
Ondřej Vašík 9170895a87 New upstream release 8.7, consolidate PAM support with SUSE (#622700) 2010-11-15 13:16:04 +01:00
Kamil Dudka c07997606c prevent sort from assertion failure (#647938)
... in case LC_CTYPE does not match LC_TIME
2010-11-03 12:16:08 +01:00
Kamil Dudka bd229edf8d improve i18n support in sort
test misc/sort-debug-keys is now back
2010-10-26 18:58:51 +02:00
Ondřej Vašík eed90449e8 remove unused patches 2010-10-20 14:04:49 +02:00
Ondřej Vašík 98ff9fee21 new upstream release 8.6 2010-10-20 14:03:53 +02:00
Ondřej Vašík 801235770d defuzz the patch 2010-10-01 09:57:26 +02:00
Ondřej Vašík 0a5116219c various fixes in tr case conversion 2010-09-30 17:43:34 +02:00
Jesse Keating eacfb88d2c - Rebuilt for gcc bug 634757 2010-09-29 14:03:39 -07:00
Ondřej Vašík a921d1b238 change assertion failure for invalid multibyte input in sort to less confusing error message(#591352) 2010-09-20 13:19:42 +02:00
Ondřej Vašík c28546fac4 add RELRO protection to su as well (#630017) 2010-09-08 10:25:18 +02:00
Ondřej Vašík f050d2d59c compile su with pie again (#630017) 2010-09-06 09:31:40 +02:00
Ondřej Vašík 28c58ff02c No need for NEWS modification, it only causes troubles in our case 2010-08-31 10:52:40 +02:00
Ondřej Vašík 2a672b5b69 fix double free abort in tac (#628213) 2010-08-30 15:29:35 +02:00
Fedora Release Engineering 24132a00a8 dist-git conversion 2010-07-28 12:11:43 +00:00
Ondrej Vasik 437af5569d Add .ear, .war, .sar , for Java jar-like archives to dircolors (#616497) 2010-07-22 14:23:44 +00:00
Dan Horák 93d4e3a79f - rebuilt with the updated configuration patch
- drop the old -O1 exception for s390(x)
- updated the getgrouplist patch (Kamil Dudka)
2010-07-02 12:57:45 +00:00
Kamil Dudka 4bdb7ac780 coreutils-getgrouplist.patch: fix regression introduced in r1.7 2010-07-02 11:42:29 +00:00
Ondrej Vasik 182b0889a6 fix build on s390 with old kernels - disable gnulib's test-utimens 2010-05-25 07:52:58 +00:00
Kamil Dudka 2fb3ab2d41 restore a part of coreutils-getgrouplist.patch which has been lost during
rediff
2010-05-14 12:36:48 +00:00
Ondrej Vasik 5408b3bda3 coffee here...fix oops^3 2010-04-27 10:58:42 +00:00
Ondrej Vasik c9dda99c50 fix oops^2 - coffee needed 2010-04-27 10:47:17 +00:00
Ondrej Vasik c61df8518b fix oops 2010-04-27 10:46:10 +00:00
Ondrej Vasik 09425ca8ae fix typo 2010-04-27 10:45:41 +00:00
Ondrej Vasik 5421281a0d doublequote LS_COLORS in colorls.*sh scripts to speedup shell
start(#586029), add patch for mkstemp on sparc64(Dennis Gilmore),
    update /etc/DIR_COLORS* files
2010-04-27 10:30:50 +00:00
Ondrej Vasik 12996d09a1 new upstream release 8.5 2010-04-26 13:15:37 +00:00
Ondrej Vasik a5bbdc735f move readlink from /usr/bin to bin, keep symlink in /usr/bin(#580682) 2010-04-15 12:08:16 +00:00
Kamil Dudka d059274f53 - a new option df --direct 2010-03-29 17:20:34 +00:00
Ondrej Vasik 80779cc2b9 Spring cleanup 2010-03-22 09:02:28 +00:00
Ondrej Vasik 515305b108 run tput colors in colorls profile.d scripts only in the interactive
mode(#450424)
2010-03-20 07:44:52 +00:00
Ondrej Vasik edc268cf05 fix exit status of terminated child processes in su with pam(#559098) 2010-02-12 09:28:31 +00:00
Ondrej Vasik 5e50360426 ooops 2010-02-05 16:23:22 +00:00
Ondrej Vasik 20666c9d9c do not depend on selinux patch application in _require_selinux
tests(#556350)
2010-02-05 16:21:42 +00:00
Ondrej Vasik 6a2111b547 do not fail tests if there are no loopdevices left(#558898) 2010-01-29 11:33:06 +00:00
Ondrej Vasik f27ce018bd who doesn't determine user's message status correctly(#454261) 2010-01-26 11:41:52 +00:00
Ondrej Vasik 5e9aa7bfb4 oops 2010-01-14 09:57:20 +00:00
Ondrej Vasik c6e08c0277 disable gnulib linkat test, failing in koji 2010-01-14 09:56:42 +00:00
Ondrej Vasik d3f2dba129 new upstream release 8.4 2010-01-14 09:36:45 +00:00
Ondrej Vasik 3376fb410c disable tail-2/inotify-hash-abuse test failing in koji, upstream notified 2010-01-08 14:07:53 +00:00
Ondrej Vasik dc24bf67e6 new upstream release coreutils-8.3 2010-01-08 08:10:16 +00:00
Ondrej Vasik 083eee0f58 fix typo 2010-01-06 11:13:16 +00:00
Ondrej Vasik 9956da5309 require gpm-devel/gpm for large numbers support(#552846) 2010-01-06 11:10:34 +00:00
Ondrej Vasik 437c9e4ea2 fix misc/selinux root-only test(#550494) 2009-12-27 11:40:37 +00:00
Ondrej Vasik 99cafffe10 bring back uname -p/-i functionality except of the athlon hack(#548834),
comment patches
2009-12-19 08:42:03 +00:00
Ondrej Vasik 75e385fc3e use grep instead of deprecated egrep in colorls.sh script, remove
unnecessary versioned requires/conflicts, remove non-upstream hack for
    uname -p
2009-12-16 21:00:11 +00:00
Ondrej Vasik 0ab9d455d1 fix DIR_COLORS.256color file 2009-12-16 12:17:58 +00:00
Ondrej Vasik 422af9d036 temporarily do not run dup_cloexec(), dependent gnulib tests failing in
koji
2009-12-11 17:07:21 +00:00
Ondrej Vasik e6c89339d8 new upstream release 8.2, remove applied patches 2009-12-11 16:38:48 +00:00
Ondrej Vasik c77f9b75dc new upstream release 8.1, rediffed patches, fix builds under koji 2009-11-27 13:24:09 +00:00
Bill Nottingham 4bef77de29 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-25 22:47:36 +00:00
Ondrej Vasik c8937976c4 return .xz source extension ;) 2009-11-18 14:51:34 +00:00
Ondrej Vasik 66a4fe9b1a remove accidently added .orig files from patches :( 2009-11-18 14:48:00 +00:00
Ondrej Vasik af1fb4eb12 update /etc/DIR_COLORS* files 2009-10-07 08:42:15 +00:00
Ondrej Vasik 4f2a56081b oops... use .xz tarball instead of my local .gz 2009-10-07 08:16:26 +00:00
Ondrej Vasik f8d3fd6d8e defuzz patches 2009-10-07 08:11:44 +00:00
Ondrej Vasik 207519174e New upstream release 8.0 (beta), defuzz patches, remove applied patches 2009-10-06 13:43:25 +00:00
Ondrej Vasik fa0337b2a5 chcon no longer aborts on a selinux disabled system(#527142) 2009-10-05 07:06:38 +00:00
Ondrej Vasik e87ead322a apply upstream patch #3 later to prevent fuzz 2009-10-02 15:06:06 +00:00
Ondrej Vasik ae3959bffe ls -LR exits with status 2, not 0, when it encounters a cycle(#525402), ls:
print ?, not 0 as inode of dereferenced dangling symlink(#525400), call
    the install-info on .gz info files
2009-10-02 14:41:18 +00:00
Ondrej Vasik 066fd3a5cb improve and correct runuser documentation (#524805) 2009-09-22 13:24:02 +00:00
Ondrej Vasik 2277f1a25d fix the patchname 2009-09-21 06:08:13 +00:00
Ondrej Vasik 4c2f2aae39 add dircolors color for GNU lzip (#516897) 2009-09-21 06:04:14 +00:00
Ondrej Vasik f0deff4c0d fixed typo in DIR_COLORS.256color causing no color for multihardlink
(thanks P.Brady)
2009-09-18 07:19:28 +00:00
Ondrej Vasik 6a4350f7d9 fix copying of extended attributes for read only source files 2009-09-16 06:03:40 +00:00
Ondrej Vasik 2505178971 new upstream bugfix release 7.6, removed applied patches,defuzzed the rest 2009-09-12 09:28:49 +00:00
Ondrej Vasik 266a669f62 fix double free error in fold for singlebyte locales (caused by multibyte
patch)
2009-09-10 10:36:58 +00:00
Ondrej Vasik 61fe33cb1c fix sort -h for multibyte locales (reported via
http://bugs.archlinux.org/task/16022)
2009-09-08 14:34:31 +00:00
Ondrej Vasik 2c2fd97500 fixed regression where df -l <device> as regular user cause Permission
denied (#520630, introduced by fix for rhbz #497830)
2009-09-03 15:19:58 +00:00
Ondrej Vasik 79c2ad7ebe Need coffee ... 2009-09-01 10:30:03 +00:00
Ondrej Vasik 23a4715f2a fix the fuzz 2009-09-01 10:19:01 +00:00
Ondrej Vasik 063897c2f3 ls -i: print consistent inode numbers also for mount points (#453709) 2009-09-01 10:05:36 +00:00
Ondrej Vasik f494e3c6ec fix typo 2009-08-24 09:45:05 +00:00
Ondrej Vasik 5fd0b055f5 Better fix than workaround the koji insufficient utimensat support issue to
prevent failures in other packages
2009-08-24 08:38:17 +00:00
Ondrej Vasik 1bc86eb295 libstdbuf.so in separate coreutils-libs subpackage, update /etc/DIRCOLORS*,
skip two new tests on system with insufficient utimensat support(e.g.
    koji)
2009-08-21 11:49:02 +00:00
Ondrej Vasik e1052e34a1 New upstream release 7.5, remove already applied patches,defuzz few others 2009-08-21 07:00:59 +00:00
Ondrej Vasik 378338cdef package is xz, not xz-utils 2009-08-06 13:31:14 +00:00
Ondrej Vasik 7915d210f2 do process install-info only with info files present(#515970), BuildRequire
for xz-utils, use xz tarball
2009-08-06 13:24:22 +00:00
Kamil Dudka ff18ef69d3 - ls -1U with two or more arguments (or with -R or -s) works properly again
- install runs faster again with SELinux enabled (#479502)
2009-08-05 08:45:05 +00:00
Jesse Keating 3dc23f3518 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild 2009-07-24 19:30:04 +00:00
Ondrej Vasik 777ce54cea do not ignore sort's version sort for multibyte locales(#509688) 2009-07-06 21:40:43 +00:00
Ondrej Vasik 7f2b3258d5 temporarily workaround probable kernel issue with TCSADRAIN(#504798) 2009-06-11 08:26:29 +00:00
Ondrej Vasik 67e264c142 new upstream release 7.4, removed applied patches 2009-05-25 12:11:34 +00:00
Ondrej Vasik 17e0cac955 fix segfaults in join (i18n patch) when using multibyte locales(#497368) 2009-04-23 17:01:01 +00:00
Ondrej Vasik 64938e3ecc suppress mv diagnostics only for ENOTSUP and ENODATA, do not run
test-memchr gnulib test (koji failure)
2009-04-17 13:27:36 +00:00
Ondrej Vasik 187c0782af make mv xattr support failures silent (as is done for cp -a) - #496142 2009-04-17 09:54:04 +00:00
51 changed files with 7251 additions and 6306 deletions

View File

@ -1 +0,0 @@
coreutils-7.2.tar.gz

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/coreutils-[0-9.]*.tar.xz
/coreutils-[0-9.]*.tar.xz.sig

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: coreutils
# $Id$
NAME := coreutils
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attempt a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

7
STAGE1-coreutils Normal file
View File

@ -0,0 +1,7 @@
srpm coreutils
mcd $BUILDDIR/$1
(cd $SRC/${1}-*/ ; autoreconf -vif)
$SRC/${1}-*/configure $TCONFIGARGS --disable-pam
notparallel
make $J man1_MANS= V=1
make $J man1_MANS= install DESTDIR=${ROOTFS}

View File

@ -1,18 +0,0 @@
--- coreutils-5.92/src/date.c.langinfo 2005-09-16 09:06:57.000000000 +0100
+++ coreutils-5.92/src/date.c 2005-10-24 18:09:16.000000000 +0100
@@ -451,14 +451,7 @@
format = DATE_FMT_LANGINFO ();
if (! *format)
{
- /* Do not wrap the following literal format string with _(...).
- For example, suppose LC_ALL is unset, LC_TIME="POSIX",
- and LANG="ko_KR". In that case, POSIX says that LC_TIME
- determines the format and contents of date and time strings
- written by date, which means "date" must generate output
- using the POSIX locale; but adding _() would cause "date"
- to use a Korean translation of the format. */
- format = "%a %b %e %H:%M:%S %Z %Y";
+ format = dcgettext(NULL, N_("%a %b %e %H:%M:%S %Z %Y"), LC_TIME);
}
}

View File

@ -1,72 +0,0 @@
--- coreutils-5.97/src/uname.c.sysinfo 2005-09-15 20:57:04.000000000 +0100
+++ coreutils-5.97/src/uname.c 2006-08-24 17:15:56.000000000 +0100
@@ -263,7 +263,7 @@
int
main (int argc, char **argv)
{
- static char const unknown[] = "unknown";
+ static char unknown[] = "unknown";
/* Mask indicating which elements to print. */
unsigned int toprint = 0;
@@ -306,13 +306,35 @@
if (toprint & PRINT_PROCESSOR)
{
- char const *element = unknown;
+ char *element = unknown;
#if HAVE_SYSINFO && defined SI_ARCHITECTURE
{
static char processor[257];
if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
element = processor;
}
+#else
+ {
+ struct utsname u;
+ uname(&u);
+ element = u.machine;
+#ifdef linux
+ if(!strcmp(element, "i686")) { /* Check for Athlon */
+ char cinfo[1024];
+ FILE *f=fopen("/proc/cpuinfo", "r");
+ if(f) {
+ while(fgets(cinfo, 1024, f)) {
+ if(!strncmp(cinfo, "vendor_id", 9)) {
+ if(strstr(cinfo, "AuthenticAMD"))
+ element="athlon";
+ break;
+ }
+ }
+ fclose(f);
+ }
+ }
+#endif
+ }
#endif
#ifdef UNAME_PROCESSOR
if (element == unknown)
@@ -348,7 +370,7 @@
if (toprint & PRINT_HARDWARE_PLATFORM)
{
- char const *element = unknown;
+ char *element = unknown;
#if HAVE_SYSINFO && defined SI_PLATFORM
{
static char hardware_platform[257];
@@ -356,6 +378,14 @@
hardware_platform, sizeof hardware_platform))
element = hardware_platform;
}
+#else
+ {
+ struct utsname u;
+ uname(&u);
+ element = u.machine;
+ if(strlen(element)==4 && element[0]=='i' && element[2]=='8' && element[3]=='6')
+ element[1]='3';
+ }
#endif
#ifdef UNAME_HARDWARE_PLATFORM
if (element == unknown)

View File

@ -1,368 +0,0 @@
diff -urNp coreutils-7.0.orig/AUTHORS coreutils-7.0/AUTHORS
--- coreutils-7.0.orig/AUTHORS 2008-08-24 22:58:15.000000000 +0200
+++ coreutils-7.0/AUTHORS 2009-01-28 18:11:00.316247411 +0100
@@ -63,6 +63,7 @@ pwd: Jim Meyering
readlink: Dmitry V. Levin
rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
rmdir: David MacKenzie
+runuser: David MacKenzie, Dan Walsh
runcon: Russell Coker
seq: Ulrich Drepper
sha1sum: Ulrich Drepper, Scott Miller, David Madore
diff -urNp coreutils-7.0.orig/man/Makefile.am coreutils-7.0/man/Makefile.am
--- coreutils-7.0.orig/man/Makefile.am 2008-09-27 19:28:54.000000000 +0200
+++ coreutils-7.0/man/Makefile.am 2009-01-28 18:11:00.317247417 +0100
@@ -93,6 +93,7 @@ readlink.1: $(common_dep) $(srcdir)/read
rm.1: $(common_dep) $(srcdir)/rm.x ../src/rm.c
rmdir.1: $(common_dep) $(srcdir)/rmdir.x ../src/rmdir.c
runcon.1: $(common_dep) $(srcdir)/runcon.x ../src/runcon.c
+runuser.1: $(common_dep) $(srcdir)/runuser.x ../src/su.c
seq.1: $(common_dep) $(srcdir)/seq.x ../src/seq.c
sha1sum.1: $(common_dep) $(srcdir)/sha1sum.x ../src/md5sum.c
sha224sum.1: $(common_dep) $(srcdir)/sha224sum.x ../src/md5sum.c
diff -urNp coreutils-7.0.orig/man/runuser.x coreutils-7.0/man/runuser.x
--- coreutils-7.0.orig/man/runuser.x 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-7.0/man/runuser.x 2009-01-28 18:11:00.321247443 +0100
@@ -0,0 +1,12 @@
+[NAME]
+runuser \- run a shell with substitute user and group IDs
+[DESCRIPTION]
+.\" Add any additional description here
+[SEE ALSO]
+.TP
+More detailed Texinfo documentation could be found by command
+.TP
+\t\fBinfo su invocation\fR\t
+.TP
+since the command \fBrunuser\fR is trimmed down version of command \fBrunuser\fR.
+.br
diff -urNp coreutils-7.0.orig/README coreutils-7.0/README
--- coreutils-7.0.orig/README 2008-08-24 22:30:10.000000000 +0200
+++ coreutils-7.0/README 2009-01-28 18:11:00.318247424 +0100
@@ -12,10 +12,10 @@ The programs that can be built with this
factor false fmt fold groups head hostid hostname id install join kill
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
- runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf
- sleep sort split stat stty su sum sync tac tail tee test timeout touch tr
- true truncate tsort tty uname unexpand uniq unlink uptime users vdir wc who
- whoami yes
+ runcon runuser seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
+ shuf sleep sort split stat stty su sum sync tac tail tee test timeout touch
+ tr true truncate tsort tty uname unexpand uniq unlink uptime users vdir wc
+ who whoami yes
See the file NEWS for a list of major changes in the current release.
diff -urNp coreutils-7.0.orig/src/Makefile.am coreutils-7.0/src/Makefile.am
--- coreutils-7.0.orig/src/Makefile.am 2009-01-28 18:10:10.756926000 +0100
+++ coreutils-7.0/src/Makefile.am 2009-01-28 18:11:59.658631933 +0100
@@ -38,7 +38,7 @@ EXTRA_PROGRAMS = \
shuf sort split sum tac tail tr tsort unexpand uniq wc \
basename date dirname echo env expr factor false \
id kill logname pathchk printenv printf pwd \
- runcon seq sleep tee \
+ runcon runuser seq sleep tee \
test timeout true truncate tty whoami yes \
base64
@@ -154,6 +154,10 @@ cp_LDADD += $(LIB_ACL) $(LIB_XATTR)
mv_LDADD += $(LIB_ACL) $(LIB_XATTR)
ginstall_LDADD += $(LIB_ACL) $(LIB_XATTR)
+runuser_SOURCES = su.c
+runuser_CFLAGS = -DRUNUSER -DAUTHORS="\"David MacKenzie, Dan Walsh\""
+runuser_LDADD = $(LDADD) $(LIB_CRYPT) @LIB_PAM@
+
stat_LDADD = $(LDADD) $(LIB_SELINUX)
# Append $(LIBICONV) to each program that uses proper_name_utf8.
@@ -173,7 +177,7 @@ RELEASE_YEAR = \
`sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
$(top_srcdir)/lib/version-etc.c`
-all-local: su$(EXEEXT)
+all-local: su$(EXEEXT) runuser
installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'`
diff -urNp coreutils-7.0.orig/src/su.c coreutils-7.0/src/su.c
--- coreutils-7.0.orig/src/su.c 2009-01-28 18:10:10.801926000 +0100
+++ coreutils-7.0/src/su.c 2009-01-28 18:11:00.320247437 +0100
@@ -109,9 +109,15 @@
#include "error.h"
/* The official name of this program (e.g., no `g' prefix). */
+#ifndef RUNUSER
#define PROGRAM_NAME "su"
+#else
+#define PROGRAM_NAME "runuser"
+#endif
+#ifndef AUTHORS
#define AUTHORS proper_name ("David MacKenzie")
+#endif
#if HAVE_PATHS_H
# include <paths.h>
@@ -149,6 +155,10 @@
#ifndef USE_PAM
char *crypt (char const *key, char const *salt);
#endif
+#ifndef CHECKPASSWD
+#define CHECKPASSWD 1
+#endif
+
char *getusershell (void);
void endusershell (void);
void setusershell (void);
@@ -156,7 +166,11 @@ void setusershell ();
extern char **environ;
static void run_shell (char const *, char const *, char **, size_t,
- const struct passwd *)
+ const struct passwd *
+#ifdef RUNUSER
+ , gid_t *groups, int num_groups
+#endif
+ )
#ifdef USE_PAM
;
#else
@@ -183,6 +197,10 @@ static struct option const longopts[] =
{"login", no_argument, NULL, 'l'},
{"preserve-environment", no_argument, NULL, 'p'},
{"shell", required_argument, NULL, 's'},
+#ifdef RUNUSER
+ {"group", required_argument, NULL, 'g'},
+ {"supp-group", required_argument, NULL, 'G'},
+#endif
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
{NULL, 0, NULL, 0}
@@ -284,10 +302,12 @@ correct_password (const struct passwd *p
retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
PAM_BAIL_P;
+#ifndef RUNUSER
if (getuid() != 0 && !isatty(0)) {
fprintf(stderr, "standard in must be a tty\n");
exit(1);
}
+#endif
caller = getpwuid(getuid());
if(caller != NULL && caller->pw_name != NULL) {
@@ -304,6 +324,11 @@ correct_password (const struct passwd *p
retval = pam_set_item(pamh, PAM_TTY, tty_name);
PAM_BAIL_P;
}
+#ifdef RUNUSER
+ if (getuid() != geteuid())
+ /* safety net: deny operation if we are suid by accident */
+ error(EXIT_FAILURE, 1, "runuser may not be setuid");
+#else
retval = pam_authenticate(pamh, 0);
PAM_BAIL_P;
retval = pam_acct_mgmt(pamh, 0);
@@ -313,6 +338,7 @@ correct_password (const struct passwd *p
PAM_BAIL_P;
}
PAM_BAIL_P;
+#endif
/* must be authenticated if this point was reached */
return 1;
#else /* !USE_PAM */
@@ -394,11 +420,22 @@ modify_environment (const struct passwd
/* Become the user and group(s) specified by PW. */
static void
-change_identity (const struct passwd *pw)
+change_identity (const struct passwd *pw
+#ifdef RUNUSER
+ , gid_t *groups, int num_groups
+#endif
+ )
{
#ifdef HAVE_INITGROUPS
+ int rc = 0;
errno = 0;
- if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
+#ifdef RUNUSER
+ if (num_groups)
+ rc = setgroups(num_groups, groups);
+ else
+#endif
+ rc = initgroups(pw->pw_name, pw->pw_gid);
+ if (rc == -1) {
#ifdef USE_PAM
pam_close_session(pamh, 0);
pam_end(pamh, PAM_ABORT);
@@ -445,7 +482,11 @@ pam_copyenv (pam_handle_t *pamh)
static void
run_shell (char const *shell, char const *command, char **additional_args,
- size_t n_additional_args, const struct passwd *pw)
+ size_t n_additional_args, const struct passwd *pw
+#ifdef RUNUSER
+ , gid_t *groups, int num_groups
+#endif
+ )
{
size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
char const **args = xnmalloc (n_args, sizeof *args);
@@ -476,7 +517,11 @@ run_shell (char const *shell, char const
child = fork();
if (child == 0) { /* child shell */
- change_identity (pw);
+ change_identity (pw
+#ifdef RUNUSER
+ , groups, num_groups
+#endif
+ );
pam_end(pamh, 0);
if (!same_session)
setsid ();
@@ -620,6 +665,26 @@ usage (int status)
else
{
printf (_("Usage: %s [OPTION]... [-] [USER [ARG]...]\n"), program_name);
+#ifdef RUNUSER
+ fputs (_("\
+Change the effective user id and group id to that of USER. No PAM hooks\n\
+are run, and there will be no password prompt. This command is useful\n\
+when run as the root user. If run as a non-root user without privilege\n\
+to set user ID, the command will fail.\n\
+\n\
+ -, -l, --login make the shell a login shell, uses runuser-l\n\
+ PAM file instead of default one\n\
+ -g --group=group specify the primary group\n\
+ -G --supp-group=group specify a supplemental group\n\
+ -c, --command=COMMAND pass a single COMMAND to the shell with -c\n\
+ --session-command=COMMAND pass a single COMMAND to the shell with -c\n\
+ and do not create a new session\n\
+ -f, --fast pass -f to the shell (for csh or tcsh)\n\
+ -m, --preserve-environment do not reset environment variables\n\
+ -p same as -m\n\
+ -s, --shell=SHELL run SHELL if /etc/shells allows it\n\
+"), stdout);
+#else
fputs (_("\
Change the effective user id and group id to that of USER.\n\
\n\
@@ -632,6 +697,7 @@ Change the effective user id and group i
-p same as -m\n\
-s, --shell=SHELL run SHELL if /etc/shells allows it\n\
"), stdout);
+#endif
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
fputs (_("\
@@ -653,6 +719,12 @@ main (int argc, char **argv)
char *shell = NULL;
struct passwd *pw;
struct passwd pw_copy;
+#ifdef RUNUSER
+ struct group *gr;
+ gid_t groups[NGROUPS_MAX];
+ int num_supp_groups = 0;
+ int use_gid = 0;
+#endif
initialize_main (&argc, &argv);
set_program_name (argv[0]);
@@ -667,7 +739,11 @@ main (int argc, char **argv)
simulate_login = false;
change_environment = true;
- while ((optc = getopt_long (argc, argv, "c:flmps:", longopts, NULL)) != -1)
+ while ((optc = getopt_long (argc, argv, "c:flmps:"
+#ifdef RUNUSER
+ "g:G:"
+#endif
+ , longopts, NULL)) != -1)
{
switch (optc)
{
@@ -697,6 +773,28 @@ main (int argc, char **argv)
shell = optarg;
break;
+#ifdef RUNUSER
+ case 'g':
+ gr = getgrnam(optarg);
+ if (!gr)
+ error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
+ use_gid = 1;
+ groups[0] = gr->gr_gid;
+ break;
+
+ case 'G':
+ num_supp_groups++;
+ if (num_supp_groups >= NGROUPS_MAX)
+ error (EXIT_FAILURE, 0,
+ _("Can't specify more than %d supplemental groups"),
+ NGROUPS_MAX - 1);
+ gr = getgrnam(optarg);
+ if (!gr)
+ error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
+ groups[num_supp_groups] = gr->gr_gid;
+ break;
+#endif
+
case_GETOPT_HELP_CHAR;
case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
@@ -735,7 +833,20 @@ main (int argc, char **argv)
: DEFAULT_SHELL);
endpwent ();
- if (!correct_password (pw))
+#ifdef RUNUSER
+ if (num_supp_groups && !use_gid)
+ {
+ pw->pw_gid = groups[1];
+ memmove (groups, groups + 1, sizeof(gid_t) * num_supp_groups);
+ }
+ else if (use_gid)
+ {
+ pw->pw_gid = groups[0];
+ num_supp_groups++;
+ }
+#endif
+
+ if (CHECKPASSWD && !correct_password (pw))
{
#ifdef SYSLOG_FAILURE
log_su (pw, false);
@@ -767,8 +878,16 @@ main (int argc, char **argv)
modify_environment (pw, shell);
#ifndef USE_PAM
- change_identity (pw);
+ change_identity (pw
+#ifdef RUNUSER
+ , groups, num_supp_groups
+#endif
+ );
#endif
- run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
+ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw
+#ifdef RUNUSER
+ , groups, num_supp_groups
+#endif
+ );
}
diff -urNp coreutils-7.0.orig/tests/misc/help-version coreutils-7.0/tests/misc/help-version
--- coreutils-7.0.orig/tests/misc/help-version 2008-09-27 19:28:54.000000000 +0200
+++ coreutils-7.0/tests/misc/help-version 2009-01-28 18:11:00.321247443 +0100
@@ -148,6 +148,7 @@ printf_args=foo
seq_args=10
sleep_args=0
su_args=--version
+runuser_args=--version
timeout_args=--version
# I'd rather not run sync, since it spins up disks that I've

View File

@ -1,66 +0,0 @@
diff -urNp coreutils-7.2-orig/gnulib-tests/gnulib.mk coreutils-7.2/gnulib-tests/gnulib.mk
--- coreutils-7.2-orig/gnulib-tests/gnulib.mk 2009-03-31 14:28:30.000000000 +0200
+++ coreutils-7.2/gnulib-tests/gnulib.mk 2009-04-01 12:37:00.000000000 +0200
@@ -910,9 +910,9 @@ EXTRA_DIST += test-strtod.c
## begin gnulib module strverscmp-tests
-TESTS += test-strverscmp
-check_PROGRAMS += test-strverscmp
-EXTRA_DIST += test-strverscmp.c
+#TESTS += test-strverscmp
+#check_PROGRAMS += test-strverscmp
+#EXTRA_DIST += test-strverscmp.c
## end gnulib module strverscmp-tests
diff -urN coreutils-6.11-orig/tests/mkdir/selinux coreutils-6.11/tests/mkdir/selinux
--- coreutils-6.11-orig/tests/mkdir/selinux 2008-04-19 23:34:23.000000000 +0200
+++ coreutils-6.11/tests/mkdir/selinux 2008-04-22 13:23:50.000000000 +0200
@@ -38,6 +28,7 @@
# successfully, in spite of the invalid context string.
. $srcdir/test-lib.sh
+require_selinux_
c=invalid-selinux-context
msg="failed to set default file creation context to \`$c':"
diff -urNp coreutils-6.11-orig/tests/test-lib.sh coreutils-6.11/tests/test-lib.sh
--- coreutils-6.11-orig/tests/test-lib.sh 2008-04-19 23:34:23.000000000 +0200
+++ coreutils-6.11/tests/test-lib.sh 2008-04-24 14:18:59.000000000 +0200
@@ -97,8 +97,8 @@ skip_if_()
require_selinux_()
{
- case `ls -Zd .` in
- '? .'|'unlabeled .')
+ case `ls --scontext -d . | cut -f1 -d" "` in
+ '?'|'unlabeled')
skip_test_ "this system (or maybe just" \
"the current file system) lacks SELinux support"
;;
diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
--- coreutils-7.1-orig/src/ls.c 2009-02-25 13:23:59.000000000 +0100
+++ coreutils-7.1/src/ls.c 2009-02-25 13:25:20.000000000 +0100
@@ -38,10 +38,6 @@
#include <config.h>
#include <sys/types.h>
-#ifdef HAVE_CAP
-# include <sys/capability.h>
-#endif
-
#if HAVE_TERMIOS_H
# include <termios.h>
#endif
@@ -84,6 +80,10 @@
#include "system.h"
#include <fnmatch.h>
+#ifdef HAVE_CAP
+# include <sys/capability.h>
+#endif
+
#include "acl.h"
#include "argmatch.h"
#include "dev-ino.h"

View File

@ -1,13 +0,0 @@
diff -urNp coreutils-6.12-orig/src/md5sum.c coreutils-6.12/src/md5sum.c
--- coreutils-6.12-orig/src/md5sum.c 2008-05-26 08:40:33.000000000 +0200
+++ coreutils-6.12/src/md5sum.c 2008-10-21 16:07:28.000000000 +0200
@@ -175,6 +175,9 @@ With no FILE, or when FILE is -, read st
fputs (_("\
-t, --text read in text mode (default)\n\
"), stdout);
+ fputs (_("\
+ Note: There is no difference between binary and text mode option on GNU system.\n\
+"), stdout);
fputs (_("\
\n\
The following three options are useful only when verifying checksums:\n\

View File

@ -1,46 +0,0 @@
From a089634c855312a28f2ff3c2e7c08df5d030e2f5 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering <at> redhat.com>
Date: Tue, 20 May 2008 17:58:42 +0200
Subject: [PATCH] install: avoid a leak in currently-ifdef'd-out code
* src/install.c (setdefaultfilecon)
[ENABLE_WHEN_MATCHPATHCON_IS_MORE_EFFICIENT]:
Call matchpathcon_init_prefix only once.
Suggestion from Stephen Smalley. Reported by Ben Webb in
<http://bugzilla.redhat.com/447410>.
---
src/install.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/src/install.c b/src/install.c
index 964ab36..b531f45 100644
--- a/src/install.c
+++ b/src/install.c
@@ -208,6 +208,8 @@ setdefaultfilecon (char const *file)
{
struct stat st;
security_context_t scontext = NULL;
+ static bool first_call = true;
+
if (selinux_enabled != 1)
{
/* Indicate no context found. */
@@ -216,7 +218,7 @@ setdefaultfilecon (char const *file)
if (lstat (file, &st) != 0)
return;
- if (IS_ABSOLUTE_FILE_NAME (file))
+ if (first_call && IS_ABSOLUTE_FILE_NAME (file))
{
/* Calling matchpathcon_init_prefix (NULL, "/first_component/")
is an optimization to minimize the expense of the following
@@ -247,6 +249,7 @@ setdefaultfilecon (char const *file)
}
}
}
+ first_call = false;
/* If there's an error determining the context, or it has none,
return to allow default context */
--
1.5.5.1.249.g68ef3

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQBFeKRc/dLerNMzy6ERAiEJAJ435eWCOpfJkoCKoSpnh8Fwwb9XugCgnQ5H
SYg6l7M/jyvUdsFM1yS4RKk=
=GOOc
-----END PGP SIGNATURE-----

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQBGAvc3/dLerNMzy6ERAnyfAKC4MPj62hCSRYNu0ysD9SahdQvZIACgsNl/
CzQjwTNo5FUiiNm0FxtL5Ow=
=gl3O
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,44 @@
src/uname.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/uname.c b/src/uname.c
index 6371ca2..1ad8fd7 100644
--- a/src/uname.c
+++ b/src/uname.c
@@ -322,6 +322,12 @@ main (int argc, char **argv)
# elif defined __ppc__ || defined __ppc64__
element = "powerpc";
# endif
+#else
+ {
+ static struct utsname u;
+ uname(&u);
+ element = u.machine;
+ }
#endif
#if HAVE_SYSINFO && defined SI_ARCHITECTURE
if (element == unknown)
@@ -347,7 +353,7 @@ main (int argc, char **argv)
if (toprint & PRINT_HARDWARE_PLATFORM)
{
- char const *element = unknown;
+ char *element = unknown;
#if HAVE_SYSINFO && defined SI_PLATFORM
{
static char hardware_platform[257];
@@ -355,6 +361,14 @@ main (int argc, char **argv)
hardware_platform, sizeof hardware_platform))
element = hardware_platform;
}
+#else
+ {
+ static struct utsname u;
+ uname(&u);
+ element = u.machine;
+ if(strlen(element)==4 && element[0]=='i' && element[2]=='8' && element[3]=='6')
+ element[1]='3';
+ }
#endif
#ifdef UNAME_HARDWARE_PLATFORM
if (element == unknown)

View File

@ -0,0 +1,26 @@
From 6880c3dc9098b3337612850d1500b474aeb944ca Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Tue, 29 Aug 2017 17:33:51 +0200
Subject: [PATCH] require_selinux_(): use selinuxenabled(8) if available
---
init.cfg | 3 +++
1 file changed, 3 insertions(+)
diff --git a/init.cfg b/init.cfg
index af6b581..f887b3a 100644
--- a/init.cfg
+++ b/init.cfg
@@ -114,6 +114,9 @@ require_selinux_()
grep 'selinuxfs$' /proc/filesystems > /dev/null \
|| skip_ "this system lacks SELinux support"
+ # use the 'selinuxenabled' utility if available
+ selinuxenabled; [ $? = 1 ] && skip_ "SELinux is disabled"
+
# Independent of whether SELinux is enabled system-wide,
# the current file system may lack SELinux support.
# Also the current build may have SELinux support disabled.
--
2.9.5

View File

@ -0,0 +1,29 @@
From 0d04ee8ddedb2bf33d64f148f246a3b7ec4fef21 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 23 Jan 2017 12:35:41 +0100
Subject: [PATCH] test-lock: disable the rwlock test
It hangs indefinitely if the system rwlock implementation does not
prevent writer starvation (and glibc does not implement it).
Bug: http://www.mail-archive.com/bug-gnulib@gnu.org/msg33017.html
---
gnulib-tests/test-lock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnulib-tests/test-lock.c b/gnulib-tests/test-lock.c
index aa6de27..5af0a6c 100644
--- a/gnulib-tests/test-lock.c
+++ b/gnulib-tests/test-lock.c
@@ -42,7 +42,7 @@
Uncomment some of these, to verify that all tests crash if no locking
is enabled. */
#define DO_TEST_LOCK 1
-#define DO_TEST_RWLOCK 1
+#define DO_TEST_RWLOCK 0
#define DO_TEST_RECURSIVE_LOCK 1
#define DO_TEST_ONCE 1
--
2.7.4

View File

@ -0,0 +1,100 @@
From c7b13f5e1a7ad012c510a8bdd5a8943ab4b55833 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Fri, 17 Jun 2016 16:58:18 +0200
Subject: [PATCH] downstream changes to default DIR_COLORS
---
DIR_COLORS | 9 ++++++++-
DIR_COLORS.lightbgcolor | 21 +++++++++++++++------
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/DIR_COLORS b/DIR_COLORS
index b465771..ad42b09 100644
--- a/DIR_COLORS
+++ b/DIR_COLORS
@@ -1,3 +1,7 @@
+# This file goes in the /etc directory, and must be world readable.
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
+
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
@@ -10,6 +14,9 @@
# Global config options can be specified before TERM or COLORTERM entries
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
+
# Below are TERM or COLORTERM entries, which can be glob patterns, which
# restrict following config to systems with matching environment variables.
COLORTERM ?*
@@ -62,7 +69,7 @@ DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
-MISSING 00 # ... and the files they point to
+MISSING 01;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 00 # file with capability (very expensive to lookup)
diff --git a/DIR_COLORS.lightbgcolor b/DIR_COLORS.lightbgcolor
index eab6258..1627b63 100644
--- a/DIR_COLORS.lightbgcolor
+++ b/DIR_COLORS.lightbgcolor
@@ -1,3 +1,9 @@
+# Configuration file for the color ls utility - modified for lighter backgrounds
+
+# This file goes in the /etc directory, and must be world readable.
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
+
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
@@ -10,6 +16,9 @@
# Global config options can be specified before TERM or COLORTERM entries
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
+
# Below are TERM or COLORTERM entries, which can be glob patterns, which
# restrict following config to systems with matching environment variables.
COLORTERM ?*
@@ -52,17 +61,17 @@ TERM xterm*
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
-DIR 01;34 # directory
-LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
+DIR 00;34 # directory
+LINK 00;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
-SOCK 01;35 # socket
-DOOR 01;35 # door
+SOCK 00;35 # socket
+DOOR 00;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
-MISSING 00 # ... and the files they point to
+MISSING 01;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 00 # file with capability (very expensive to lookup)
@@ -71,7 +80,7 @@ OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
-EXEC 01;32
+EXEC 00;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to color below. Put the extension, a space, and the color init string.
--
2.34.1

View File

@ -0,0 +1,13 @@
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 400e135..47e4480 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -10829,6 +10829,8 @@ incorrect. @xref{Directory Setuid and Setgid}, for how the
set-user-ID and set-group-ID bits of directories are inherited unless
overridden in this way.
+Note: The @option{--mode},@option{-m} option only applies to the right-most directories listed on the command line. When combined with @option{--parents}, @option{-p} option, any parent directories are created with @samp{u+wx} modified by umask.
+
@item -p
@itemx --parents
@opindex -p

View File

@ -1,201 +0,0 @@
# Configuration file for the color ls utility
# Synchronized with coreutils 7.1 dircolors
# This file goes in the /etc directory, and must be world readable.
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.
# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty
# Extra command line options for ls go here.
# Basically these ones are:
# -F = show '/' for dirs, '*' for executables, etc.
# -T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0
# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM eterm-color
TERM gnome
TERM gnome-256color
TERM jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM putty
TERM rxvt
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM screen
TERM screen-256color
TERM screen-bce
TERM screen-w
TERM screen.linux
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # normal file, use no color at all
RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
HARDLINK 44;37 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# executables (bright green)
#.cmd 01;32
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.lzma 01;31
.zip 01;31
.z 01;31
.Z 01;31
.dz 01;31
.gz 01;31
.bz2 01;31
.tbz2 01;31
.bz 01;31
.tz 01;31
.deb 01;31
.rpm 01;31
.jar 01;31
.rar 01;31
.ace 01;31
.zoo 01;31
.cpio 01;31
.7z 01;31
.rz 01;31
.xz 01;31
# image formats (magenta)
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.mng 01;35
.pcx 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.m2v 01;35
.mkv 01;35
.ogm 01;35
.mp4 01;35
.m4v 01;35
.mp4v 01;35
.vob 01;35
.qt 01;35
.nuv 01;35
.wmv 01;35
.asf 01;35
.rm 01;35
.rmvb 01;35
.flc 01;35
.avi 01;35
.fli 01;35
.flv 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
.yuv 01;35
.svg 01;35
.svgz 01;35
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 01;35
.anx 01;35
.ogv 01;35
.ogx 01;35
# audio formats (cyan)
.aac 01;36
.au 01;36
.flac 01;36
.mid 01;36
.midi 01;36
.mka 01;36
.mp3 01;36
.mpc 01;36
.ogg 01;36
.ra 01;36
.wav 01;36
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 01;36
.oga 01;36
.spx 01;36
.xspf 01;36

View File

@ -1,177 +0,0 @@
# Configuration file for the 256color ls utility
# This file goes in the /etc directory, and must be world readable.
# Synchronized with coreutils 7.1 dircolors
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.
# In the case that you are not satisfied with supplied colors, please
# submit your color configuration or attach your file with colors readable
# on ALL color background schemas (white,gray,black) to RedHat Bugzilla
# ticket on https://bugzilla.redhat.com/show_bug.cgi?id=429121 . TIA.
# Please just keep ls color conventions from 8 color scheme.
# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty
# Extra command line options for ls go here.
# Basically these ones are:
# -F = show '/' for dirs, '*' for executables, etc.
# -T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0
# Below, there should be one TERM entry for each termtype that is colorizable
TERM putty-256color
TERM rxvt-256color
TERM screen-256color
TERM xterm-256color
TERM gnome-256color
# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color(8 colors mode) codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color(8 colors mode) codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
# Text color(256 colors mode) codes:
# Valid syntax for text 256color is 38;5;<color number> , where color number
# is number between 0 and 255.
# You may find following command useful to search the best one for you:
# for ((x=0; x<=255; x++));do echo -e "${x}:\033[38;5;${x}mcolor\033[000m";done
# Background color(256 colors mode) codes:
# Valid syntax for background 256color is 48;5;<color number> , where
# color number is number between 0 and 255.
# You may find following command useful to search the best one for you:
# for ((x=0; x<=255; x++));do echo -e "${x}:\033[48;5;${x}mcolor\033[000m";done
#NORMAL 00 # global default, no color code at all
#FILE 00 # normal file, use no color at all
RESET 0 # reset to "normal" color
DIR 01;38;5;27 # directory
LINK 01;38;5;51 # symbolic link (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
HARDLINK 44;38;5;15; # regular file with more than one link
FIFO 40;38;5;11 # pipe
SOCK 01;38;5;13 # socket
DOOR 01;38;5;5 # door
BLK 01;48;5;232;38;5;11 # block device driver
CHR 01;48;5;232;38;5;3 # character device driver
ORPHAN 01;48;5;232;38;5;9 # symlink to nonexistent file, or non-stat'able file
MISSING 01;05;48;5;232;38;5;15 # ... and the files they point to
SETUID 48;5;196;38;5;15 # file that is setuid (u+s)
SETGID 48;5;11;38;5;16 # file that is setgid (g+s)
CAPABILITY 48;5;196;38;5;226 # file with capability
STICKY_OTHER_WRITABLE 48;5;10;38;5;16 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 48;5;10;38;5;21 # dir that is other-writable (o+w) and not sticky
STICKY 48;5;21;38;5;15 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;38;5;34
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# executables (bright green)
#.cmd 01;38;5;34
#.exe 01;38;5;34
#.com 01;38;5;34
#.btm 01;38;5;34
#.bat 01;38;5;34
#.sh 01;38;5;34
#.csh 01;38;5;34
# archives or compressed (bright red)
.tar 01;38;5;9
.tgz 01;38;5;9
.arj 01;38;5;9
.taz 01;38;5;9
.lzh 01;38;5;9
.lzma 01;38;5;9
.zip 01;38;5;9
.z 01;38;5;9
.Z 01;38;5;9
.dz 01;38;5;9
.gz 01;38;5;9
.bz2 01;38;5;9
.tbz2 01;38;5;9
.bz 01;38;5;9
.tz 01;38;5;9
.deb 01;38;5;9
.rpm 01;38;5;9
.jar 01;38;5;9
.rar 01;38;5;9
.ace 01;38;5;9
.zoo 01;38;5;9
.cpio 01;38;5;9
.7z 01;38;5;9
.rz 01;38;5;9
.xz 01;38;5;9
# image formats (magenta)
.jpg 01;38;5;13
.jpeg 01;38;5;13
.gif 01;38;5;13
.bmp 01;38;5;13
.pbm 01;38;5;13
.pgm 01;38;5;13
.ppm 01;38;5;13
.tga 01;38;5;13
.xbm 01;38;5;13
.xpm 01;38;5;13
.tif 01;38;5;13
.tiff 01;38;5;13
.png 01;38;5;13
.mng 01;38;5;13
.pcx 01;38;5;13
.mov 01;38;5;13
.mpg 01;38;5;13
.mpeg 01;38;5;13
.m2v 01;38;5;13
.mkv 01;38;5;13
.ogm 01;38;5;13
.mp4 01;38;5;13
.m4v 01;38;5;13
.mp4v 01;38;5;13
.vob 01;38;5;13
.qt 01;38;5;13
.nuv 01;38;5;13
.wmv 01;38;5;13
.asf 01;38;5;13
.rm 01;38;5;13
.rmvb 01;38;5;13
.flc 01;38;5;13
.avi 01;38;5;13
.fli 01;38;5;13
.flv 01;38;5;13
.gl 01;38;5;13
.dl 01;38;5;13
.xcf 01;38;5;13
.xwd 01;38;5;13
.yuv 01;38;5;13
.svg 01;38;5;13
.svgz 01;38;5;13
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 01;38;5;13
.anx 01;38;5;13
.ogv 01;38;5;13
.ogx 01;38;5;13
# audio formats (cyan)
.aac 01;38;5;45
.au 01;38;5;45
.flac 01;38;5;45
.mid 01;38;5;45
.midi 01;38;5;45
.mka 01;38;5;45
.mp3 01;38;5;45
.mpc 01;38;5;45
.ogg 01;38;5;45
.ra 01;38;5;45
.wav 01;38;5;45
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 01;38;5;45
.oga 01;38;5;45
.spx 01;38;5;45
.xspf 01;38;5;45

View File

@ -1,180 +0,0 @@
# Configuration file for the color ls utility - modified for gray backgrounds
# Synchronized with coreutils 7.1 dircolors
# This file goes in the /etc directory, and must be world readable.
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.
# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty
# Extra command line options for ls go here.
# Basically these ones are:
# -F = show '/' for dirs, '*' for executables, etc.
# -T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0
# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM xterm
TERM xterm-16color
TERM xterm-88color
TERM xterm-256color
TERM rxvt
TERM rxvt-unicode
TERM xterm-color
TERM color-xterm
TERM vt100
TERM dtterm
TERM color_xterm
# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # normal file, use no color at all
RESET 0
DIR 00;34 # directory
LINK 00;36 # symbolic link (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
HARDLINK 44;37 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 00;35 # socket
DOOR 00;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 00;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
#.cmd 00;32 # executables (green)
#.exe 00;32
#.com 00;32
#.btm 00;32
#.bat 00;32
#.sh 00;32
#.csh 00;32
# archives or compressed (red)
.tar 00;31
.tgz 00;31
.arj 00;31
.taz 00;31
.lzh 00;31
.lzma 00;31
.zip 00;31
.z 00;31
.Z 00;31
.dz 00;31
.gz 00;31
.bz2 00;31
.tbz2 00;31
.bz 00;31
.tz 00;31
.deb 00;31
.rpm 00;31
.jar 00;31
.rar 00;31
.ace 00;31
.zoo 00;31
.cpio 00;31
.7z 00;31
.rz 00;31
.xz 00;31
# image formats (magenta)
.jpg 00;35
.jpeg 00;35
.gif 00;35
.bmp 00;35
.pbm 00;35
.pgm 00;35
.ppm 00;35
.tga 00;35
.xbm 00;35
.xpm 00;35
.tif 00;35
.tiff 00;35
.png 00;35
.mng 00;35
.pcx 00;35
.mov 00;35
.mpg 00;35
.mpeg 00;35
.m2v 00;35
.mkv 00;35
.ogm 00;35
.mp4 00;35
.m4v 00;35
.mp4v 00;35
.vob 00;35
.qt 00;35
.nuv 00;35
.wmv 00;35
.asf 00;35
.rm 00;35
.rmvb 00;35
.flc 00;35
.avi 00;35
.fli 00;35
.flv 00;35
.gl 00;35
.dl 00;35
.xcf 00;35
.xwd 00;35
.yuv 00;35
.svg 00;35
.svgz 00;35
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 00;35
.anx 00;35
.ogv 00;35
.ogx 00;35
# audio formats (cyan)
.aac 00;36
.au 00;36
.flac 00;36
.mid 00;36
.midi 00;36
.mka 00;36
.mp3 00;36
.mpc 00;36
.ogg 00;36
.ra 00;36
.wav 00;36
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 00;36
.oga 00;36
.spx 00;36
.xspf 00;36

View File

@ -1,8 +1,10 @@
#! /bin/csh -f
# skip everything for non-interactive shells
if (! $?prompt) exit
# color-ls initialization
if ( $?USER_LS_COLORS ) then
if ( "$USER_LS_COLORS" != "" ) then
#when USER_LS_COLORS defined do not override user
#when USER_LS_COLORS defined do not override user
#specified LS_COLORS and use them
goto finish
endif
@ -11,34 +13,49 @@ endif
alias ll 'ls -l'
alias l. 'ls -d .*'
set COLORS=/etc/DIR_COLORS
if ($?TERM) then
if ( -e "/etc/DIR_COLORS.$TERM" ) then
if ( -e "/etc/DIR_COLORS.$TERM" ) then
set COLORS="/etc/DIR_COLORS.$TERM"
endif
endif
if ( -e "/etc/DIR_COLORS.256color" ) then
if ( "`tput colors`" == "256" ) then
set COLORS=/etc/DIR_COLORS.256color
endif
endif
if ( -f ~/.dircolors ) set COLORS=~/.dircolors
if ( -f ~/.dir_colors ) set COLORS=~/.dir_colors
if ($?TERM) then
if ( -f ~/.dircolors."$TERM" ) set COLORS=~/.dircolors."$TERM"
if ( -f ~/.dir_colors."$TERM" ) set COLORS=~/.dir_colors."$TERM"
endif
set INCLUDE="`/usr/bin/cat "$COLORS" | /usr/bin/grep '^INCLUDE' | /usr/bin/cut -d ' ' -f2-`"
if ( ! -e "$COLORS" ) exit
eval `dircolors -c $COLORS`
set _tmp="`/usr/bin/mktemp .colorlsXXX -q --tmpdir=/tmp`"
#if mktemp fails, exit when include was active, otherwise use $COLORS file
if ( "$_tmp" == '' ) then
if ( "$INCLUDE" == '' ) then
eval "`/usr/bin/dircolors -c $COLORS`"
endif
goto cleanup
endif
if ( "$INCLUDE" != '' ) /usr/bin/cat "$INCLUDE" >> $_tmp
/usr/bin/grep -v '^INCLUDE' "$COLORS" >> $_tmp
eval "`/usr/bin/dircolors -c $_tmp`"
/usr/bin/rm -f $_tmp
if ( "$LS_COLORS" == '' ) exit
set color_none=`sed -n '/^COLOR.*none/Ip' < $COLORS`
if ( "$color_none" != '' ) then
cleanup:
set color_none=`/usr/bin/sed -n '/^COLOR.*none/Ip' < $COLORS`
if ( "$color_none" != '' ) then
unset color_none
exit
endif
unset color_none
unset _tmp
unset INCLUDE
unset COLORS
finish:
alias ll 'ls -l --color=auto'

View File

@ -1,40 +1,53 @@
# color-ls initialization
# Skip all for noninteractive shells.
[ ! -t 0 ] && return
#when USER_LS_COLORS defined do not override user LS_COLORS, but use them.
if [ -z "$USER_LS_COLORS" ]; then
alias ll='ls -l' 2>/dev/null
alias l.='ls -d .*' 2>/dev/null
# Skip the rest for noninteractive shells.
[ -z "$PS1" ] && return
INCLUDE=
COLORS=
for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \
"$HOME/.dir_colors" "$HOME/.dircolors"; do
[ -e "$colors" ] && COLORS="$colors" && break
[ -e "$colors" ] && COLORS="$colors" && \
INCLUDE="`/usr/bin/cat "$COLORS" | /usr/bin/grep '^INCLUDE' | /usr/bin/cut -d ' ' -f2-`" && \
break
done
[ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \
[ "x`tput colors 2>/dev/null`" = "x256" ] && \
COLORS="/etc/DIR_COLORS.256color"
[ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.$TERM" ] && \
COLORS="/etc/DIR_COLORS.$TERM"
if [ -z "$COLORS" ]; then
for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do
[ -e "$colors" ] && COLORS="$colors" && break
done
fi
[ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS" ] && \
COLORS="/etc/DIR_COLORS"
# Existence of $COLORS already checked above.
[ -n "$COLORS" ] || return
eval `dircolors --sh "$COLORS" 2>/dev/null`
if [ -e "$INCLUDE" ];
then
TMP="`/usr/bin/mktemp .colorlsXXX -q --tmpdir=/tmp`"
[ -z "$TMP" ] && return
/usr/bin/cat "$INCLUDE" >> $TMP
/usr/bin/grep -v '^INCLUDE' "$COLORS" >> $TMP
eval "`/usr/bin/dircolors --sh $TMP 2>/dev/null`"
/usr/bin/rm -f $TMP
else
eval "`/usr/bin/dircolors --sh $COLORS 2>/dev/null`"
fi
[ -z "$LS_COLORS" ] && return
egrep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return
/usr/bin/grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return
fi
unset TMP COLORS INCLUDE
alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d .* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null

187
coreutils-df-direct.patch Normal file
View File

@ -0,0 +1,187 @@
From 6e36198f10a2f63b89c89ebb5d5c185b20fb3a63 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 29 Mar 2010 17:20:34 +0000
Subject: [PATCH] coreutils-df-direct.patch
---
doc/coreutils.texi | 7 ++++++
src/df.c | 34 ++++++++++++++++++++++++++--
tests/df/direct.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 94 insertions(+), 2 deletions(-)
create mode 100755 tests/df/direct.sh
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 5b9a597..6810c15 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -12074,6 +12074,13 @@ some systems (notably Solaris), doing this yields more up to date results,
but in general this option makes @command{df} much slower, especially when
there are many or very busy file systems.
+@item --direct
+@opindex --direct
+@cindex direct statfs for a file
+Do not resolve mount point and show statistics directly for a file. It can be
+especially useful for NFS mount points if there is a boundary between two
+storage policies behind the mount point.
+
@item --total
@opindex --total
@cindex grand total of file system size, usage and available space
diff --git a/src/df.c b/src/df.c
index 48025b9..c8efa5b 100644
--- a/src/df.c
+++ b/src/df.c
@@ -125,6 +125,9 @@ static bool print_type;
/* If true, print a grand total at the end. */
static bool print_grand_total;
+/* If true, show statistics for a file instead of mount point. */
+static bool direct_statfs;
+
/* Grand total data. */
static struct fs_usage grand_fsu;
@@ -252,13 +255,15 @@ enum
NO_SYNC_OPTION = CHAR_MAX + 1,
SYNC_OPTION,
TOTAL_OPTION,
- OUTPUT_OPTION
+ OUTPUT_OPTION,
+ DIRECT_OPTION
};
static struct option const long_options[] =
{
{"all", no_argument, NULL, 'a'},
{"block-size", required_argument, NULL, 'B'},
+ {"direct", no_argument, NULL, DIRECT_OPTION},
{"inodes", no_argument, NULL, 'i'},
{"human-readable", no_argument, NULL, 'h'},
{"si", no_argument, NULL, 'H'},
@@ -583,7 +588,10 @@ get_header (void)
for (col = 0; col < ncolumns; col++)
{
char *cell = NULL;
- char const *header = _(columns[col]->caption);
+ char const *header = (columns[col]->field == TARGET_FIELD
+ && direct_statfs)?
+ _("File") :
+ _(columns[col]->caption);
if (columns[col]->field == SIZE_FIELD
&& (header_mode == DEFAULT_MODE
@@ -1486,6 +1494,17 @@ get_point (char const *point, const struct stat *statp)
static void
get_entry (char const *name, struct stat const *statp)
{
+ if (direct_statfs)
+ {
+ char *resolved = canonicalize_file_name (name);
+ if (resolved)
+ {
+ get_dev (NULL, resolved, name, NULL, NULL, false, false, NULL, false);
+ free (resolved);
+ return;
+ }
+ }
+
if ((S_ISBLK (statp->st_mode) || S_ISCHR (statp->st_mode))
&& get_device (name))
return;
@@ -1556,6 +1575,7 @@ or all file systems by default.\n\
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,\n\
'-BM' prints sizes in units of 1,048,576 bytes;\n\
see SIZE format below\n\
+ --direct show statistics for a file instead of mount point\n\
-h, --human-readable print sizes in powers of 1024 (e.g., 1023M)\n\
-H, --si print sizes in powers of 1000 (e.g., 1.1G)\n\
"), stdout);
@@ -1646,6 +1666,9 @@ main (int argc, char **argv)
xstrtol_fatal (e, oi, c, long_options, optarg);
}
break;
+ case DIRECT_OPTION:
+ direct_statfs = true;
+ break;
case 'i':
if (header_mode == OUTPUT_MODE)
{
@@ -1742,6 +1765,13 @@ main (int argc, char **argv)
}
}
+ if (direct_statfs && show_local_fs)
+ {
+ error (0, 0, _("options --direct and --local (-l) are mutually "
+ "exclusive"));
+ usage (EXIT_FAILURE);
+ }
+
if (human_output_opts == -1)
{
if (posix_format)
diff --git a/tests/df/direct.sh b/tests/df/direct.sh
new file mode 100755
index 0000000..8e4cfb8
--- /dev/null
+++ b/tests/df/direct.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+# Ensure "df --direct" works as documented
+
+# Copyright (C) 2010 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 <http://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+print_ver_ df
+
+df || skip_ "df fails"
+
+DIR=`pwd` || framework_failure
+FILE="$DIR/file"
+touch "$FILE" || framework_failure
+echo "$FILE" > file_exp || framework_failure
+echo "Mounted on" > header_mounted_exp || framework_failure
+echo "File" > header_file_exp || framework_failure
+
+fail=0
+
+df --portability "$FILE" > df_out || fail=1
+df --portability --direct "$FILE" > df_direct_out || fail=1
+df --portability --direct --local "$FILE" > /dev/null 2>&1 && fail=1
+
+# check df header
+$AWK '{ if (NR==1) print $6 " " $7; }' df_out > header_mounted_out \
+ || framework_failure
+$AWK '{ if (NR==1) print $6; }' df_direct_out > header_file_out \
+ || framework_failure
+compare header_mounted_out header_mounted_exp || fail=1
+compare header_file_out header_file_exp || fail=1
+
+# check df output (without --direct)
+$AWK '{ if (NR==2) print $6; }' df_out > file_out \
+ || framework_failure
+compare file_out file_exp && fail=1
+
+# check df output (with --direct)
+$AWK '{ if (NR==2) print $6; }' df_direct_out > file_out \
+ || framework_failure
+compare file_out file_exp || fail=1
+
+Exit $fail
--
2.31.1

View File

@ -1,23 +0,0 @@
--- coreutils-6.8+/tests/cp/acl.getfacl-exit-code 2007-03-01 16:48:29.000000000 +0000
+++ coreutils-6.8+/tests/cp/acl 2007-03-01 16:49:35.000000000 +0000
@@ -70,16 +70,16 @@
# copy a file without preserving permissions
cp a/file b/ || fail=1
-acl2=`cd b && getfacl file` || framework_failure
+acl2=`cd b && getfacl file`
test "$acl1" = "$acl2" || fail=1
rm a/file || framework_failure
# copy a file, preserving permissions
touch a/file || framework_failure
-setfacl -m user:bin:rw a/file || framework_failure
-acl1=`cd a && getfacl file` || framework_failure
+setfacl -m user:bin:rw a/file
+acl1=`cd a && getfacl file`
cp -p a/file b/ || fail=1
-acl2=`cd b && getfacl file` || framework_failure
+acl2=`cd b && getfacl file`
test "$acl1" = "$acl2" || fail=1
Exit $fail

View File

@ -1,6 +1,7 @@
diff -urp coreutils-6.10-orig/lib/getugroups.c coreutils-6.10/lib/getugroups.c
--- coreutils-6.10-orig/lib/getugroups.c 2007-10-17 15:47:25.000000000 +0200
+++ coreutils-6.10/lib/getugroups.c 2008-01-24 16:37:04.000000000 +0100
diff --git a/lib/getugroups.c b/lib/getugroups.c
index 299bae6..8ece29b 100644
--- a/lib/getugroups.c
+++ b/lib/getugroups.c
@@ -19,6 +19,9 @@
#include <config.h>
@ -10,20 +11,84 @@ diff -urp coreutils-6.10-orig/lib/getugroups.c coreutils-6.10/lib/getugroups.c
+
#include "getugroups.h"
#include <limits.h>
@@ -114,3 +117,4 @@ getugroups (int maxcount, GETGROUPS_T *g
return count;
#include <errno.h>
@@ -126,3 +129,4 @@ getugroups (int maxcount, gid_t *grouplist, char const *username,
}
#endif /* HAVE_GRP_H */
+#endif /* have getgrouplist */
diff -urp coreutils-6.10-orig/m4/jm-macros.m4 coreutils-6.10/m4/jm-macros.m4
--- coreutils-6.10-orig/m4/jm-macros.m4 2007-11-25 14:23:31.000000000 +0100
+++ coreutils-6.10/m4/jm-macros.m4 2008-01-24 16:42:00.000000000 +0100
@@ -52,6 +52,7 @@ AC_DEFUN([coreutils_MACROS],
fchown \
fchmod \
ftruncate \
+ getgrouplist \
iswspace \
mkfifo \
mbrlen \
diff --git a/lib/mgetgroups.c b/lib/mgetgroups.c
index 76474c2..0a9d221 100644
--- a/lib/mgetgroups.c
+++ b/lib/mgetgroups.c
@@ -31,6 +31,7 @@
#endif
#include "getugroups.h"
+#include "xalloc.h"
#include "xalloc-oversized.h"
/* Work around an incompatibility of OS X 10.11: getgrouplist
@@ -119,9 +120,17 @@ mgetgroups (char const *username, gid_t gid, gid_t **groups)
/* else no username, so fall through and use getgroups. */
#endif
- max_n_groups = (username
- ? getugroups (0, NULL, username, gid)
- : getgroups (0, NULL));
+ if (!username)
+ max_n_groups = getgroups(0, NULL);
+ else
+ {
+#ifdef HAVE_GETGROUPLIST
+ max_n_groups = 0;
+ getgrouplist (username, gid, NULL, &max_n_groups);
+#else
+ max_n_groups = getugroups (0, NULL, username, gid);
+#endif
+ }
/* If we failed to count groups because there is no supplemental
group support, then return an array containing just GID.
@@ -143,10 +152,25 @@ mgetgroups (char const *username, gid_t gid, gid_t **groups)
if (g == NULL)
return -1;
- ng = (username
- ? getugroups (max_n_groups, g, username, gid)
- : getgroups (max_n_groups - (gid != (gid_t) -1),
- g + (gid != (gid_t) -1)));
+ if (!username)
+ ng = getgroups (max_n_groups - (gid != (gid_t)-1), g + (gid != (gid_t)-1));
+ else
+ {
+#ifdef HAVE_GETGROUPLIST
+ int e;
+ ng = max_n_groups;
+ while ((e = getgrouplist (username, gid, g, &ng)) == -1
+ && ng > max_n_groups)
+ {
+ max_n_groups = ng;
+ g = xrealloc (g, max_n_groups * sizeof (GETGROUPS_T));
+ }
+ if (e == -1)
+ ng = -1;
+#else
+ ng = getugroups (max_n_groups, g, username, gid);
+#endif
+ }
if (ng < 0)
{
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
index 62777c7..5180243 100644
--- a/m4/jm-macros.m4
+++ b/m4/jm-macros.m4
@@ -68,6 +68,7 @@ AC_DEFUN([coreutils_MACROS],
fchown
fchmod
ftruncate
+ getgrouplist
iswspace
mkfifo
mbrlen

File diff suppressed because it is too large Load Diff

312
coreutils-keyring.gpg Normal file
View File

@ -0,0 +1,312 @@
Release GPG keyring of coreutils group.
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
ELphkzjc6eM3CaOZ73u4GVXotheeUabUHQ==
=drvb
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,11 +0,0 @@
--- coreutils-5.2.1/src/who.c.overflow 2005-05-25 09:59:06.000000000 +0100
+++ coreutils-5.2.1/src/who.c 2005-05-25 10:00:31.000000000 +0100
@@ -75,7 +75,7 @@
# define UT_TYPE_NEW_TIME(U) false
#endif
-#define IDLESTR_LEN 6
+#define IDLESTR_LEN 10
#if HAVE_STRUCT_XTMP_UT_PID
# define PIDSTR_DECL_AND_INIT(Var, Utmp_ent) \

View File

@ -1,422 +0,0 @@
--- coreutils-6.7/src/Makefile.am.pam 2006-11-24 21:28:10.000000000 +0000
+++ coreutils-6.7/src/Makefile.am 2007-01-09 17:00:01.000000000 +0000
@@ -103,7 +103,7 @@
# If necessary, add -lm to resolve use of pow in lib/strtod.c.
uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
-su_LDADD = $(LDADD) $(LIB_CRYPT)
+su_LDADD = $(LDADD) $(LIB_CRYPT) @LIB_PAM@
dir_LDADD += $(LIB_ACL)
ls_LDADD += $(LIB_ACL)
--- coreutils-6.7/src/su.c.pam 2007-01-09 17:00:01.000000000 +0000
+++ coreutils-6.7/src/su.c 2007-01-09 17:16:43.000000000 +0000
@@ -38,6 +38,16 @@
restricts who can su to UID 0 accounts. RMS considers that to
be fascist.
+#ifdef USE_PAM
+
+ Actually, with PAM, su has nothing to do with whether or not a
+ wheel group is enforced by su. RMS tries to restrict your access
+ to a su which implements the wheel group, but PAM considers that
+ to be fascist, and gives the user/sysadmin the opportunity to
+ enforce a wheel group by proper editing of /etc/pam.conf
+
+#endif
+
Compile-time options:
-DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
-DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
@@ -59,6 +69,15 @@
prototype (returning `int') in <unistd.h>. */
#define getusershell _getusershell_sys_proto_
+#ifdef USE_PAM
+# include <signal.h>
+# include <sys/wait.h>
+# include <sys/fsuid.h>
+# include <unistd.h>
+# include <security/pam_appl.h>
+# include <security/pam_misc.h>
+#endif /* USE_PAM */
+
#include "system.h"
#include "getpass.h"
@@ -128,15 +147,22 @@
/* The user to become if none is specified. */
#define DEFAULT_USER "root"
+#ifndef USE_PAM
char *crypt (char const *key, char const *salt);
+#endif
char *getusershell (void);
void endusershell (void);
void setusershell (void);
extern char **environ;
-static void run_shell (char const *, char const *, char **, size_t)
+static void run_shell (char const *, char const *, char **, size_t,
+ const struct passwd *)
+#ifdef USE_PAM
+ ;
+#else
ATTRIBUTE_NORETURN;
+#endif
/* If true, pass the `-f' option to the subshell. */
static bool fast_startup;
@@ -225,7 +251,26 @@
}
#endif
+#ifdef USE_PAM
+static pam_handle_t *pamh = NULL;
+static int retval;
+static struct pam_conv conv = {
+ misc_conv,
+ NULL
+};
+
+#define PAM_BAIL_P if (retval) { \
+ pam_end(pamh, PAM_SUCCESS); \
+ return 0; \
+}
+#define PAM_BAIL_P_VOID if (retval) { \
+ pam_end(pamh, PAM_SUCCESS); \
+return; \
+}
+#endif
+
/* Ask the user for a password.
+ If PAM is in use, let PAM ask for the password if necessary.
Return true if the user gives the correct password for entry PW,
false if not. Return true without asking for a password if run by UID 0
or if PW has an empty password. */
@@ -233,6 +278,44 @@
static bool
correct_password (const struct passwd *pw)
{
+#ifdef USE_PAM
+ struct passwd *caller;
+ char *tty_name, *ttyn;
+ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
+ PAM_BAIL_P;
+
+ if (getuid() != 0 && !isatty(0)) {
+ fprintf(stderr, "standard in must be a tty\n");
+ exit(1);
+ }
+
+ caller = getpwuid(getuid());
+ if(caller != NULL && caller->pw_name != NULL) {
+ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
+ PAM_BAIL_P;
+ }
+
+ ttyn = ttyname(0);
+ if (ttyn) {
+ if (strncmp(ttyn, "/dev/", 5) == 0)
+ tty_name = ttyn+5;
+ else
+ tty_name = ttyn;
+ retval = pam_set_item(pamh, PAM_TTY, tty_name);
+ PAM_BAIL_P;
+ }
+ retval = pam_authenticate(pamh, 0);
+ PAM_BAIL_P;
+ retval = pam_acct_mgmt(pamh, 0);
+ if (retval == PAM_NEW_AUTHTOK_REQD) {
+ /* password has expired. Offer option to change it. */
+ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
+ PAM_BAIL_P;
+ }
+ PAM_BAIL_P;
+ /* must be authenticated if this point was reached */
+ return 1;
+#else /* !USE_PAM */
char *unencrypted, *encrypted, *correct;
#if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
/* Shadow passwd stuff for SVR3 and maybe other systems. */
@@ -257,6 +340,7 @@
encrypted = crypt (unencrypted, correct);
memset (unencrypted, 0, strlen (unencrypted));
return STREQ (encrypted, correct);
+#endif /* !USE_PAM */
}
/* Update `environ' for the new shell based on PW, with SHELL being
@@ -270,12 +354,18 @@
/* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
Unset all other environment variables. */
char const *term = getenv ("TERM");
+ char const *display = getenv ("DISPLAY");
+ char const *xauthority = getenv ("XAUTHORITY");
if (term)
term = xstrdup (term);
environ = xmalloc ((6 + !!term) * sizeof (char *));
environ[0] = NULL;
if (term)
xsetenv ("TERM", term);
+ if (display)
+ xsetenv ("DISPLAY", display);
+ if (xauthority)
+ xsetenv ("XAUTHORITY", xauthority);
xsetenv ("HOME", pw->pw_dir);
xsetenv ("SHELL", shell);
xsetenv ("USER", pw->pw_name);
@@ -308,8 +398,13 @@
{
#ifdef HAVE_INITGROUPS
errno = 0;
- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
+ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
+#ifdef USE_PAM
+ pam_close_session(pamh, 0);
+ pam_end(pamh, PAM_ABORT);
+#endif
error (EXIT_FAILURE, errno, _("cannot set groups"));
+ }
endgrent ();
#endif
if (setgid (pw->pw_gid))
@@ -318,6 +413,31 @@
error (EXIT_FAILURE, errno, _("cannot set user id"));
}
+#ifdef USE_PAM
+static int caught=0;
+/* Signal handler for parent process later */
+static void su_catch_sig(int sig)
+{
+ ++caught;
+}
+
+int
+pam_copyenv (pam_handle_t *pamh)
+{
+ char **env;
+
+ env = pam_getenvlist(pamh);
+ if(env) {
+ while(*env) {
+ if (putenv (*env))
+ xalloc_die ();
+ env++;
+ }
+ }
+ return(0);
+}
+#endif
+
/* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
If COMMAND is nonzero, pass it to the shell with the -c option.
Pass ADDITIONAL_ARGS to the shell as more arguments; there
@@ -325,17 +445,49 @@
static void
run_shell (char const *shell, char const *command, char **additional_args,
- size_t n_additional_args)
+ size_t n_additional_args, const struct passwd *pw)
{
size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
char const **args = xnmalloc (n_args, sizeof *args);
size_t argno = 1;
+#ifdef USE_PAM
+ int child;
+ sigset_t ourset;
+ int status;
+
+ retval = pam_open_session(pamh,0);
+ if (retval != PAM_SUCCESS) {
+ fprintf (stderr, "could not open session\n");
+ exit (1);
+ }
+
+/* do this at the last possible moment, because environment variables may
+ be passed even in the session phase
+*/
+ if(pam_copyenv(pamh) != PAM_SUCCESS)
+ fprintf (stderr, "error copying PAM environment\n");
+
+ /* Credentials should be set in the parent */
+ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
+ pam_close_session(pamh, 0);
+ fprintf(stderr, "could not set PAM credentials\n");
+ exit(1);
+ }
+
+ child = fork();
+ if (child == 0) { /* child shell */
+ change_identity (pw);
+ pam_end(pamh, 0);
+#endif
if (simulate_login)
{
char *arg0;
char *shell_basename;
+ if(chdir(pw->pw_dir))
+ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
+
shell_basename = last_component (shell);
arg0 = xmalloc (strlen (shell_basename) + 2);
arg0[0] = '-';
@@ -360,6 +512,66 @@
error (0, errno, "%s", shell);
exit (exit_status);
}
+#ifdef USE_PAM
+ } else if (child == -1) {
+ fprintf(stderr, "can not fork user shell: %s", strerror(errno));
+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
+ pam_close_session(pamh, 0);
+ pam_end(pamh, PAM_ABORT);
+ exit(1);
+ }
+ /* parent only */
+ sigfillset(&ourset);
+ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
+ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME);
+ caught = 1;
+ }
+ if (!caught) {
+ struct sigaction action;
+ action.sa_handler = su_catch_sig;
+ sigemptyset(&action.sa_mask);
+ action.sa_flags = 0;
+ sigemptyset(&ourset);
+ if (sigaddset(&ourset, SIGTERM)
+ || sigaddset(&ourset, SIGALRM)
+ || sigaction(SIGTERM, &action, NULL)
+ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
+ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
+ caught = 1;
+ }
+ }
+ if (!caught) {
+ do {
+ int pid;
+
+ pid = waitpid(-1, &status, WUNTRACED);
+
+ if (WIFSTOPPED(status)) {
+ kill(getpid(), SIGSTOP);
+ /* once we get here, we must have resumed */
+ kill(pid, SIGCONT);
+ }
+ } while (WIFSTOPPED(status));
+ }
+
+ if (caught) {
+ fprintf(stderr, "\nSession terminated, killing shell...");
+ kill (child, SIGTERM);
+ }
+ /* Not checking retval on this because we need to call close session */
+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
+ retval = pam_close_session(pamh, 0);
+ PAM_BAIL_P_VOID;
+ retval = pam_end(pamh, PAM_SUCCESS);
+ PAM_BAIL_P_VOID;
+ if (caught) {
+ sleep(2);
+ kill(child, SIGKILL);
+ fprintf(stderr, " ...killed.\n");
+ exit(-1);
+ }
+ exit (WEXITSTATUS(status));
+#endif /* USE_PAM */
}
/* Return true if SHELL is a restricted shell (one not returned by
@@ -527,9 +739,9 @@
shell = xstrdup (shell ? shell : pw->pw_shell);
modify_environment (pw, shell);
+#ifndef USE_PAM
change_identity (pw);
- if (simulate_login && chdir (pw->pw_dir) != 0)
- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
+#endif
- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
+ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
}
--- coreutils-6.7/doc/coreutils.texi.pam 2006-10-27 15:30:48.000000000 +0100
+++ coreutils-6.7/doc/coreutils.texi 2007-01-09 17:00:01.000000000 +0000
@@ -13395,8 +13395,11 @@
@findex syslog
@command{su} can optionally be compiled to use @code{syslog} to report
failed, and optionally successful, @command{su} attempts. (If the system
-supports @code{syslog}.) However, GNU @command{su} does not check if the
-user is a member of the @code{wheel} group; see below.
+supports @code{syslog}.)
+
+This version of @command{su} has support for using PAM for
+authentication. You can edit @file{/etc/pam.d/su} to customize its
+behaviour.
The program accepts the following options. Also see @ref{Common options}.
@@ -12815,6 +12815,8 @@
@env{PATH} to a compiled-in default value. Change to @var{user}'s home
directory. Prepend @samp{-} to the shell's name, intended to make it
read its login startup file(s).
+Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables
+are preserved as well for PAM functionality.
@item -m
@itemx -p
@@ -13477,33 +13480,6 @@
the exit status of the subshell otherwise
@end display
-@cindex wheel group, not supported
-@cindex group wheel, not supported
-@cindex fascism
-@subsection Why GNU @command{su} does not support the @samp{wheel} group
-
-(This section is by Richard Stallman.)
-
-@cindex Twenex
-@cindex MIT AI lab
-Sometimes a few of the users try to hold total power over all the
-rest. For example, in 1984, a few users at the MIT AI lab decided to
-seize power by changing the operator password on the Twenex system and
-keeping it secret from everyone else. (I was able to thwart this coup
-and give power back to the users by patching the kernel, but I
-wouldn't know how to do that in Unix.)
-
-However, occasionally the rulers do tell someone. Under the usual
-@command{su} mechanism, once someone learns the root password who
-sympathizes with the ordinary users, he or she can tell the rest. The
-``wheel group'' feature would make this impossible, and thus cement the
-power of the rulers.
-
-I'm on the side of the masses, not that of the rulers. If you are
-used to supporting the bosses and sysadmins in whatever they do, you
-might find this idea strange at first.
-
-
@node timeout invocation
@section @command{timeout}: Run a command with a time limit
--- coreutils-7.1/configure.ac.pam
+++ coreutils-7.1/configure.ac
@@ -44,6 +44,13 @@
AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
fi
+dnl Give the chance to enable PAM
+AC_ARG_ENABLE(pam, dnl
+[ --enable-pam Enable use of the PAM libraries],
+[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
+LIB_PAM="-ldl -lpam -lpam_misc"
+AC_SUBST(LIB_PAM)])
+
AC_FUNC_FORK
optional_bin_progs=

9
coreutils-provides.inc Normal file
View File

@ -0,0 +1,9 @@
Provides: bundled(gnulib)
# make it possible to install the latest available Adobe Reader RPM for Linux
Provides: /bin/cat
Provides: /bin/chmod
Provides: /bin/echo
Provides: /bin/ln
Provides: /bin/rm
Provides: /bin/touch

View File

@ -1,4 +0,0 @@
#%PAM-1.0
auth include runuser
session optional pam_keyinit.so force revoke
session include runuser

View File

@ -1,5 +0,0 @@
#%PAM-1.0
auth sufficient pam_rootok.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session required pam_unix.so

View File

@ -1,32 +1,46 @@
diff -urNp coreutils-7.1-orig/configure.ac coreutils-7.1/configure.ac
--- coreutils-7.1-orig/configure.ac 2009-02-24 13:47:15.000000000 +0100
+++ coreutils-7.1/configure.ac 2009-02-24 13:47:15.000000000 +0100
@@ -84,6 +84,13 @@ AC_ARG_ENABLE(pam, dnl
LIB_PAM="-ldl -lpam -lpam_misc"
AC_SUBST(LIB_PAM)])
From d70ddb3eb845c494280e7365e2b889242e7e1bb9 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 4 Oct 2021 08:45:53 +0200
Subject: [PATCH] coreutils-selinux.patch
---
doc/coreutils.texi | 5 +++++
man/chcon.x | 2 +-
man/runcon.x | 2 +-
src/cp.c | 16 +++++++++++++++-
src/install.c | 10 ++++++++--
5 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 6810c15..19b535c 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -8766,6 +8766,11 @@ done
exit $fail
@end example
+dnl Give the chance to enable SELINUX
+AC_ARG_ENABLE(selinux, dnl
+[ --enable-selinux Enable use of the SELINUX libraries],
+[AC_DEFINE(WITH_SELINUX, 1, [Define if you want to use SELINUX])
+LIB_SELINUX="-lselinux"
+AC_SUBST(LIB_SELINUX)])
+@item -c
+@cindex SELinux security context information, preserving
+Preserve SELinux security context of the original files if possible.
+Some file systems don't support storing of SELinux security context.
+
AC_FUNC_FORK
optional_bin_progs=
diff -urNp coreutils-7.1-orig/man/chcon.x coreutils-7.1/man/chcon.x
--- coreutils-7.1-orig/man/chcon.x 2008-09-18 09:06:57.000000000 +0200
+++ coreutils-7.1/man/chcon.x 2009-02-24 13:47:15.000000000 +0100
@item --copy-contents
@cindex directories, copying recursively
@cindex copying directories recursively
diff --git a/man/chcon.x b/man/chcon.x
index 8c1ff6f..c84fb96 100644
--- a/man/chcon.x
+++ b/man/chcon.x
@@ -1,4 +1,4 @@
[NAME]
-chcon \- change file security context
+chcon \- change file SELinux security context
[DESCRIPTION]
.\" Add any additional description here
diff -urNp coreutils-7.1-orig/man/runcon.x coreutils-7.1/man/runcon.x
--- coreutils-7.1-orig/man/runcon.x 2008-09-18 09:06:57.000000000 +0200
+++ coreutils-7.1/man/runcon.x 2009-02-24 13:47:15.000000000 +0100
diff --git a/man/runcon.x b/man/runcon.x
index d2df13e..5c5f5d8 100644
--- a/man/runcon.x
+++ b/man/runcon.x
@@ -1,5 +1,5 @@
[NAME]
-runcon \- run command with specified security context
@ -34,793 +48,89 @@ diff -urNp coreutils-7.1-orig/man/runcon.x coreutils-7.1/man/runcon.x
[DESCRIPTION]
Run COMMAND with completely-specified CONTEXT, or with current or
transitioned security context modified by one or more of LEVEL,
diff -urNp coreutils-7.1-orig/src/copy.c coreutils-7.1/src/copy.c
--- coreutils-7.1-orig/src/copy.c 2009-02-18 15:32:52.000000000 +0100
+++ coreutils-7.1/src/copy.c 2009-02-24 13:47:15.000000000 +0100
@@ -1830,6 +1830,8 @@ copy_internal (char const *src_name, cha
{
/* Here, we are crossing a file system boundary and cp's -x option
is in effect: so don't copy the contents of this directory. */
+ if (x->preserve_security_context)
+ restore_default_fscreatecon_or_die ();
}
else
{
diff -urNp coreutils-7.1-orig/src/copy.h coreutils-7.1/src/copy.h
--- coreutils-7.1-orig/src/copy.h 2009-02-18 15:32:52.000000000 +0100
+++ coreutils-7.1/src/copy.h 2009-02-24 13:47:15.000000000 +0100
@@ -140,6 +140,9 @@ struct cp_options
bool preserve_mode;
bool preserve_timestamps;
+ /* If true, attempt to set specified security context */
+ bool set_security_context;
+
/* Enabled for mv, and for cp by the --preserve=links option.
If true, attempt to preserve in the destination files any
logical hard links between the source files. If used with cp's
diff -urNp coreutils-7.1-orig/src/cp.c coreutils-7.1/src/cp.c
--- coreutils-7.1-orig/src/cp.c 2009-02-18 15:32:52.000000000 +0100
+++ coreutils-7.1/src/cp.c 2009-02-24 13:47:15.000000000 +0100
@@ -133,6 +133,7 @@ static struct option const long_opts[] =
{"target-directory", required_argument, NULL, 't'},
{"update", no_argument, NULL, 'u'},
{"verbose", no_argument, NULL, 'v'},
+ {"context", required_argument, NULL, 'Z'},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
{NULL, 0, NULL, 0}
@@ -191,6 +192,9 @@ Mandatory arguments to long options are
diff --git a/src/cp.c b/src/cp.c
index c97a675..89fb8ec 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -191,6 +191,9 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n\
additional attributes: context, links, xattr,\
\n\
all\n\
"), stdout);
fputs (_("\
+ -c same as --preserve=context\n\
+"), stdout);
+ fputs (_("\
--no-preserve=ATTR_LIST don't preserve the specified attributes\n\
--parents use full source file name under DIRECTORY\n\
+ -c deprecated, same as --preserve=context\n\
"), stdout);
@@ -216,6 +220,7 @@ Mandatory arguments to long options are
destination file is missing\n\
-v, --verbose explain what is being done\n\
-x, --one-file-system stay on this file system\n\
+ -Z, --context=CONTEXT set security context of copy to CONTEXT\n\
"), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
@@ -765,6 +770,7 @@ cp_option_init (struct cp_options *x)
x->preserve_timestamps = false;
x->preserve_security_context = false;
x->require_preserve_context = false;
+ x->set_security_context = false;
x->preserve_xattr = false;
x->reduce_diagnostics = false;
x->require_preserve_xattr = false;
@@ -911,7 +917,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
- while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:T",
+ while ((c = getopt_long (argc, argv, "abcdfHilLnprst:uvxPRS:TZ:",
long_opts, NULL))
!= -1)
{
@@ -945,6 +951,16 @@ main (int argc, char **argv)
copy_contents = true;
break;
+ case 'c':
+ if ( x.set_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
+ exit( 1 );
+ }
+ else if (selinux_enabled) {
+ x.preserve_security_context = true;
+ x.require_preserve_context = true;
+ }
+ break;
case 'd':
x.preserve_links = true;
x.dereference = DEREF_NEVER;
@@ -1054,6 +1070,27 @@ main (int argc, char **argv)
x.one_file_system = true;
break;
+
+ case 'Z':
+ /* politely decline if we're not on a selinux-enabled kernel. */
+ if( !selinux_enabled ) {
+ fprintf( stderr, "Warning: ignoring --context (-Z). "
+ "It requires a SELinux enabled kernel.\n" );
+ break;
+ }
+ if ( x.preserve_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context to '%s' and preserve it\n", argv[0], optarg);
+ exit( 1 );
+ }
+ x.set_security_context = true;
+ /* if there's a security_context given set new path
+ components to that context, too */
+ if ( setfscreatecon(optarg) < 0 ) {
+ (void) fprintf(stderr, _("cannot set default security context %s\n"), optarg);
+ exit( 1 );
+ }
+ break;
+
case 'S':
make_backups = true;
backup_suffix_string = optarg;
diff -urNp coreutils-7.1-orig/src/chcon.c coreutils-7.1/src/chcon.c
--- coreutils-7.1-orig/src/chcon.c 2008-10-12 16:12:56.000000000 +0200
+++ coreutils-7.1/src/chcon.c 2009-02-24 13:47:15.000000000 +0100
@@ -346,7 +346,7 @@ Usage: %s [OPTION]... CONTEXT FILE...\n\
"),
program_name, program_name, program_name);
fputs (_("\
-Change the security context of each FILE to CONTEXT.\n\
+Change the SELinux security context of each FILE to CONTEXT.\n\
With --reference, change the security context of each FILE to that of RFILE.\n\
\n\
-h, --no-dereference affect symbolic links instead of any referenced file\n\
diff -urNp coreutils-7.1-orig/src/id.c coreutils-7.1/src/id.c
--- coreutils-7.1-orig/src/id.c 2009-02-16 15:57:44.000000000 +0100
+++ coreutils-7.1/src/id.c 2009-02-24 13:47:15.000000000 +0100
@@ -107,7 +107,7 @@ int
main (int argc, char **argv)
{
int optc;
- int selinux_enabled = (is_selinux_enabled () > 0);
+ bool selinux_enabled = (is_selinux_enabled () > 0);
--no-preserve=ATTR_LIST don't preserve the specified attributes\n\
@@ -954,7 +957,7 @@ main (int argc, char **argv)
selinux_enabled = (0 < is_selinux_enabled ());
cp_option_init (&x);
/* If true, output the list of all group IDs. -G */
bool just_group_list = false;
diff -urNp coreutils-7.1-orig/src/install.c coreutils-7.1/src/install.c
--- coreutils-7.1-orig/src/install.c 2009-02-18 15:32:52.000000000 +0100
+++ coreutils-7.1/src/install.c 2009-02-24 13:47:15.000000000 +0100
@@ -157,11 +157,11 @@ static struct option const long_options[
{"no-target-directory", no_argument, NULL, 'T'},
{"owner", required_argument, NULL, 'o'},
{"preserve-timestamps", no_argument, NULL, 'p'},
- {"preserve-context", no_argument, NULL, PRESERVE_CONTEXT_OPTION},
+ {"preserve-context", no_argument, NULL, 'P'},
/* Continue silent support for --preserve_context until Jan 2008. FIXME-obs
After that, FIXME-obs: warn in, say, late 2008, and disable altogether
a year or two later. */
- {"preserve_context", no_argument, NULL, PRESERVE_CONTEXT_OPTION},
+ {"preserve_context", no_argument, NULL, 'P'},
{"strip", no_argument, NULL, 's'},
{"strip-program", required_argument, NULL, STRIP_PROGRAM_OPTION},
{"suffix", required_argument, NULL, 'S'},
@@ -292,6 +292,7 @@ cp_option_init (struct cp_options *x)
x->reduce_diagnostics=false;
x->require_preserve = false;
x->require_preserve_context = false;
+ x->set_security_context = false;
x->require_preserve_xattr = false;
x->recursive = false;
x->sparse_mode = SPARSE_AUTO;
@@ -469,7 +470,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
- while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pt:TvS:Z:", long_options,
+ while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pPt:TvS:Z:", long_options,
NULL)) != -1)
- while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ",
+ while ((c = getopt_long (argc, argv, "abcdfHilLnprst:uvxPRS:TZ",
long_opts, NULL))
!= -1)
{
switch (optc)
@@ -539,6 +540,7 @@ main (int argc, char **argv)
no_target_directory = true;
break;
@@ -1002,6 +1005,17 @@ main (int argc, char **argv)
copy_contents = true;
break;
+ case 'P':
case PRESERVE_CONTEXT_OPTION:
if ( ! selinux_enabled)
{
@@ -546,6 +548,10 @@ main (int argc, char **argv)
"this kernel is not SELinux-enabled"));
break;
}
+ if ( x.set_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
+ exit( 1 );
+ }
x.preserve_security_context = true;
use_default_selinux_context = false;
break;
@@ -557,6 +563,7 @@ main (int argc, char **argv)
break;
}
scontext = optarg;
+ x.set_security_context = true;
use_default_selinux_context = false;
break;
case_GETOPT_HELP_CHAR;
@@ -990,8 +997,8 @@ Mandatory arguments to long options are
+ case 'c':
+ fprintf (stderr, "%s: warning: option '-c' is deprecated, please use '--preserve=context' instead\n", argv[0]);
+ if ( x.set_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
+ exit( 1 );
+ }
+ else if (selinux_enabled) {
+ x.preserve_security_context = true;
+ x.require_preserve_context = true;
+ }
+ break;
case 'd':
x.preserve_links = true;
x.dereference = DEREF_NEVER;
diff --git a/src/install.c b/src/install.c
index c9456fe..2b1bee9 100644
--- a/src/install.c
+++ b/src/install.c
@@ -638,7 +638,7 @@ In the 4th form, create all components of the given DIRECTORY(ies).\n\
-v, --verbose print the name of each directory as it is created\n\
"), stdout);
fputs (_("\
- --preserve-context preserve SELinux security context\n\
- -Z, --context=CONTEXT set SELinux security context of files and directories\n\
+ -P, --preserve-context (SELinux) preserve security context\n\
+ -Z, --context=CONTEXT (SELinux) set security context of files and directories\n\
"), stdout);
+ -P, --preserve-context preserve SELinux security context (-P deprecated)\n\
-Z set SELinux security context of destination\n\
file and each created directory to default type\n\
--context[=CTX] like -Z, or if CTX is specified then set the\n\
@@ -790,7 +790,7 @@ main (int argc, char **argv)
dir_arg = false;
umask (0);
fputs (HELP_OPTION_DESCRIPTION, stdout);
diff -urNp coreutils-7.1-orig/src/ls.c coreutils-7.1/src/ls.c
--- coreutils-7.1-orig/src/ls.c 2009-02-20 19:34:02.000000000 +0100
+++ coreutils-7.1/src/ls.c 2009-02-24 13:47:15.000000000 +0100
@@ -136,7 +136,8 @@ enum filetype
symbolic_link,
sock,
whiteout,
- arg_directory
+ arg_directory,
+ command_line
};
/* Display letters and indicators for each filetype.
@@ -253,6 +254,7 @@ static void queue_directory (char const
static void sort_files (void);
static void parse_ls_color (void);
void usage (int status);
+static void print_scontext_format (const struct fileinfo *f);
/* Initial size of hash table.
Most hierarchies are likely to be shallower than this. */
@@ -322,7 +324,7 @@ static struct pending *pending_dirs;
static struct timespec current_time;
-static bool print_scontext;
+static int print_scontext = 0;
static char UNKNOWN_SECURITY_CONTEXT[] = "?";
/* Whether any of the files has an ACL. This affects the width of the
@@ -362,7 +364,9 @@ enum format
one_per_line, /* -1 */
many_per_line, /* -C */
horizontal, /* -x */
- with_commas /* -m */
+ with_commas, /* -m */
+ security_format, /* -Z */
+ invalid_format
};
static enum format format;
@@ -754,6 +758,9 @@ enum
SHOW_CONTROL_CHARS_OPTION,
SI_OPTION,
SORT_OPTION,
+ CONTEXT_OPTION,
+ LCONTEXT_OPTION,
+ SCONTEXT_OPTION,
TIME_OPTION,
TIME_STYLE_OPTION
};
@@ -799,7 +806,9 @@ static struct option const long_options[
{"time-style", required_argument, NULL, TIME_STYLE_OPTION},
{"color", optional_argument, NULL, COLOR_OPTION},
{"block-size", required_argument, NULL, BLOCK_SIZE_OPTION},
- {"context", no_argument, 0, 'Z'},
+ {"context", no_argument, 0, CONTEXT_OPTION},
+ {"lcontext", no_argument, 0, LCONTEXT_OPTION},
+ {"scontext", no_argument, 0, SCONTEXT_OPTION},
{"author", no_argument, NULL, AUTHOR_OPTION},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
@@ -809,12 +818,12 @@ static struct option const long_options[
static char const *const format_args[] =
{
"verbose", "long", "commas", "horizontal", "across",
- "vertical", "single-column", NULL
+ "vertical", "single-column", "context", NULL
};
static enum format const format_types[] =
{
long_format, long_format, with_commas, horizontal, horizontal,
- many_per_line, one_per_line
+ many_per_line, one_per_line, security_format
};
ARGMATCH_VERIFY (format_args, format_types);
@@ -1194,7 +1203,8 @@ main (int argc, char **argv)
/* Avoid following symbolic links when possible. */
if (is_colored (C_ORPHAN)
|| (is_colored (C_EXEC) && color_symlink_as_referent)
- || (is_colored (C_MISSING) && format == long_format))
+ || (is_colored (C_MISSING) && (format == long_format
+ || format == security_format)))
check_symlink_color = true;
/* If the standard output is a controlling terminal, watch out
@@ -1241,7 +1251,7 @@ main (int argc, char **argv)
if (dereference == DEREF_UNDEFINED)
dereference = ((immediate_dirs
|| indicator_style == classify
- || format == long_format)
+ || format == long_format || format == security_format)
? DEREF_NEVER
: DEREF_COMMAND_LINE_SYMLINK_TO_DIR);
@@ -1261,7 +1271,7 @@ main (int argc, char **argv)
format_needs_stat = sort_type == sort_time || sort_type == sort_size
|| format == long_format
- || print_scontext
+ || format == security_format || print_scontext
|| print_block_size;
format_needs_type = (! format_needs_stat
&& (recursive
@@ -1292,7 +1302,7 @@ main (int argc, char **argv)
}
else
do
- gobble_file (argv[i++], unknown, NOT_AN_INODE_NUMBER, true, "");
+ gobble_file (argv[i++], command_line, NOT_AN_INODE_NUMBER, true, "");
while (i < argc);
if (cwd_n_used)
@@ -1455,7 +1465,7 @@ decode_switches (int argc, char **argv)
ignore_mode = IGNORE_DEFAULT;
ignore_patterns = NULL;
hide_patterns = NULL;
- print_scontext = false;
+ print_scontext = 0;
/* FIXME: put this in a function. */
{
@@ -1837,13 +1847,27 @@ decode_switches (int argc, char **argv)
break;
case 'Z':
- print_scontext = true;
+ print_scontext = 1;
+ format = security_format;
break;
case_GETOPT_HELP_CHAR;
case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
+ case CONTEXT_OPTION: /* default security context format */
+ print_scontext = 1;
+ format = security_format;
+ break;
+ case LCONTEXT_OPTION: /* long format plus security context */
+ print_scontext = 1;
+ format = long_format;
+ break;
+ case SCONTEXT_OPTION: /* short form of new security format */
+ print_scontext = 0;
+ format = security_format;
+ break;
+
default:
usage (LS_FAILURE);
}
@@ -2557,8 +2581,10 @@ clear_files (void)
struct fileinfo *f = sorted_file[i];
free (f->name);
free (f->linkname);
- if (f->scontext != UNKNOWN_SECURITY_CONTEXT)
- freecon (f->scontext);
+ if (f->scontext != UNKNOWN_SECURITY_CONTEXT) {
+ freecon (f->scontext);
+ f->scontext = NULL;
+ }
}
cwd_n_used = 0;
@@ -2600,6 +2626,7 @@ gobble_file (char const *name, enum file
memset (f, '\0', sizeof *f);
f->stat.st_ino = inode;
f->filetype = type;
+ f->scontext = NULL;
if (command_line_arg
|| format_needs_stat
@@ -2699,7 +2726,7 @@ gobble_file (char const *name, enum file
f->stat_ok = true;
- if (format == long_format || print_scontext)
+ if (format == long_format || format == security_format || print_scontext)
{
bool have_selinux = false;
bool have_acl = false;
@@ -2732,7 +2760,7 @@ gobble_file (char const *name, enum file
err = 0;
}
- if (err == 0 && format == long_format)
+ if (err == 0 && (format == long_format || format == security_format))
{
int n = file_has_acl (absolute_name, &f->stat);
err = (n < 0);
@@ -2751,7 +2779,8 @@ gobble_file (char const *name, enum file
}
if (S_ISLNK (f->stat.st_mode)
- && (format == long_format || check_symlink_color))
+ && (format == long_format || format == security_format
+ || check_symlink_color))
{
char *linkname;
struct stat linkstats;
@@ -2771,6 +2800,7 @@ gobble_file (char const *name, enum file
command line are automatically traced if not being
listed as files. */
if (!command_line_arg || format == long_format
+ || format == security_format
|| !S_ISDIR (linkstats.st_mode))
{
/* Get the linked-to file's mode for the filetype indicator
@@ -2810,7 +2840,7 @@ gobble_file (char const *name, enum file
block_size_width = len;
}
- if (format == long_format)
+ if (format == long_format || format == security_format)
{
if (print_owner)
{
@@ -3312,6 +3341,13 @@ print_current_files (void)
print_long_format (sorted_file[i]);
DIRED_PUTCHAR ('\n');
}
+ break;
+ case security_format:
+ for (i = 0; i < cwd_n_used; i++)
+ {
+ print_scontext_format (sorted_file[i]);
+ DIRED_PUTCHAR ('\n');
+ }
break;
}
}
@@ -3434,6 +3470,69 @@ format_group_width (gid_t g)
}
+/* Print info about f in scontext format */
+static void
+print_scontext_format (const struct fileinfo *f)
+{
+ char modebuf[12];
+
+ /* 7 fields that may require LONGEST_HUMAN_READABLE bytes,
+ 1 10-byte mode string,
+ 9 spaces, one following each of these fields, and
+ 1 trailing NUL byte. */
+
+ char init_bigbuf[7 * LONGEST_HUMAN_READABLE + 10 + 9 + 1];
+ char *buf = init_bigbuf;
+ char *p;
+
+ p = buf;
+
+ if ( print_scontext ) { /* zero means terse listing */
+ filemodestring (&f->stat, modebuf);
+ if (! any_has_acl)
+ modebuf[10] = '\0';
+ else if (f->acl_type == ACL_T_SELINUX_ONLY)
+ modebuf[10] = '.';
+ else if (f->acl_type == ACL_T_YES)
+ modebuf[10] = '+';
+ modebuf[11] = '\0';
+
+ /* print mode */
+
+ (void) sprintf (p, "%s ", modebuf);
+ p += strlen (p);
+
+ /* print standard user and group */
+
+ DIRED_FPUTS (buf, stdout, p - buf);
+ format_user (f->stat.st_uid, owner_width, f->stat_ok);
+ format_group (f->stat.st_gid, group_width, f->stat_ok);
+ p = buf;
+ }
+
+ (void) sprintf (p, "%-32s ", f->scontext ?: "");
+ p += strlen (p);
+
+ DIRED_INDENT ();
+ DIRED_FPUTS (buf, stdout, p - buf);
+ size_t w = print_name_with_quoting (f->name, FILE_OR_LINK_MODE(f), f->linkok,
+ f->stat_ok, f->filetype, &dired_obstack, f->stat.st_nlink, p - buf);
+
+ if (f->filetype == symbolic_link) {
+ if (f->linkname) {
+ DIRED_FPUTS_LITERAL (" -> ", stdout);
+ print_name_with_quoting (f->linkname, f->linkmode, f->linkok - 1,
+ f->stat_ok, f->filetype, NULL, f->stat.st_nlink, (p-buf) + w + 4 );
+ if (indicator_style != none)
+ print_type_indicator (f->stat_ok, f->linkmode, f->filetype);
+ }
+ }
+ else {
+ if (indicator_style != none)
+ print_type_indicator (f->stat_ok, f->stat.st_mode, f->filetype);
+ }
+}
+
/* Print information about F in long format. */
static void
@@ -3528,9 +3627,15 @@ print_long_format (const struct fileinfo
The latter is wrong when nlink_width is zero. */
p += strlen (p);
+ if (print_scontext)
+ {
+ sprintf (p, "%-32s ", f->scontext ? f->scontext : "");
+ p += strlen (p);
+ }
+
DIRED_INDENT ();
- if (print_owner | print_group | print_author | print_scontext)
+ if (print_owner | print_group | print_author)
- while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pt:TvS:Z", long_options,
+ while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pPt:TvS:Z", long_options,
NULL)) != -1)
{
DIRED_FPUTS (buf, stdout, p - buf);
@@ -3543,9 +3648,6 @@ print_long_format (const struct fileinfo
if (print_author)
format_user (f->stat.st_author, author_width, f->stat_ok);
- if (print_scontext)
- format_user_or_group (f->scontext, 0, scontext_width);
-
p = buf;
}
@@ -3888,9 +3990,6 @@ print_file_name_and_frills (const struct
human_readable (ST_NBLOCKS (f->stat), buf, human_output_opts,
ST_NBLOCKSIZE, output_block_size));
- if (print_scontext)
- printf ("%*s ", format == with_commas ? 0 : scontext_width, f->scontext);
-
size_t width = print_name_with_quoting (f->name, FILE_OR_LINK_MODE (f),
f->linkok, f->stat_ok, f->filetype,
NULL, f->stat.st_nlink, start_col);
@@ -4105,9 +4204,6 @@ length_of_file_name_and_frills (const st
output_block_size))
: block_size_width);
- if (print_scontext)
- len += 1 + (format == with_commas ? strlen (f->scontext) : scontext_width);
-
quote_name (NULL, f->name, filename_quoting_options, &name_width);
len += name_width;
@@ -4538,9 +4634,16 @@ Mandatory arguments to long options are
-w, --width=COLS assume screen width instead of current value\n\
-x list entries by lines instead of by columns\n\
-X sort alphabetically by entry extension\n\
- -Z, --context print any SELinux security context of each file\n\
-1 list one file per line\n\
"), stdout);
+ fputs(_("\nSELinux options:\n\n\
+ --lcontext Display security context. Enable -l. Lines\n\
+ will probably be too wide for most displays.\n\
+ -Z, --context Display security context so it fits on most\n\
+ displays. Displays only mode, user, group,\n\
+ security context and file name.\n\
+ --scontext Display only security context and file name.\n\
+"), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
fputs (_("\n\
diff -urNp coreutils-7.1-orig/src/mkdir.c coreutils-7.1/src/mkdir.c
--- coreutils-7.1-orig/src/mkdir.c 2008-10-19 21:47:57.000000000 +0200
+++ coreutils-7.1/src/mkdir.c 2009-02-24 13:47:15.000000000 +0100
@@ -38,6 +38,7 @@
static struct option const longopts[] =
{
{GETOPT_SELINUX_CONTEXT_OPTION_DECL},
+ {"context", required_argument, NULL, 'Z'},
{"mode", required_argument, NULL, 'm'},
{"parents", no_argument, NULL, 'p'},
{"verbose", no_argument, NULL, 'v'},
diff -urNp coreutils-7.1-orig/src/mknod.c coreutils-7.1/src/mknod.c
--- coreutils-7.1-orig/src/mknod.c 2008-09-22 16:01:21.000000000 +0200
+++ coreutils-7.1/src/mknod.c 2009-02-24 13:47:15.000000000 +0100
@@ -35,7 +35,7 @@
static struct option const longopts[] =
{
- {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
+ {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
{"mode", required_argument, NULL, 'm'},
{GETOPT_HELP_OPTION_DECL},
{GETOPT_VERSION_OPTION_DECL},
diff -urNp coreutils-7.1-orig/src/mv.c coreutils-7.1/src/mv.c
--- coreutils-7.1-orig/src/mv.c 2009-02-18 15:32:52.000000000 +0100
+++ coreutils-7.1/src/mv.c 2009-02-24 13:47:15.000000000 +0100
@@ -122,6 +122,7 @@ cp_option_init (struct cp_options *x)
x->preserve_mode = true;
x->preserve_timestamps = true;
x->preserve_security_context = selinux_enabled;
+ x->set_security_context = false;
x->reduce_diagnostics = false;
x->require_preserve = false; /* FIXME: maybe make this an option */
x->require_preserve_context = false;
diff -urNp coreutils-7.1-orig/src/runcon.c coreutils-7.1/src/runcon.c
--- coreutils-7.1-orig/src/runcon.c 2008-09-18 09:06:57.000000000 +0200
+++ coreutils-7.1/src/runcon.c 2009-02-24 13:47:15.000000000 +0100
@@ -86,7 +86,7 @@ Usage: %s CONTEXT COMMAND [args]\n\
or: %s [ -c ] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]\n\
"), program_name, program_name);
fputs (_("\
-Run a program in a different security context.\n\
+Run a program in a different SELinux security context.\n\
With neither CONTEXT nor COMMAND, print the current security context.\n\
\n\
CONTEXT Complete security context\n\
diff -urNp coreutils-7.1-orig/src/stat.c coreutils-7.1/src/stat.c
--- coreutils-7.1-orig/src/stat.c 2009-01-27 22:11:25.000000000 +0100
+++ coreutils-7.1/src/stat.c 2009-02-24 13:47:15.000000000 +0100
@@ -825,7 +825,7 @@ print_it (char const *format, char const
/* Stat the file system and print what we find. */
static bool
-do_statfs (char const *filename, bool terse, char const *format)
+do_statfs (char const *filename, bool terse, bool secure, char const *format)
{
STRUCT_STATVFS statfsbuf;
@@ -837,15 +837,31 @@ do_statfs (char const *filename, bool te
}
if (format == NULL)
+ {
+ if (terse)
{
- format = (terse
- ? "%n %i %l %t %s %S %b %f %a %c %d\n"
- : " File: \"%n\"\n"
- " ID: %-8i Namelen: %-7l Type: %T\n"
- "Block size: %-10s Fundamental block size: %S\n"
- "Blocks: Total: %-10b Free: %-10f Available: %a\n"
- "Inodes: Total: %-10c Free: %d\n");
+ if (secure)
+ format = "%n %i %l %t %s %S %b %f %a %c %d %C\n";
+ else
+ format = "%n %i %l %t %s %S %b %f %a %c %d\n";
}
+ else
+ {
+ if (secure)
+ format = " File: \"%n\"\n"
+ " ID: %-8i Namelen: %-7l Type: %T\n"
+ "Block size: %-10s Fundamental block size: %S\n"
+ "Blocks: Total: %-10b Free: %-10f Available: %a\n"
+ "Inodes: Total: %-10c Free: %d\n"
+ " S_Context: %C\n";
+ else
+ format = " File: \"%n\"\n"
+ " ID: %-8i Namelen: %-7l Type: %T\n"
+ "Block size: %-10s Fundamental block size: %S\n"
+ "Blocks: Total: %-10b Free: %-10f Available: %a\n"
+ "Inodes: Total: %-10c Free: %d\n";
+ }
+ }
print_it (format, filename, print_statfs, &statfsbuf);
return true;
@@ -853,7 +869,7 @@ do_statfs (char const *filename, bool te
/* stat the file and print what we find */
static bool
-do_stat (char const *filename, bool terse, char const *format)
+do_stat (char const *filename, bool terse, bool secure, char const *format)
{
struct stat statbuf;
@@ -866,9 +882,12 @@ do_stat (char const *filename, bool ters
if (format == NULL)
{
if (terse)
- {
- format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o\n";
- }
+ {
+ if (secure)
+ format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o %C\n";
+ else
+ format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o\n";
+ }
else
{
/* Temporary hack to match original output until conditional
@@ -885,12 +904,22 @@ do_stat (char const *filename, bool ters
}
else
{
- format =
- " File: %N\n"
- " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n"
- "Device: %Dh/%dd\tInode: %-10i Links: %h\n"
- "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n"
- "Access: %x\n" "Modify: %y\n" "Change: %z\n";
+ if (secure)
+ format =
+ " File: %N\n"
+ " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n"
+ "Device: %Dh/%dd\tInode: %-10i Links: %-5h"
+ " Device type: %t,%T\n"
+ "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n"
+ " S_Context: %C\n"
+ "Access: %x\n" "Modify: %y\n" "Change: %z\n";
+ else
+ format =
+ " File: %N\n"
+ " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n"
+ "Device: %Dh/%dd\tInode: %-10i Links: %h\n"
+ "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n"
+ "Access: %x\n" "Modify: %y\n" "Change: %z\n";
}
}
}
@@ -911,6 +940,7 @@ usage (int status)
Display file or file system status.\n\
\n\
-L, --dereference follow links\n\
+ -Z, --context print the SELinux security context \n\
-f, --file-system display file system status instead of file status\n\
"), stdout);
fputs (_("\
@@ -995,6 +1025,7 @@ main (int argc, char *argv[])
int i;
bool fs = false;
bool terse = false;
+ bool secure = false;
char *format = NULL;
bool ok = true;
@@ -1034,13 +1065,13 @@ main (int argc, char *argv[])
terse = true;
break;
- case 'Z': /* FIXME: remove in 2010 */
- /* Ignore, for compatibility with distributions
- that implemented this before upstream.
- But warn of impending removal. */
- error (0, 0,
- _("the --context (-Z) option is obsolete and will be removed\n"
- "in a future release"));
+ case 'Z':
+ if((is_selinux_enabled()>0))
+ secure = 1;
+ else {
+ error (0, 0, _("Kernel is not SELinux enabled"));
+ usage (EXIT_FAILURE);
+ }
break;
case_GETOPT_HELP_CHAR;
@@ -1060,8 +1091,8 @@ main (int argc, char *argv[])
for (i = optind; i < argc; i++)
ok &= (fs
- ? do_statfs (argv[i], terse, format)
- : do_stat (argv[i], terse, format));
+ ? do_statfs (argv[i], terse, secure, format)
+ : do_stat (argv[i], terse, secure, format));
exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
diff -urNp coreutils-7.1-orig/tests/misc/selinux coreutils-7.1/tests/misc/selinux
--- coreutils-7.1-orig/tests/misc/selinux 2008-10-25 14:20:26.000000000 +0200
+++ coreutils-7.1/tests/misc/selinux 2009-02-24 13:47:15.000000000 +0100
@@ -30,7 +30,7 @@ chcon $ctx f d p ||
# inspect that context with both ls -Z and stat.
for i in d f p; do
- c=`ls -dogZ $i|cut -d' ' -f3`; test x$c = x$ctx || fail=1
+ c=`ls -dogZ $i|cut -d' ' -f5`; test x$c = x$ctx || fail=1
c=`stat --printf %C $i`; test x$c = x$ctx || fail=1
done
switch (optc)
@@ -851,6 +851,8 @@ main (int argc, char **argv)
no_target_directory = true;
break;
+ case 'P':
+ fprintf (stderr, "%s: warning: option '-P' is deprecated, please use '--preserve-context' instead\n", argv[0]);
case PRESERVE_CONTEXT_OPTION:
if (! selinux_enabled)
{
@@ -858,6 +860,10 @@ main (int argc, char **argv)
"this kernel is not SELinux-enabled"));
break;
}
+ if ( x.set_security_context ) {
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
+ exit( 1 );
+ }
x.preserve_security_context = true;
use_default_selinux_context = false;
break;
--
2.31.1

View File

@ -1,15 +0,0 @@
diff -urNp coreutils-6.10-orig/doc/coreutils.texi coreutils-6.10/doc/coreutils.texi
--- coreutils-6.10-orig/doc/coreutils.texi 2008-04-07 17:52:11.000000000 +0200
+++ coreutils-6.10/doc/coreutils.texi 2008-04-07 18:01:43.000000000 +0200
@@ -6981,6 +6981,11 @@ for i; do
done
@end example
+@item -c
+@cindex SELinux security context information, preserving
+Preserve SELinux security context of the original files if possible.
+Some file systems don't support storing of SELinux security context.
+
@item --copy-contents
@cindex directories, copying recursively
@cindex copying directories recursively

View File

@ -1,96 +0,0 @@
--- coreutils-6.7/src/su.c.setsid 2007-01-09 17:26:26.000000000 +0000
+++ coreutils-6.7/src/su.c 2007-01-09 17:26:57.000000000 +0000
@@ -176,9 +176,13 @@
/* If true, change some environment vars to indicate the user su'd to. */
static bool change_environment;
+/* If true, then don't call setsid() with a command. */
+int same_session = 0;
+
static struct option const longopts[] =
{
{"command", required_argument, NULL, 'c'},
+ {"session-command", required_argument, NULL, 'C'},
{"fast", no_argument, NULL, 'f'},
{"login", no_argument, NULL, 'l'},
{"preserve-environment", no_argument, NULL, 'p'},
@@ -478,6 +482,8 @@
if (child == 0) { /* child shell */
change_identity (pw);
pam_end(pamh, 0);
+ if (!same_session)
+ setsid ();
#endif
if (simulate_login)
@@ -532,13 +538,27 @@
sigemptyset(&action.sa_mask);
action.sa_flags = 0;
sigemptyset(&ourset);
- if (sigaddset(&ourset, SIGTERM)
- || sigaddset(&ourset, SIGALRM)
- || sigaction(SIGTERM, &action, NULL)
- || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
+ if (!same_session)
+ {
+ if (sigaddset(&ourset, SIGINT) || sigaddset(&ourset, SIGQUIT))
+ {
+ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
+ caught = 1;
+ }
+ }
+ if (!caught && (sigaddset(&ourset, SIGTERM)
+ || sigaddset(&ourset, SIGALRM)
+ || sigaction(SIGTERM, &action, NULL)
+ || sigprocmask(SIG_UNBLOCK, &ourset, NULL))) {
fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
caught = 1;
}
+ if (!caught && !same_session && (sigaction(SIGINT, &action, NULL)
+ || sigaction(SIGQUIT, &action, NULL)))
+ {
+ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
+ caught = 1;
+ }
}
if (!caught) {
do {
@@ -609,6 +629,8 @@
\n\
-, -l, --login make the shell a login shell\n\
-c, --command=COMMAND pass a single COMMAND to the shell with -c\n\
+ --session-command=COMMAND pass a single COMMAND to the shell with -c\n\
+ and do not create a new session\n\
-f, --fast pass -f to the shell (for csh or tcsh)\n\
-m, --preserve-environment do not reset environment variables\n\
-p same as -m\n\
@@ -631,6 +653,7 @@
int optc;
const char *new_user = DEFAULT_USER;
char *command = NULL;
+ int request_same_session = 0;
char *shell = NULL;
struct passwd *pw;
struct passwd pw_copy;
@@ -656,6 +679,11 @@
command = optarg;
break;
+ case 'C':
+ command = optarg;
+ request_same_session = 1;
+ break;
+
case 'f':
fast_startup = true;
break;
@@ -725,6 +753,9 @@
}
#endif
+ if (request_same_session || !command || !pw->pw_uid)
+ same_session = 1;
+
if (!shell && !change_environment)
shell = getenv ("SHELL");
if (shell && getuid () != 0 && restricted_shell (pw->pw_shell))

View File

@ -1,57 +0,0 @@
diff -uNrp -x '*~' coreutils-5.97-orig/src/su.c coreutils-5.97/src/su.c
--- coreutils-5.97-orig/src/su.c 2006-07-13 12:14:40.000000000 +0100
+++ coreutils-5.97/src/su.c 2006-07-13 12:24:33.000000000 +0100
@@ -131,11 +131,15 @@
#include "error.h"
-/* The official name of this program (e.g., no `g' prefix). */
+/* The official name of this program (e.g., no `g' prefix).
+ * - Add a "-l" to the name passed to PAM if this is a login simulation
+ */
#ifndef RUNUSER
#define PROGRAM_NAME "su"
+#define PROGRAM_NAME_L "su-l"
#else
#define PROGRAM_NAME "runuser"
+#define PROGRAM_NAME_L "runuser-l"
#endif
#ifndef AUTHORS
@@ -310,7 +314,8 @@ correct_password (const struct passwd *p
#ifdef USE_PAM
struct passwd *caller;
char *tty_name, *ttyn;
- retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
+ retval = pam_start(simulate_login ? PROGRAM_NAME_L : PROGRAM_NAME,
+ pw->pw_name, &conv, &pamh);
PAM_BAIL_P;
#ifndef RUNUSER
diff -urp coreutils-6.10-orig/doc/coreutils.info coreutils-6.10/doc/coreutils.info
--- coreutils-6.10-orig/doc/coreutils.info 2008-01-22 00:32:44.000000000 +0100
+++ coreutils-6.10/doc/coreutils.info 2008-01-24 17:17:04.000000000 +0100
@@ -11006,7 +11006,8 @@ options::.
set, even for the super-user, as described above), and set `PATH'
to a compiled-in default value. Change to USER's home directory.
Prepend `-' to the shell's name, intended to make it read its
- login startup file(s).
+ login startup file(s). When this option is given, /etc/pam.d/su-l
+ PAM file is used instead of the default one.
`-m'
`-p'
diff -urp coreutils-6.10-orig/doc/coreutils.texi coreutils-6.10/doc/coreutils.texi
--- coreutils-6.10-orig/doc/coreutils.texi 2008-01-24 16:50:57.000000000 +0100
+++ coreutils-6.10/doc/coreutils.texi 2008-01-24 17:12:58.000000000 +0100
@@ -13670,7 +13670,9 @@ the exit status of @var{command} otherwi
@command{su} allows one user to temporarily become another user. It runs a
command (often an interactive shell) with the real and effective user
-ID, group ID, and supplemental groups of a given @var{user}. Synopsis:
+ID, group ID, and supplemental groups of a given @var{user}. When the -l
+option is given, the su-l PAM file is used instead of the default su PAM file.
+Synopsis:
@example
su [@var{option}]@dots{} [@var{user} [@var{arg}]@dots{}]

View File

@ -1,6 +0,0 @@
#%PAM-1.0
auth include su
account include su
password include su
session optional pam_keyinit.so force revoke
session include su

View File

@ -1,12 +0,0 @@
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth include system-auth
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
commit 7347caeb9d902d3fca2c11f69a55a3e578d93bfe
Author: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed Apr 20 19:34:57 2022 -0700
backupfile: fix bug when renaming simple backups
* lib/backupfile.c (backupfile_internal): Fix bug when RENAME
and when doing simple backups. Problem reported by Steve Ward in:
https://bugs.gnu.org/55029
diff --git a/lib/backupfile.c b/lib/backupfile.c
index 1e9290a187..d9f465a3e0 100644
--- a/lib/backupfile.c
+++ b/lib/backupfile.c
@@ -332,7 +332,7 @@ backupfile_internal (int dir_fd, char const *file,
return s;
DIR *dirp = NULL;
- int sdir = AT_FDCWD;
+ int sdir = dir_fd;
idx_t base_max = 0;
while (true)
{
@@ -371,10 +371,9 @@ backupfile_internal (int dir_fd, char const *file,
if (! rename)
break;
- int olddirfd = sdir < 0 ? dir_fd : sdir;
- idx_t offset = sdir < 0 ? 0 : base_offset;
+ idx_t offset = backup_type == simple_backups ? 0 : base_offset;
unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE;
- if (renameatu (olddirfd, file + offset, sdir, s + offset, flags) == 0)
+ if (renameatu (sdir, file + offset, sdir, s + offset, flags) == 0)
break;
int e = errno;
if (! (e == EEXIST && extended))

View File

@ -1,18 +0,0 @@
--- sh-utils-1.16/src/su.c.badpaths Mon Apr 14 14:26:55 1997
+++ sh-utils-1.16/src/su.c Sun Aug 17 14:11:31 EDT 2003
@@ -147,6 +147,15 @@
# define DEFAULT_ROOT_LOGIN_PATH "/usr/ucb:/bin:/usr/bin:/etc"
#endif
+/* The default paths which get set are both bogus and oddly influenced
+ by <paths.h> and -D on the commands line. Just to be clear, we'll set
+ these explicitly. -ewt */
+#undef DEFAULT_LOGIN_PATH
+#undef DEFAULT_ROOT_LOGIN_PATH
+#define DEFAULT_LOGIN_PATH "/usr/local/bin:/bin:/usr/bin"
+#define DEFAULT_ROOT_LOGIN_PATH \
+ "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
+
/* The shell to run if none is given in the user's passwd entry. */
#define DEFAULT_SHELL "/bin/sh"

View File

@ -1,7 +1,7 @@
diff -urNp coreutils-5.97-orig/man/date.x coreutils-5.97/man/date.x
--- coreutils-5.97-orig/man/date.x 1999-11-02 15:07:36.000000000 +0100
+++ coreutils-5.97/man/date.x 2008-10-15 10:13:31.000000000 +0200
@@ -11,3 +11,8 @@
@@ -11,3 +11,8 @@ calendar date, time of day, time zone, day of week, relative time,
relative date, and numbers. An empty string indicates the beginning
of the day. The date string format is more complex than is easily
documented here but is fully described in the info documentation.

View File

@ -1 +1,2 @@
427c2914d3eab956f317c9ec6a45e62a coreutils-7.2.tar.gz
SHA512 (coreutils-9.1.tar.xz.sig) = 9f0766531afd4faa3e2c337730f61db55605cf06729e9c61f644594883732c2e0b1ddb0005b492be309c53e6f45b8ff875398163a48699d52517ea49e9bdbc91
SHA512 (coreutils-9.1.tar.xz) = a6ee2c549140b189e8c1b35e119d4289ec27244ec0ed9da0ac55202f365a7e33778b1dc7c4e64d1669599ff81a8297fe4f5adbcc8a3a2f75c919a43cd4b9bdfa

105
supported_utils Normal file
View File

@ -0,0 +1,105 @@
%{_bindir}/arch
%{_bindir}/b2sum
%{_bindir}/basename
%{_bindir}/basenc
%{_bindir}/cat
%{_bindir}/chgrp
%{_bindir}/chmod
%{_bindir}/chown
%{_bindir}/cp
%{_bindir}/cut
%{_bindir}/date
%{_bindir}/dd
%{_bindir}/df
%{_bindir}/echo
%{_bindir}/env
%{_bindir}/false
%{_bindir}/link
%{_bindir}/ln
%{_bindir}/ls
%{_bindir}/mkdir
%{_bindir}/mknod
%{_bindir}/mv
%{_bindir}/nice
%{_bindir}/pwd
%{_bindir}/readlink
%{_bindir}/rm
%{_bindir}/rmdir
%{_bindir}/sleep
%{_bindir}/sort
%{_bindir}/stty
%{_bindir}/sync
%{_bindir}/mktemp
%{_bindir}/touch
%{_bindir}/true
%{_bindir}/uname
%{_bindir}/unlink
%{_bindir}/[
%{_bindir}/base32
%{_bindir}/base64
%{_bindir}/chcon
%{_bindir}/cksum
%{_bindir}/comm
%{_bindir}/csplit
%{_bindir}/dir
%{_bindir}/dircolors
%{_bindir}/dirname
%{_bindir}/du
%{_bindir}/expand
%{_bindir}/expr
%{_bindir}/factor
%{_bindir}/fmt
%{_bindir}/fold
%{_bindir}/groups
%{_bindir}/head
%{_bindir}/hostid
%{_bindir}/id
%{_bindir}/install
%{_bindir}/join
%{_bindir}/logname
%{_bindir}/md5sum
%{_bindir}/mkfifo
%{_bindir}/nl
%{_bindir}/nohup
%{_bindir}/nproc
%{_bindir}/numfmt
%{_bindir}/od
%{_bindir}/paste
%{_bindir}/pathchk
%{_bindir}/pinky
%{_bindir}/pr
%{_bindir}/printenv
%{_bindir}/printf
%{_bindir}/ptx
%{_bindir}/realpath
%{_bindir}/runcon
%{_bindir}/seq
%{_bindir}/sha1sum
%{_bindir}/sha224sum
%{_bindir}/sha256sum
%{_bindir}/sha384sum
%{_bindir}/sha512sum
%{_bindir}/shred
%{_bindir}/shuf
%{_bindir}/split
%{_bindir}/stat
%{_bindir}/stdbuf
%{_bindir}/sum
%{_bindir}/tac
%{_bindir}/tail
%{_bindir}/tee
%{_bindir}/test
%{_bindir}/timeout
%{_bindir}/tr
%{_bindir}/truncate
%{_bindir}/tsort
%{_bindir}/tty
%{_bindir}/unexpand
%{_bindir}/uniq
%{_bindir}/users
%{_bindir}/vdir
%{_bindir}/wc
%{_bindir}/who
%{_bindir}/whoami
%{_bindir}/yes
%{_sbindir}/chroot

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlink s
# Description: Test for readlink cannot handle recursive symlinks
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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 version 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Jan Scotka <jscotka@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for readlink cannot handle recursive symlinks" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: coreutils" >> $(METADATA)
@echo "Requires: coreutils" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,54 @@
PURPOSE of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
Description: Test for readlink cannot handle recursive symlinks
Author: Jan Scotka <jscotka@redhat.com>
Bug summary: readlink cannot handle recursive symlinks
Description:
Description of problem:
The readlink command fails with an error "Too many levels of symbolic links", even if there are only 2 levels.
The readlink command from RHEL 3 and RHEL 4 and from Fedora 11 all work fine.
Among other changes between RHEL 4 and RHEL 5, RHEL 5's coreutils added calls to cycle_check() in lib/canonicalize.c, but in upstream canonicalize.c (now in gnulib instead of coreutils), we see the comment:
/* Detect loops. We cannot use the cycle-check module here,
since it's actually possible to encounter the same symlink
more than once in a given traversal. However, encountering
the same symlink,NAME pair twice does indicate a loop. */
http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/canonicalize.c;h=4f348398fd69ae516396313d18ac294a4ca3dde3;hb=b653eda3ac4864de205419d9f41eec267cb89eeb#l262
The latest canonicalize.c uses seen_triple() instead of cycle_check().
Version-Release number of selected component (if applicable):
coreutils-5.97-19.el5
How reproducible:
every time
Steps to Reproduce:
1. Create a directory with a symlink to itself
mkdir /tmp/dir
cd /tmp/dir
ln -s ../dir dirlink
2. Run readlink using the 'dirlink' symlink recursively
readlink -v -f dirlink
readlink -v -f dirlink/dirlink
readlink -v -f dirlink/dirlink/dirlink
Actual results:
The first readlink command on just dirlink succeeds, but the 2nd and 3rd commands fail with
readlink: dirlink/dirlink: Too many levels of symbolic links
Expected results:
$ readlink -v -f dirlink
/tmp/dir
$ readlink -v -f dirlink/dirlink
/tmp/dir
$ readlink -v -f dirlink/dirlink/dirlink
/tmp/dir
Additional info:

View File

@ -0,0 +1,60 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
# Description: Test for readlink cannot handle recursive symlinks
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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 version 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="coreutils"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlRun "mkdir link" 0 "Creating test directory"
rlRun "cd link" 0 "cd to this dir"
rlRun "ln -s ../link link" 0 "creating symlink to ../link -> link"
rlPhaseEnd
rlPhaseStartTest
rlLog "Test of readlink up to 20 iteration"
export TMPVAR="link"
for foo in `seq 20`
do echo $TMPVAR
rlRun "readlink -v -f $TMPVAR" 0 "readlink of $TMPVAR"
TMPVAR="$TMPVAR/link"
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

39
tests/test-basics Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
# Checks that touch ls rm and foo work
# https://www.mankier.com/1/beakerlib#Examples
. /usr/share/beakerlib/beakerlib.sh
# Set the full test name
TEST="/examples/beakerlib/Sanity/phases"
# Package being tested
PACKAGE="coreutils"
rlJournalStart
# Setup phase: Prepare test directory
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun 'TmpDir=$(mktemp -d)' 0 'Creating tmp directory' # no-reboot
rlRun "pushd $TmpDir"
rlPhaseEnd
# Test phase: Testing touch, ls and rm commands
rlPhaseStartTest
rlRun "touch foo" 0 "Creating the foo test file"
rlAssertExists "foo"
rlRun "ls -l foo" 0 "Listing the foo test file"
rlRun "rm foo" 0 "Removing the foo test file"
rlAssertNotExists "foo"
rlRun "ls -l foo" 2 "Listing foo should now report an error"
rlPhaseEnd
# Cleanup phase: Remove test directory
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalEnd
# Print the test report
rlJournalPrintText

9
tests/test_basics.yml Normal file
View File

@ -0,0 +1,9 @@
---
# This first play always runs on the local staging system
- hosts: localhost
tags:
- atomic
- classic
- container
roles:
- { role: standard-test-beakerlib, tests: [ test-basics, readlink-cannot-handle-recursive-symlinks ] }

2
tests/tests.yml Normal file
View File

@ -0,0 +1,2 @@
# Fedora Continuous Integration: https://fedoraproject.org/wiki/CI
- include: test_basics.yml

View File

@ -1,123 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)
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
Ke4=
=zRdO
-----END PGP PUBLIC KEY BLOCK-----