commit
23fc0e2c8a
@ -1,20 +0,0 @@
|
|||||||
diff --git a/src/date.c b/src/date.c
|
|
||||||
index ddb011e..619a72b 100644
|
|
||||||
--- a/src/date.c
|
|
||||||
+++ b/src/date.c
|
|
||||||
@@ -490,14 +490,7 @@ main (int argc, char **argv)
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
diff --git a/src/md5sum.c b/src/md5sum.c
|
|
||||||
index 8e21609..a857d62 100644
|
|
||||||
--- a/src/md5sum.c
|
|
||||||
+++ b/src/md5sum.c
|
|
||||||
@@ -265,6 +265,9 @@ Print or check %s (%d-bit) checksums.\n\
|
|
||||||
else
|
|
||||||
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 (_("\
|
|
||||||
-z, --zero end each output line with NUL, not newline,\n\
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
diff --git a/src/uname.c b/src/uname.c
|
|
||||||
index 6371ca2..1ad8fd7 100644
|
|
||||||
--- a/src/uname.c
|
|
||||||
+++ b/src/uname.c
|
|
||||||
@@ -300,13 +300,19 @@ main (int argc, char **argv)
|
|
||||||
|
|
||||||
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
|
|
||||||
+ {
|
|
||||||
+ static struct utsname u;
|
|
||||||
+ uname(&u);
|
|
||||||
+ element = u.machine;
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
#ifdef UNAME_PROCESSOR
|
|
||||||
if (element == unknown)
|
|
||||||
@@ -344,7 +350,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];
|
|
||||||
@@ -352,6 +358,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)
|
|
||||||
@ -1,686 +0,0 @@
|
|||||||
From a13bc34f1eeebdf8b87e4b5a570341bb77a62f76 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 | 41 ++++---
|
|
||||||
DIR_COLORS.256color | 300 ++++++++++++++++++++++++------------------------
|
|
||||||
DIR_COLORS.lightbgcolor | 211 ++++++++++++++++++----------------
|
|
||||||
3 files changed, 283 insertions(+), 269 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/DIR_COLORS b/DIR_COLORS
|
|
||||||
index d2ea453..27af9d7 100644
|
|
||||||
--- a/DIR_COLORS
|
|
||||||
+++ b/DIR_COLORS
|
|
||||||
@@ -1,6 +1,10 @@
|
|
||||||
# Configuration file for dircolors, a utility to help you set the
|
|
||||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
|
||||||
|
|
||||||
+# 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.
|
|
||||||
+
|
|
||||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
|
||||||
# Copying and distribution of this file, with or without modification,
|
|
||||||
# are permitted provided the copyright notice and this notice are preserved.
|
|
||||||
@@ -8,6 +12,9 @@
|
|
||||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
|
||||||
# slackware version of dircolors) are recognized but ignored.
|
|
||||||
|
|
||||||
+# 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 entries, which can be a glob patterns, to match
|
|
||||||
# against the TERM environment variable to determine if it is colorizable.
|
|
||||||
TERM Eterm
|
|
||||||
@@ -56,7 +63,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;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
|
|
||||||
@@ -184,21 +191,21 @@ EXEC 01;32
|
|
||||||
.ogx 01;35
|
|
||||||
|
|
||||||
# audio formats
|
|
||||||
-.aac 00;36
|
|
||||||
-.au 00;36
|
|
||||||
-.flac 00;36
|
|
||||||
-.m4a 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
|
|
||||||
+.aac 01;36
|
|
||||||
+.au 01;36
|
|
||||||
+.flac 01;36
|
|
||||||
+.m4a 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
|
|
||||||
|
|
||||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
|
||||||
-.oga 00;36
|
|
||||||
-.opus 00;36
|
|
||||||
-.spx 00;36
|
|
||||||
-.xspf 00;36
|
|
||||||
+.oga 01;36
|
|
||||||
+.opus 01;36
|
|
||||||
+.spx 01;36
|
|
||||||
+.xspf 01;36
|
|
||||||
diff --git a/DIR_COLORS.256color b/DIR_COLORS.256color
|
|
||||||
index d2ea453..74c34ba 100644
|
|
||||||
--- a/DIR_COLORS.256color
|
|
||||||
+++ b/DIR_COLORS.256color
|
|
||||||
@@ -1,3 +1,9 @@
|
|
||||||
+# Configuration file for the 256color ls utility
|
|
||||||
+
|
|
||||||
+# 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.
|
|
||||||
|
|
||||||
@@ -8,32 +14,13 @@
|
|
||||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
|
||||||
# slackware version of dircolors) are recognized but ignored.
|
|
||||||
|
|
||||||
+# 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 entries, which can be a glob patterns, to match
|
|
||||||
# against the TERM environment variable to determine if it is colorizable.
|
|
||||||
-TERM Eterm
|
|
||||||
-TERM ansi
|
|
||||||
-TERM *color*
|
|
||||||
-TERM con[0-9]*x[0-9]*
|
|
||||||
-TERM cons25
|
|
||||||
-TERM console
|
|
||||||
-TERM cygwin
|
|
||||||
-TERM dtterm
|
|
||||||
-TERM gnome
|
|
||||||
-TERM hurd
|
|
||||||
-TERM jfbterm
|
|
||||||
-TERM konsole
|
|
||||||
-TERM kterm
|
|
||||||
-TERM linux
|
|
||||||
-TERM linux-c
|
|
||||||
-TERM mlterm
|
|
||||||
-TERM putty
|
|
||||||
-TERM rxvt*
|
|
||||||
-TERM screen*
|
|
||||||
-TERM st
|
|
||||||
-TERM terminator
|
|
||||||
-TERM tmux*
|
|
||||||
-TERM vt100
|
|
||||||
-TERM xterm*
|
|
||||||
+TERM *256color*
|
|
||||||
+TERM rxvt-unicode256
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
@@ -43,29 +30,40 @@ TERM xterm*
|
|
||||||
# 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
|
|
||||||
+# 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 # 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 38;5;33 # directory
|
|
||||||
+LINK 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.)
|
|
||||||
MULTIHARDLINK 00 # 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 00 # ... 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
|
|
||||||
+FIFO 40;38;5;11 # pipe
|
|
||||||
+SOCK 38;5;13 # socket
|
|
||||||
+DOOR 38;5;5 # door
|
|
||||||
+BLK 48;5;232;38;5;11 # block device driver
|
|
||||||
+CHR 48;5;232;38;5;3 # character device driver
|
|
||||||
+ORPHAN 48;5;232;38;5;9 # symlink to nonexistent file, or non-stat'able file ...
|
|
||||||
+MISSING 01;05;37;41 # ... 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;32
|
|
||||||
+EXEC 38;5;40
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
@@ -83,122 +81,122 @@ EXEC 01;32
|
|
||||||
#.csh 01;32
|
|
||||||
|
|
||||||
# archives or compressed (bright red)
|
|
||||||
-.tar 01;31
|
|
||||||
-.tgz 01;31
|
|
||||||
-.arc 01;31
|
|
||||||
-.arj 01;31
|
|
||||||
-.taz 01;31
|
|
||||||
-.lha 01;31
|
|
||||||
-.lz4 01;31
|
|
||||||
-.lzh 01;31
|
|
||||||
-.lzma 01;31
|
|
||||||
-.tlz 01;31
|
|
||||||
-.txz 01;31
|
|
||||||
-.tzo 01;31
|
|
||||||
-.t7z 01;31
|
|
||||||
-.zip 01;31
|
|
||||||
-.z 01;31
|
|
||||||
-.dz 01;31
|
|
||||||
-.gz 01;31
|
|
||||||
-.lrz 01;31
|
|
||||||
-.lz 01;31
|
|
||||||
-.lzo 01;31
|
|
||||||
-.xz 01;31
|
|
||||||
-.zst 01;31
|
|
||||||
-.tzst 01;31
|
|
||||||
-.bz2 01;31
|
|
||||||
-.bz 01;31
|
|
||||||
-.tbz 01;31
|
|
||||||
-.tbz2 01;31
|
|
||||||
-.tz 01;31
|
|
||||||
-.deb 01;31
|
|
||||||
-.rpm 01;31
|
|
||||||
-.jar 01;31
|
|
||||||
-.war 01;31
|
|
||||||
-.ear 01;31
|
|
||||||
-.sar 01;31
|
|
||||||
-.rar 01;31
|
|
||||||
-.alz 01;31
|
|
||||||
-.ace 01;31
|
|
||||||
-.zoo 01;31
|
|
||||||
-.cpio 01;31
|
|
||||||
-.7z 01;31
|
|
||||||
-.rz 01;31
|
|
||||||
-.cab 01;31
|
|
||||||
-.wim 01;31
|
|
||||||
-.swm 01;31
|
|
||||||
-.dwm 01;31
|
|
||||||
-.esd 01;31
|
|
||||||
+.tar 38;5;9
|
|
||||||
+.tgz 38;5;9
|
|
||||||
+.arc 38;5;9
|
|
||||||
+.arj 38;5;9
|
|
||||||
+.taz 38;5;9
|
|
||||||
+.lha 38;5;9
|
|
||||||
+.lz4 38;5;9
|
|
||||||
+.lzh 38;5;9
|
|
||||||
+.lzma 38;5;9
|
|
||||||
+.tlz 38;5;9
|
|
||||||
+.txz 38;5;9
|
|
||||||
+.tzo 38;5;9
|
|
||||||
+.t7z 38;5;9
|
|
||||||
+.zip 38;5;9
|
|
||||||
+.z 38;5;9
|
|
||||||
+.dz 38;5;9
|
|
||||||
+.gz 38;5;9
|
|
||||||
+.lrz 38;5;9
|
|
||||||
+.lz 38;5;9
|
|
||||||
+.lzo 38;5;9
|
|
||||||
+.xz 38;5;9
|
|
||||||
+.zst 38;5;9
|
|
||||||
+.tzst 38;5;9
|
|
||||||
+.bz2 38;5;9
|
|
||||||
+.bz 38;5;9
|
|
||||||
+.tbz 38;5;9
|
|
||||||
+.tbz2 38;5;9
|
|
||||||
+.tz 38;5;9
|
|
||||||
+.deb 38;5;9
|
|
||||||
+.rpm 38;5;9
|
|
||||||
+.jar 38;5;9
|
|
||||||
+.war 38;5;9
|
|
||||||
+.ear 38;5;9
|
|
||||||
+.sar 38;5;9
|
|
||||||
+.rar 38;5;9
|
|
||||||
+.alz 38;5;9
|
|
||||||
+.ace 38;5;9
|
|
||||||
+.zoo 38;5;9
|
|
||||||
+.cpio 38;5;9
|
|
||||||
+.7z 38;5;9
|
|
||||||
+.rz 38;5;9
|
|
||||||
+.cab 38;5;9
|
|
||||||
+.wim 38;5;9
|
|
||||||
+.swm 38;5;9
|
|
||||||
+.dwm 38;5;9
|
|
||||||
+.esd 38;5;9
|
|
||||||
|
|
||||||
# image formats
|
|
||||||
-.jpg 01;35
|
|
||||||
-.jpeg 01;35
|
|
||||||
-.mjpg 01;35
|
|
||||||
-.mjpeg 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
|
|
||||||
-.svg 01;35
|
|
||||||
-.svgz 01;35
|
|
||||||
-.mng 01;35
|
|
||||||
-.pcx 01;35
|
|
||||||
-.mov 01;35
|
|
||||||
-.mpg 01;35
|
|
||||||
-.mpeg 01;35
|
|
||||||
-.m2v 01;35
|
|
||||||
-.mkv 01;35
|
|
||||||
-.webm 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
|
|
||||||
-.cgm 01;35
|
|
||||||
-.emf 01;35
|
|
||||||
+.jpg 38;5;13
|
|
||||||
+.jpeg 38;5;13
|
|
||||||
+.mjpg 38;5;13
|
|
||||||
+.mjpeg 38;5;13
|
|
||||||
+.gif 38;5;13
|
|
||||||
+.bmp 38;5;13
|
|
||||||
+.pbm 38;5;13
|
|
||||||
+.pgm 38;5;13
|
|
||||||
+.ppm 38;5;13
|
|
||||||
+.tga 38;5;13
|
|
||||||
+.xbm 38;5;13
|
|
||||||
+.xpm 38;5;13
|
|
||||||
+.tif 38;5;13
|
|
||||||
+.tiff 38;5;13
|
|
||||||
+.png 38;5;13
|
|
||||||
+.svg 38;5;13
|
|
||||||
+.svgz 38;5;13
|
|
||||||
+.mng 38;5;13
|
|
||||||
+.pcx 38;5;13
|
|
||||||
+.mov 38;5;13
|
|
||||||
+.mpg 38;5;13
|
|
||||||
+.mpeg 38;5;13
|
|
||||||
+.m2v 38;5;13
|
|
||||||
+.mkv 38;5;13
|
|
||||||
+.webm 38;5;13
|
|
||||||
+.ogm 38;5;13
|
|
||||||
+.mp4 38;5;13
|
|
||||||
+.m4v 38;5;13
|
|
||||||
+.mp4v 38;5;13
|
|
||||||
+.vob 38;5;13
|
|
||||||
+.qt 38;5;13
|
|
||||||
+.nuv 38;5;13
|
|
||||||
+.wmv 38;5;13
|
|
||||||
+.asf 38;5;13
|
|
||||||
+.rm 38;5;13
|
|
||||||
+.rmvb 38;5;13
|
|
||||||
+.flc 38;5;13
|
|
||||||
+.avi 38;5;13
|
|
||||||
+.fli 38;5;13
|
|
||||||
+.flv 38;5;13
|
|
||||||
+.gl 38;5;13
|
|
||||||
+.dl 38;5;13
|
|
||||||
+.xcf 38;5;13
|
|
||||||
+.xwd 38;5;13
|
|
||||||
+.yuv 38;5;13
|
|
||||||
+.cgm 38;5;13
|
|
||||||
+.emf 38;5;13
|
|
||||||
|
|
||||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
|
||||||
-.ogv 01;35
|
|
||||||
-.ogx 01;35
|
|
||||||
+.ogv 38;5;13
|
|
||||||
+.ogx 38;5;13
|
|
||||||
|
|
||||||
# audio formats
|
|
||||||
-.aac 00;36
|
|
||||||
-.au 00;36
|
|
||||||
-.flac 00;36
|
|
||||||
-.m4a 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
|
|
||||||
+.aac 38;5;45
|
|
||||||
+.au 38;5;45
|
|
||||||
+.flac 38;5;45
|
|
||||||
+.m4a 38;5;45
|
|
||||||
+.mid 38;5;45
|
|
||||||
+.midi 38;5;45
|
|
||||||
+.mka 38;5;45
|
|
||||||
+.mp3 38;5;45
|
|
||||||
+.mpc 38;5;45
|
|
||||||
+.ogg 38;5;45
|
|
||||||
+.ra 38;5;45
|
|
||||||
+.wav 38;5;45
|
|
||||||
|
|
||||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
|
||||||
-.oga 00;36
|
|
||||||
-.opus 00;36
|
|
||||||
-.spx 00;36
|
|
||||||
-.xspf 00;36
|
|
||||||
+.oga 38;5;45
|
|
||||||
+.opus 38;5;45
|
|
||||||
+.spx 38;5;45
|
|
||||||
+.xspf 38;5;45
|
|
||||||
diff --git a/DIR_COLORS.lightbgcolor b/DIR_COLORS.lightbgcolor
|
|
||||||
index d2ea453..95d6879 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.
|
|
||||||
|
|
||||||
@@ -8,6 +14,9 @@
|
|
||||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
|
||||||
# slackware version of dircolors) are recognized but ignored.
|
|
||||||
|
|
||||||
+# 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 entries, which can be a glob patterns, to match
|
|
||||||
# against the TERM environment variable to determine if it is colorizable.
|
|
||||||
TERM Eterm
|
|
||||||
@@ -46,17 +55,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;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
|
|
||||||
@@ -65,7 +74,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 colorize below. Put the extension, a space, and the color init string.
|
|
||||||
@@ -83,105 +92,105 @@ EXEC 01;32
|
|
||||||
#.csh 01;32
|
|
||||||
|
|
||||||
# archives or compressed (bright red)
|
|
||||||
-.tar 01;31
|
|
||||||
-.tgz 01;31
|
|
||||||
-.arc 01;31
|
|
||||||
-.arj 01;31
|
|
||||||
-.taz 01;31
|
|
||||||
-.lha 01;31
|
|
||||||
-.lz4 01;31
|
|
||||||
-.lzh 01;31
|
|
||||||
-.lzma 01;31
|
|
||||||
-.tlz 01;31
|
|
||||||
-.txz 01;31
|
|
||||||
-.tzo 01;31
|
|
||||||
-.t7z 01;31
|
|
||||||
-.zip 01;31
|
|
||||||
-.z 01;31
|
|
||||||
-.dz 01;31
|
|
||||||
-.gz 01;31
|
|
||||||
-.lrz 01;31
|
|
||||||
-.lz 01;31
|
|
||||||
-.lzo 01;31
|
|
||||||
-.xz 01;31
|
|
||||||
-.zst 01;31
|
|
||||||
-.tzst 01;31
|
|
||||||
-.bz2 01;31
|
|
||||||
-.bz 01;31
|
|
||||||
-.tbz 01;31
|
|
||||||
-.tbz2 01;31
|
|
||||||
-.tz 01;31
|
|
||||||
-.deb 01;31
|
|
||||||
-.rpm 01;31
|
|
||||||
-.jar 01;31
|
|
||||||
-.war 01;31
|
|
||||||
-.ear 01;31
|
|
||||||
-.sar 01;31
|
|
||||||
-.rar 01;31
|
|
||||||
-.alz 01;31
|
|
||||||
-.ace 01;31
|
|
||||||
-.zoo 01;31
|
|
||||||
-.cpio 01;31
|
|
||||||
-.7z 01;31
|
|
||||||
-.rz 01;31
|
|
||||||
-.cab 01;31
|
|
||||||
-.wim 01;31
|
|
||||||
-.swm 01;31
|
|
||||||
-.dwm 01;31
|
|
||||||
-.esd 01;31
|
|
||||||
+.tar 00;31
|
|
||||||
+.tgz 00;31
|
|
||||||
+.arc 00;31
|
|
||||||
+.arj 00;31
|
|
||||||
+.taz 00;31
|
|
||||||
+.lha 00;31
|
|
||||||
+.lz4 00;31
|
|
||||||
+.lzh 00;31
|
|
||||||
+.lzma 00;31
|
|
||||||
+.tlz 00;31
|
|
||||||
+.txz 00;31
|
|
||||||
+.tzo 00;31
|
|
||||||
+.t7z 00;31
|
|
||||||
+.zip 00;31
|
|
||||||
+.z 00;31
|
|
||||||
+.dz 00;31
|
|
||||||
+.gz 00;31
|
|
||||||
+.lrz 00;31
|
|
||||||
+.lz 00;31
|
|
||||||
+.lzo 00;31
|
|
||||||
+.xz 00;31
|
|
||||||
+.zst 00;31
|
|
||||||
+.tzst 00;31
|
|
||||||
+.bz2 00;31
|
|
||||||
+.bz 00;31
|
|
||||||
+.tbz 00;31
|
|
||||||
+.tbz2 00;31
|
|
||||||
+.tz 00;31
|
|
||||||
+.deb 00;31
|
|
||||||
+.rpm 00;31
|
|
||||||
+.jar 00;31
|
|
||||||
+.war 00;31
|
|
||||||
+.ear 00;31
|
|
||||||
+.sar 00;31
|
|
||||||
+.rar 00;31
|
|
||||||
+.alz 00;31
|
|
||||||
+.ace 00;31
|
|
||||||
+.zoo 00;31
|
|
||||||
+.cpio 00;31
|
|
||||||
+.7z 00;31
|
|
||||||
+.rz 00;31
|
|
||||||
+.cab 00;31
|
|
||||||
+.wim 00;31
|
|
||||||
+.swm 00;31
|
|
||||||
+.dwm 00;31
|
|
||||||
+.esd 00;31
|
|
||||||
|
|
||||||
# image formats
|
|
||||||
-.jpg 01;35
|
|
||||||
-.jpeg 01;35
|
|
||||||
-.mjpg 01;35
|
|
||||||
-.mjpeg 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
|
|
||||||
-.svg 01;35
|
|
||||||
-.svgz 01;35
|
|
||||||
-.mng 01;35
|
|
||||||
-.pcx 01;35
|
|
||||||
-.mov 01;35
|
|
||||||
-.mpg 01;35
|
|
||||||
-.mpeg 01;35
|
|
||||||
-.m2v 01;35
|
|
||||||
-.mkv 01;35
|
|
||||||
-.webm 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
|
|
||||||
-.cgm 01;35
|
|
||||||
-.emf 01;35
|
|
||||||
+.jpg 00;35
|
|
||||||
+.jpeg 00;35
|
|
||||||
+.mjpg 00;35
|
|
||||||
+.mjpeg 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
|
|
||||||
+.svg 00;35
|
|
||||||
+.svgz 00;35
|
|
||||||
+.mng 00;35
|
|
||||||
+.pcx 00;35
|
|
||||||
+.mov 00;35
|
|
||||||
+.mpg 00;35
|
|
||||||
+.mpeg 00;35
|
|
||||||
+.m2v 00;35
|
|
||||||
+.mkv 00;35
|
|
||||||
+.webm 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
|
|
||||||
+.cgm 00;35
|
|
||||||
+.emf 00;35
|
|
||||||
|
|
||||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
|
||||||
-.ogv 01;35
|
|
||||||
-.ogx 01;35
|
|
||||||
+.ogv 00;35
|
|
||||||
+.ogx 00;35
|
|
||||||
|
|
||||||
# audio formats
|
|
||||||
.aac 00;36
|
|
||||||
--
|
|
||||||
2.5.5
|
|
||||||
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
@ -1,451 +0,0 @@
|
|||||||
From 57ee8db4fee8eb6772df1ff18d275594c0b034d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
|
||||||
Date: Thu, 5 Jul 2018 09:22:09 -0700
|
|
||||||
Subject: [PATCH 1/2] renameatu: rename from renameat2
|
|
||||||
|
|
||||||
It's looking like Glibc will add a renameat2 function
|
|
||||||
that is incompatible with Gnulib renameat2; see:
|
|
||||||
https://sourceware.org/ml/libc-alpha/2018-07/msg00064.html
|
|
||||||
To help avoid future confusion, rename renameat2 to something else.
|
|
||||||
Use the name 'renameatu', as the Gnulib function is close to the
|
|
||||||
Glibc function. Perhaps someday there will also be a renameat2
|
|
||||||
Gnulib module, which mimicks the future glibc renameat2, but that
|
|
||||||
can wait as nobody seems to need such a module now.
|
|
||||||
* NEWS: Mention this.
|
|
||||||
* lib/renameatu.c: Rename from lib/renameat2.c.
|
|
||||||
* lib/renameatu.h: Rename from lib/renameat2.h.
|
|
||||||
* modules/renameatu: Rename from modules/renameat2.
|
|
||||||
* modules/renameatu-tests: Rename from modules/renameat2-tests.
|
|
||||||
All uses of "renameat2" in identifiers or file name
|
|
||||||
changed to "renameatu", except for two instances in
|
|
||||||
lib/renameatu.c that deal with the Linux kernel's
|
|
||||||
renameat2 syscall.
|
|
||||||
|
|
||||||
Upstream-commit: 2522322e5304e7d86c63e607e2bc83c8d8b0a889
|
|
||||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
---
|
|
||||||
gnulib-tests/gnulib.mk | 12 +++---
|
|
||||||
.../{test-renameat2.c => test-renameatu.c} | 48 +++++++++++-----------
|
|
||||||
lib/backupfile.c | 4 +-
|
|
||||||
lib/gnulib.mk | 10 ++---
|
|
||||||
lib/renameat.c | 4 +-
|
|
||||||
lib/{renameat2.c => renameatu.c} | 9 ++--
|
|
||||||
lib/{renameat2.h => renameatu.h} | 8 ++--
|
|
||||||
7 files changed, 48 insertions(+), 47 deletions(-)
|
|
||||||
rename gnulib-tests/{test-renameat2.c => test-renameatu.c} (80%)
|
|
||||||
rename lib/{renameat2.c => renameatu.c} (94%)
|
|
||||||
rename lib/{renameat2.h => renameatu.h} (84%)
|
|
||||||
|
|
||||||
diff --git a/gnulib-tests/gnulib.mk b/gnulib-tests/gnulib.mk
|
|
||||||
index be2b99e..891425b 100644
|
|
||||||
--- a/gnulib-tests/gnulib.mk
|
|
||||||
+++ b/gnulib-tests/gnulib.mk
|
|
||||||
@@ -1750,14 +1750,14 @@ EXTRA_DIST += test-rename.h test-renameat.c signature.h macros.h
|
|
||||||
|
|
||||||
## end gnulib module renameat-tests
|
|
||||||
|
|
||||||
-## begin gnulib module renameat2-tests
|
|
||||||
+## begin gnulib module renameatu-tests
|
|
||||||
|
|
||||||
-TESTS += test-renameat2
|
|
||||||
-check_PROGRAMS += test-renameat2
|
|
||||||
-test_renameat2_LDADD = $(LDADD) @LIBINTL@
|
|
||||||
-EXTRA_DIST += test-rename.h test-renameat2.c signature.h macros.h
|
|
||||||
+TESTS += test-renameatu
|
|
||||||
+check_PROGRAMS += test-renameatu
|
|
||||||
+test_renameatu_LDADD = $(LDADD) @LIBINTL@
|
|
||||||
+EXTRA_DIST += test-rename.h test-renameatu.c signature.h macros.h
|
|
||||||
|
|
||||||
-## end gnulib module renameat2-tests
|
|
||||||
+## end gnulib module renameatu-tests
|
|
||||||
|
|
||||||
## begin gnulib module rmdir-tests
|
|
||||||
|
|
||||||
diff --git a/gnulib-tests/test-renameat2.c b/gnulib-tests/test-renameatu.c
|
|
||||||
similarity index 80%
|
|
||||||
rename from gnulib-tests/test-renameat2.c
|
|
||||||
rename to gnulib-tests/test-renameatu.c
|
|
||||||
index 0104890..988428b 100644
|
|
||||||
--- a/gnulib-tests/test-renameat2.c
|
|
||||||
+++ b/gnulib-tests/test-renameatu.c
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-/* Test renameat2.
|
|
||||||
+/* Test renameatu.
|
|
||||||
Copyright (C) 2009-2018 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
@@ -18,12 +18,12 @@
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
-#include <renameat2.h>
|
|
||||||
+#include <renameatu.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "signature.h"
|
|
||||||
-SIGNATURE_CHECK (renameat2, int,
|
|
||||||
+SIGNATURE_CHECK (renameatu, int,
|
|
||||||
(int, char const *, int, char const *, unsigned int));
|
|
||||||
|
|
||||||
#include <dirent.h>
|
|
||||||
@@ -39,18 +39,18 @@ SIGNATURE_CHECK (renameat2, int,
|
|
||||||
#include "ignore-value.h"
|
|
||||||
#include "macros.h"
|
|
||||||
|
|
||||||
-#define BASE "test-renameat2.t"
|
|
||||||
+#define BASE "test-renameatu.t"
|
|
||||||
|
|
||||||
#include "test-rename.h"
|
|
||||||
|
|
||||||
static int dfd1 = AT_FDCWD;
|
|
||||||
static int dfd2 = AT_FDCWD;
|
|
||||||
|
|
||||||
-/* Wrapper to test renameat2 like rename. */
|
|
||||||
+/* Wrapper to test renameatu like rename. */
|
|
||||||
static int
|
|
||||||
do_rename (char const *name1, char const *name2)
|
|
||||||
{
|
|
||||||
- return renameat2 (dfd1, name1, dfd2, name2, 0);
|
|
||||||
+ return renameatu (dfd1, name1, dfd2, name2, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
@@ -67,24 +67,24 @@ main (void)
|
|
||||||
/* Test behaviour for invalid file descriptors. */
|
|
||||||
{
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (-1, "foo", AT_FDCWD, "bar", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (-1, "foo", AT_FDCWD, "bar", 0) == -1);
|
|
||||||
ASSERT (errno == EBADF);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
close (99);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (99, "foo", AT_FDCWD, "bar", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (99, "foo", AT_FDCWD, "bar", 0) == -1);
|
|
||||||
ASSERT (errno == EBADF);
|
|
||||||
}
|
|
||||||
ASSERT (close (creat (BASE "oo", 0600)) == 0);
|
|
||||||
{
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (AT_FDCWD, BASE "oo", -1, "bar", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (AT_FDCWD, BASE "oo", -1, "bar", 0) == -1);
|
|
||||||
ASSERT (errno == EBADF);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (AT_FDCWD, BASE "oo", 99, "bar", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (AT_FDCWD, BASE "oo", 99, "bar", 0) == -1);
|
|
||||||
ASSERT (errno == EBADF);
|
|
||||||
}
|
|
||||||
ASSERT (unlink (BASE "oo") == 0);
|
|
||||||
@@ -133,13 +133,13 @@ main (void)
|
|
||||||
|
|
||||||
ASSERT (sprintf (strchr (file1, '\0') - 2, "%02d", i) == 2);
|
|
||||||
ASSERT (sprintf (strchr (file2, '\0') - 2, "%02d", i + 1) == 2);
|
|
||||||
- ASSERT (renameat2 (fd1, file1, fd2, file2, 0) == 0);
|
|
||||||
+ ASSERT (renameatu (fd1, file1, fd2, file2, 0) == 0);
|
|
||||||
free (file1);
|
|
||||||
free (file2);
|
|
||||||
}
|
|
||||||
dfd2 = open ("..", O_RDONLY);
|
|
||||||
ASSERT (0 <= dfd2);
|
|
||||||
- ASSERT (renameat2 (dfd, "../" BASE "16", dfd2, BASE "17", 0) == 0);
|
|
||||||
+ ASSERT (renameatu (dfd, "../" BASE "16", dfd2, BASE "17", 0) == 0);
|
|
||||||
ASSERT (close (dfd2) == 0);
|
|
||||||
|
|
||||||
/* Now we change back to the parent directory, and set dfd to ".";
|
|
||||||
@@ -152,47 +152,47 @@ main (void)
|
|
||||||
|
|
||||||
ASSERT (close (creat (BASE "sub2/file", 0600)) == 0);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "sub1", dfd, BASE "sub2", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "sub1", dfd, BASE "sub2", 0) == -1);
|
|
||||||
ASSERT (errno == EEXIST || errno == ENOTEMPTY);
|
|
||||||
ASSERT (unlink (BASE "sub2/file") == 0);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "sub2", dfd, BASE "sub1/.", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "sub2", dfd, BASE "sub1/.", 0) == -1);
|
|
||||||
ASSERT (errno == EINVAL || errno == EISDIR || errno == EBUSY
|
|
||||||
|| errno == ENOTEMPTY || errno == EEXIST
|
|
||||||
|| errno == ENOENT /* WSL */);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "sub2/.", dfd, BASE "sub1", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "sub2/.", dfd, BASE "sub1", 0) == -1);
|
|
||||||
ASSERT (errno == EINVAL || errno == EBUSY || errno == EEXIST
|
|
||||||
|| errno == ENOENT /* WSL */);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "17", dfd, BASE "sub1", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "17", dfd, BASE "sub1", 0) == -1);
|
|
||||||
ASSERT (errno == EISDIR);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "nosuch", dfd, BASE "18", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "nosuch", dfd, BASE "18", 0) == -1);
|
|
||||||
ASSERT (errno == ENOENT);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, "", dfd, BASE "17", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, "", dfd, BASE "17", 0) == -1);
|
|
||||||
ASSERT (errno == ENOENT);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "17", dfd, "", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "17", dfd, "", 0) == -1);
|
|
||||||
ASSERT (errno == ENOENT);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "sub2", dfd, BASE "17", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "sub2", dfd, BASE "17", 0) == -1);
|
|
||||||
ASSERT (errno == ENOTDIR);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "17/", dfd, BASE "18", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "17/", dfd, BASE "18", 0) == -1);
|
|
||||||
ASSERT (errno == ENOTDIR);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT (renameat2 (dfd, BASE "17", dfd, BASE "18/", 0) == -1);
|
|
||||||
+ ASSERT (renameatu (dfd, BASE "17", dfd, BASE "18/", 0) == -1);
|
|
||||||
ASSERT (errno == ENOTDIR || errno == ENOENT);
|
|
||||||
|
|
||||||
/* Finally, make sure we cannot overwrite existing files. */
|
|
||||||
ASSERT (close (creat (BASE "sub2/file", 0600)) == 0);
|
|
||||||
errno = 0;
|
|
||||||
- ASSERT ((renameat2 (dfd, BASE "sub2", dfd, BASE "sub1", RENAME_NOREPLACE)
|
|
||||||
+ ASSERT ((renameatu (dfd, BASE "sub2", dfd, BASE "sub1", RENAME_NOREPLACE)
|
|
||||||
== -1)
|
|
||||||
&& errno == EEXIST);
|
|
||||||
- ASSERT ((renameat2 (dfd, BASE "sub2/file", dfd, BASE "17", RENAME_NOREPLACE)
|
|
||||||
+ ASSERT ((renameatu (dfd, BASE "sub2/file", dfd, BASE "17", RENAME_NOREPLACE)
|
|
||||||
== -1)
|
|
||||||
&& errno == EEXIST);
|
|
||||||
|
|
||||||
diff --git a/lib/backupfile.c b/lib/backupfile.c
|
|
||||||
index d438455..637be6c 100644
|
|
||||||
--- a/lib/backupfile.c
|
|
||||||
+++ b/lib/backupfile.c
|
|
||||||
@@ -23,7 +23,7 @@
|
|
||||||
#include "backup-internal.h"
|
|
||||||
|
|
||||||
#include "dirname.h"
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
#include "xalloc-oversized.h"
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
@@ -353,7 +353,7 @@ backupfile_internal (char const *file, enum backup_type backup_type, bool rename
|
|
||||||
base_offset = 0;
|
|
||||||
}
|
|
||||||
unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE;
|
|
||||||
- if (renameat2 (AT_FDCWD, file, sdir, s + base_offset, flags) == 0)
|
|
||||||
+ if (renameatu (AT_FDCWD, file, sdir, s + base_offset, flags) == 0)
|
|
||||||
break;
|
|
||||||
int e = errno;
|
|
||||||
if (e != EEXIST)
|
|
||||||
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
|
|
||||||
index 04473d5..0b747e3 100644
|
|
||||||
--- a/lib/gnulib.mk
|
|
||||||
+++ b/lib/gnulib.mk
|
|
||||||
@@ -21,7 +21,7 @@
|
|
||||||
# the same distribution terms as the rest of that program.
|
|
||||||
#
|
|
||||||
# Generated by gnulib-tool.
|
|
||||||
-# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl acl alignof alloca announce-gen areadlink-with-size argmatch argv-iter assert autobuild backup-rename backupfile base32 base64 buffer-lcm c-strcase c-strtod c-strtold calloc-gnu canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type di-set diacrit dirfd dirname do-release-commit-and-tag dtoastr dup2 environ error euidaccess exclude exitfail explicit_bzero faccessat fadvise fchdir fchmodat fchownat fclose fcntl fcntl-safer fd-reopen fdatasync fdl fdopen fdutimensat file-has-acl file-type fileblocks filemode filenamecat filevercmp flexmember fnmatch-gnu fopen-safer fprintftime freopen freopen-safer fseeko fstatat fsusage fsync ftoastr ftruncate fts full-read full-write getgroups gethrxtime getline getloadavg getlogin getndelim2 getopt-gnu getpagesize getpass-gnu gettext-h gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload group-member hard-locale hash hash-pjw heap host-os human idcache ignore-value inttostr inttypes isapipe isatty isblank largefile lchmod lchown ldtoastr lib-ignore linebuffer link link-follow linkat long-options lstat maintainer-makefile malloc-gnu manywarnings mbrlen mbrtowc mbsalign mbschr mbslen mbswidth memcasecmp memchr memcmp2 mempcpy memrchr mgetgroups mkancesdirs mkdir mkdir-p mkfifo mknod mkostemp mkstemp mktime modechange mountlist mpsort netinet_in non-recursive-gnulib-prefix-hack nproc nstrftime obstack open parse-datetime pathmax perl physmem pipe-posix pipe2 posix-shell posixtm posixver priv-set progname propername pthread putenv quote quotearg randint randperm read-file readlink readtokens readtokens0 readutmp realloc-gnu regex remove rename renameat renameat2 rmdir root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at setenv settime sig2str sigaction smack ssize_t stat-macros stat-size stat-time statat stdbool stdlib-safer stpcpy stpncpy strdup-posix strncat strnumcmp strsignal strtod strtoimax strtoumax symlinkat sys_ioctl sys_resource sys_stat sys_wait tempname termios time_rz timer-time timespec tzset uname unicodeio unistd-safer unlink-busy unlinkat unlocked-io unsetenv update-copyright uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf wchar-single wcswidth wcwidth winsz-ioctl winsz-termios write-any-file xalloc xbinary-io xdectoint xfts xgetcwd xgetgroups xgethostname xmemcoll xnanosleep xprintf xprintf-posix xreadlink xstrtod xstrtoimax xstrtol xstrtold xstrtoumax year2038 yesno
|
|
||||||
+# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libcoreutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=canonicalize-lgpl --avoid=dummy --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl acl alignof alloca announce-gen areadlink-with-size argmatch argv-iter assert autobuild backup-rename backupfile base32 base64 buffer-lcm c-strcase c-strtod c-strtold calloc-gnu canon-host canonicalize chown cloexec closein closeout config-h configmake crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 cycle-check d-ino d-type di-set diacrit dirfd dirname do-release-commit-and-tag dtoastr dup2 environ error euidaccess exclude exitfail explicit_bzero faccessat fadvise fchdir fchmodat fchownat fclose fcntl fcntl-safer fd-reopen fdatasync fdl fdopen fdutimensat file-has-acl file-type fileblocks filemode filenamecat filevercmp flexmember fnmatch-gnu fopen-safer fprintftime freopen freopen-safer fseeko fstatat fsusage fsync ftoastr ftruncate fts full-read full-write getgroups gethrxtime getline getloadavg getlogin getndelim2 getopt-gnu getpagesize getpass-gnu gettext-h gettime gettimeofday getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload group-member hard-locale hash hash-pjw heap host-os human idcache ignore-value inttostr inttypes isapipe isatty isblank largefile lchmod lchown ldtoastr lib-ignore linebuffer link link-follow linkat long-options lstat maintainer-makefile malloc-gnu manywarnings mbrlen mbrtowc mbsalign mbschr mbslen mbswidth memcasecmp memchr memcmp2 mempcpy memrchr mgetgroups mkancesdirs mkdir mkdir-p mkfifo mknod mkostemp mkstemp mktime modechange mountlist mpsort netinet_in non-recursive-gnulib-prefix-hack nproc nstrftime obstack open parse-datetime pathmax perl physmem pipe-posix pipe2 posix-shell posixtm posixver priv-set progname propername pthread putenv quote quotearg randint randperm read-file readlink readtokens readtokens0 readutmp realloc-gnu regex remove rename renameat renameatu rmdir root-dev-ino rpmatch safe-read same save-cwd savedir savewd selinux-at setenv settime sig2str sigaction smack ssize_t stat-macros stat-size stat-time statat stdbool stdlib-safer stpcpy stpncpy strdup-posix strncat strnumcmp strsignal strtod strtoimax strtoumax symlinkat sys_ioctl sys_resource sys_stat sys_wait tempname termios time_rz timer-time timespec tzset uname unicodeio unistd-safer unlink-busy unlinkat unlocked-io unsetenv update-copyright uptime useless-if-before-free userspec utimecmp utimens vasprintf-posix vc-list-files verify verror version-etc-fsf wchar-single wcswidth wcwidth winsz-ioctl winsz-termios write-any-file xalloc xbinary-io xdectoint xfts xgetcwd xgetgroups xgethostname xmemcoll xnanosleep xprintf xprintf-posix xreadlink xstrtod xstrtoimax xstrtol xstrtold xstrtoumax year2038 yesno
|
|
||||||
|
|
||||||
|
|
||||||
MOSTLYCLEANFILES += lib/core lib/*.stackdump
|
|
||||||
@@ -3218,15 +3218,15 @@ EXTRA_lib_libcoreutils_a_SOURCES += lib/renameat.c
|
|
||||||
|
|
||||||
## end gnulib module renameat
|
|
||||||
|
|
||||||
-## begin gnulib module renameat2
|
|
||||||
+## begin gnulib module renameatu
|
|
||||||
|
|
||||||
-lib_libcoreutils_a_SOURCES += lib/renameat2.c
|
|
||||||
+lib_libcoreutils_a_SOURCES += lib/renameatu.c
|
|
||||||
|
|
||||||
-EXTRA_DIST += lib/at-func2.c lib/renameat2.h
|
|
||||||
+EXTRA_DIST += lib/at-func2.c lib/renameatu.h
|
|
||||||
|
|
||||||
EXTRA_lib_libcoreutils_a_SOURCES += lib/at-func2.c
|
|
||||||
|
|
||||||
-## end gnulib module renameat2
|
|
||||||
+## end gnulib module renameatu
|
|
||||||
|
|
||||||
## begin gnulib module rewinddir
|
|
||||||
|
|
||||||
diff --git a/lib/renameat.c b/lib/renameat.c
|
|
||||||
index 0cb7d33..67be22b 100644
|
|
||||||
--- a/lib/renameat.c
|
|
||||||
+++ b/lib/renameat.c
|
|
||||||
@@ -16,10 +16,10 @@
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
renameat (int fd1, char const *src, int fd2, char const *dst)
|
|
||||||
{
|
|
||||||
- return renameat2 (fd1, src, fd2, dst, 0);
|
|
||||||
+ return renameatu (fd1, src, fd2, dst, 0);
|
|
||||||
}
|
|
||||||
diff --git a/lib/renameat2.c b/lib/renameatu.c
|
|
||||||
similarity index 94%
|
|
||||||
rename from lib/renameat2.c
|
|
||||||
rename to lib/renameatu.c
|
|
||||||
index a295ec3..b013ad6 100644
|
|
||||||
--- a/lib/renameat2.c
|
|
||||||
+++ b/lib/renameatu.c
|
|
||||||
@@ -18,7 +18,7 @@
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
@@ -68,10 +68,13 @@ rename_noreplace (char const *src, char const *dst)
|
|
||||||
the restore_cwd fails, then give a diagnostic and exit nonzero.
|
|
||||||
|
|
||||||
Obey FLAGS when doing the renaming. If FLAGS is zero, this
|
|
||||||
- function is equivalent to renameat (FD1, SRC, FD2, DST). */
|
|
||||||
+ function is equivalent to renameat (FD1, SRC, FD2, DST).
|
|
||||||
+ Otherwise, attempt to implement FLAGS even if the implementation is
|
|
||||||
+ not atomic; this differs from the GNU/Linux native renameat2,
|
|
||||||
+ which fails if it cannot guarantee atomicity. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-renameat2 (int fd1, char const *src, int fd2, char const *dst,
|
|
||||||
+renameatu (int fd1, char const *src, int fd2, char const *dst,
|
|
||||||
unsigned int flags)
|
|
||||||
{
|
|
||||||
int ret_val = -1;
|
|
||||||
diff --git a/lib/renameat2.h b/lib/renameatu.h
|
|
||||||
similarity index 84%
|
|
||||||
rename from lib/renameat2.h
|
|
||||||
rename to lib/renameatu.h
|
|
||||||
index aba7966..7d79775 100644
|
|
||||||
--- a/lib/renameat2.h
|
|
||||||
+++ b/lib/renameatu.h
|
|
||||||
@@ -16,15 +16,13 @@
|
|
||||||
|
|
||||||
/* written by Paul Eggert */
|
|
||||||
|
|
||||||
-/* Get RENAME_* macros from linux/fs.h if present, otherwise supply
|
|
||||||
+/* Get RENAME_* macros from <stdio.h> if present, otherwise supply
|
|
||||||
the traditional Linux values. */
|
|
||||||
-#if HAVE_LINUX_FS_H
|
|
||||||
-# include <linux/fs.h>
|
|
||||||
-#endif
|
|
||||||
+#include <stdio.h>
|
|
||||||
#ifndef RENAME_NOREPLACE
|
|
||||||
# define RENAME_NOREPLACE (1 << 0)
|
|
||||||
# define RENAME_EXCHANGE (1 << 1)
|
|
||||||
# define RENAME_WHITEOUT (1 << 2)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-extern int renameat2 (int, char const *, int, char const *, unsigned int);
|
|
||||||
+extern int renameatu (int, char const *, int, char const *, unsigned int);
|
|
||||||
--
|
|
||||||
2.14.4
|
|
||||||
|
|
||||||
|
|
||||||
From a6b7ff5ef538bbdff4550a56fed878e9cd951d6d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
|
||||||
Date: Thu, 5 Jul 2018 09:33:48 -0700
|
|
||||||
Subject: [PATCH 2/2] build: update gnulib submodule to latest
|
|
||||||
|
|
||||||
* bootstrap.conf, src/copy.c, src/mv.c, src/shred.c:
|
|
||||||
Adjust to renaming of renameat2 to renameatu.
|
|
||||||
|
|
||||||
Upstream-commit: 439741053256618eb651e6d43919df29625b8714
|
|
||||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
---
|
|
||||||
bootstrap.conf | 2 +-
|
|
||||||
src/copy.c | 4 ++--
|
|
||||||
src/mv.c | 4 ++--
|
|
||||||
src/shred.c | 4 ++--
|
|
||||||
4 files changed, 7 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bootstrap.conf b/bootstrap.conf
|
|
||||||
index 4da4f94..fcf29dc 100644
|
|
||||||
--- a/bootstrap.conf
|
|
||||||
+++ b/bootstrap.conf
|
|
||||||
@@ -210,7 +210,7 @@ gnulib_modules="
|
|
||||||
remove
|
|
||||||
rename
|
|
||||||
renameat
|
|
||||||
- renameat2
|
|
||||||
+ renameatu
|
|
||||||
rmdir
|
|
||||||
root-dev-ino
|
|
||||||
rpmatch
|
|
||||||
diff --git a/src/copy.c b/src/copy.c
|
|
||||||
index 58d2f6e..1a9cdd1 100644
|
|
||||||
--- a/src/copy.c
|
|
||||||
+++ b/src/copy.c
|
|
||||||
@@ -53,7 +53,7 @@
|
|
||||||
#include "ignore-value.h"
|
|
||||||
#include "ioblksize.h"
|
|
||||||
#include "quote.h"
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
#include "root-uid.h"
|
|
||||||
#include "same.h"
|
|
||||||
#include "savedir.h"
|
|
||||||
@@ -1873,7 +1873,7 @@ copy_internal (char const *src_name, char const *dst_name,
|
|
||||||
if (x->move_mode)
|
|
||||||
{
|
|
||||||
if (rename_errno < 0)
|
|
||||||
- rename_errno = (renameat2 (AT_FDCWD, src_name, AT_FDCWD, dst_name,
|
|
||||||
+ rename_errno = (renameatu (AT_FDCWD, src_name, AT_FDCWD, dst_name,
|
|
||||||
RENAME_NOREPLACE)
|
|
||||||
? errno : 0);
|
|
||||||
new_dst = rename_errno == 0;
|
|
||||||
diff --git a/src/mv.c b/src/mv.c
|
|
||||||
index b6dd72d..36fd1af 100644
|
|
||||||
--- a/src/mv.c
|
|
||||||
+++ b/src/mv.c
|
|
||||||
@@ -31,7 +31,7 @@
|
|
||||||
#include "error.h"
|
|
||||||
#include "filenamecat.h"
|
|
||||||
#include "remove.h"
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
#include "root-dev-ino.h"
|
|
||||||
#include "priv-set.h"
|
|
||||||
|
|
||||||
@@ -456,7 +456,7 @@ main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
assert (2 <= n_files);
|
|
||||||
if (n_files == 2)
|
|
||||||
- x.rename_errno = (renameat2 (AT_FDCWD, file[0], AT_FDCWD, file[1],
|
|
||||||
+ x.rename_errno = (renameatu (AT_FDCWD, file[0], AT_FDCWD, file[1],
|
|
||||||
RENAME_NOREPLACE)
|
|
||||||
? errno : 0);
|
|
||||||
if (x.rename_errno != 0 && target_directory_operand (file[n_files - 1]))
|
|
||||||
diff --git a/src/shred.c b/src/shred.c
|
|
||||||
index 2ddaadd..270b1e9 100644
|
|
||||||
--- a/src/shred.c
|
|
||||||
+++ b/src/shred.c
|
|
||||||
@@ -93,7 +93,7 @@
|
|
||||||
#include "human.h"
|
|
||||||
#include "randint.h"
|
|
||||||
#include "randread.h"
|
|
||||||
-#include "renameat2.h"
|
|
||||||
+#include "renameatu.h"
|
|
||||||
#include "stat-size.h"
|
|
||||||
|
|
||||||
/* Default number of times to overwrite. */
|
|
||||||
@@ -1096,7 +1096,7 @@ wipename (char *oldname, char const *qoldname, struct Options const *flags)
|
|
||||||
memset (base, nameset[0], len);
|
|
||||||
base[len] = 0;
|
|
||||||
bool rename_ok;
|
|
||||||
- while (! (rename_ok = (renameat2 (AT_FDCWD, oldname, AT_FDCWD, newname,
|
|
||||||
+ while (! (rename_ok = (renameatu (AT_FDCWD, oldname, AT_FDCWD, newname,
|
|
||||||
RENAME_NOREPLACE)
|
|
||||||
== 0))
|
|
||||||
&& errno == EEXIST && incname (base, len))
|
|
||||||
--
|
|
||||||
2.14.4
|
|
||||||
|
|
||||||
Binary file not shown.
BIN
coreutils-8.31.tar.xz
Normal file
BIN
coreutils-8.31.tar.xz
Normal file
Binary file not shown.
@ -1,13 +0,0 @@
|
|||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 400e135..47e4480 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -10074,6 +10074,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
|
|
||||||
@ -1,68 +0,0 @@
|
|||||||
# 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
|
|
||||||
#specified LS_COLORS and use them
|
|
||||||
goto finish
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
alias ll 'ls -l'
|
|
||||||
alias l. 'ls -d .*'
|
|
||||||
set COLORS=/etc/DIR_COLORS
|
|
||||||
|
|
||||||
if ($?TERM) then
|
|
||||||
if ( -e "/etc/DIR_COLORS.256color" ) then
|
|
||||||
if ( "`/usr/bin/tput colors`" == "256" ) then
|
|
||||||
set COLORS=/etc/DIR_COLORS.256color
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if ( -e "/etc/DIR_COLORS.$TERM" ) then
|
|
||||||
set COLORS="/etc/DIR_COLORS.$TERM"
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
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'
|
|
||||||
alias l. 'ls -d .* --color=auto'
|
|
||||||
alias ls 'ls --color=auto'
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
INCLUDE=
|
|
||||||
COLORS=
|
|
||||||
|
|
||||||
for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \
|
|
||||||
"$HOME/.dir_colors" "$HOME/.dircolors"; do
|
|
||||||
[ -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.$TERM" ] && \
|
|
||||||
COLORS="/etc/DIR_COLORS.$TERM"
|
|
||||||
|
|
||||||
[ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \
|
|
||||||
[ "x`/usr/bin/tty -s && /usr/bin/tput colors 2>/dev/null`" = "x256" ] && \
|
|
||||||
COLORS="/etc/DIR_COLORS.256color"
|
|
||||||
|
|
||||||
[ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS" ] && \
|
|
||||||
COLORS="/etc/DIR_COLORS"
|
|
||||||
|
|
||||||
# Existence of $COLORS already checked above.
|
|
||||||
[ -n "$COLORS" ] || return
|
|
||||||
|
|
||||||
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
|
|
||||||
/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
|
|
||||||
@ -1,174 +0,0 @@
|
|||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index a507280..400e135 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -11303,6 +11303,13 @@ some systems (notably SunOS), 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 disk size, usage and available space
|
|
||||||
diff --git a/src/df.c b/src/df.c
|
|
||||||
index 8f760db..a7385fd 100644
|
|
||||||
--- a/src/df.c
|
|
||||||
+++ b/src/df.c
|
|
||||||
@@ -120,6 +120,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;
|
|
||||||
|
|
||||||
@@ -247,13 +250,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'},
|
|
||||||
@@ -509,7 +514,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
|
|
||||||
@@ -1397,6 +1405,19 @@ get_point (const char *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)
|
|
||||||
+ {
|
|
||||||
+ char *mp = find_mount_point (name, statp);
|
|
||||||
+ get_dev (NULL, mp, resolved, NULL, NULL, false, false, NULL, false);
|
|
||||||
+ free(mp);
|
|
||||||
+ free (resolved);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if ((S_ISBLK (statp->st_mode) || S_ISCHR (statp->st_mode))
|
|
||||||
&& get_disk (name))
|
|
||||||
return;
|
|
||||||
@@ -1467,6 +1488,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);
|
|
||||||
@@ -1557,6 +1579,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)
|
|
||||||
{
|
|
||||||
@@ -1653,6 +1678,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
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
Provides: bundled(gnulib)
|
|
||||||
Provides: /bin/basename
|
|
||||||
Provides: /bin/cat
|
|
||||||
Provides: /bin/chgrp
|
|
||||||
Provides: /bin/chmod
|
|
||||||
Provides: /bin/chown
|
|
||||||
Provides: /bin/cp
|
|
||||||
Provides: /bin/cut
|
|
||||||
Provides: /bin/date
|
|
||||||
Provides: /bin/dd
|
|
||||||
Provides: /bin/df
|
|
||||||
Provides: /bin/echo
|
|
||||||
Provides: /bin/env
|
|
||||||
Provides: /bin/false
|
|
||||||
Provides: /bin/ln
|
|
||||||
Provides: /bin/ls
|
|
||||||
Provides: /bin/mkdir
|
|
||||||
Provides: /bin/mknod
|
|
||||||
Provides: /bin/mktemp
|
|
||||||
Provides: /bin/mv
|
|
||||||
Provides: /bin/nice
|
|
||||||
Provides: /bin/pwd
|
|
||||||
Provides: /bin/readlink
|
|
||||||
Provides: /bin/rm
|
|
||||||
Provides: /bin/rmdir
|
|
||||||
Provides: /bin/sleep
|
|
||||||
Provides: /bin/sort
|
|
||||||
Provides: /bin/stty
|
|
||||||
Provides: /bin/sync
|
|
||||||
Provides: /bin/touch
|
|
||||||
Provides: /bin/true
|
|
||||||
Provides: /bin/uname
|
|
||||||
Provides: bundled(gnulib)
|
|
||||||
Provides: fileutils = %{version}-%{release}
|
|
||||||
Provides: mktemp = 4:%{version}-%{release}
|
|
||||||
Provides: sh-utils = %{version}-%{release}
|
|
||||||
Provides: stat = %{version}-%{release}
|
|
||||||
Provides: textutils = %{version}-%{release}
|
|
||||||
@ -1,120 +0,0 @@
|
|||||||
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 --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
|
|
||||||
+runcon \- run command with specified SELinux security context
|
|
||||||
[DESCRIPTION]
|
|
||||||
Run COMMAND with completely-specified CONTEXT, or with current or
|
|
||||||
transitioned security context modified by one or more of LEVEL,
|
|
||||||
diff --git a/src/cp.c b/src/cp.c
|
|
||||||
index 1b528c6..25dbb88 100644
|
|
||||||
--- a/src/cp.c
|
|
||||||
+++ b/src/cp.c
|
|
||||||
@@ -203,6 +203,9 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n\
|
|
||||||
all\n\
|
|
||||||
"), stdout);
|
|
||||||
fputs (_("\
|
|
||||||
+ -c deprecated, 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\
|
|
||||||
"), stdout);
|
|
||||||
@@ -929,7 +932,7 @@ main (int argc, char **argv)
|
|
||||||
selinux_enabled = (0 < is_selinux_enabled ());
|
|
||||||
cp_option_init (&x);
|
|
||||||
|
|
||||||
- while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ",
|
|
||||||
+ while ((c = getopt_long (argc, argv, "abcdfHilLnprst:uvxPRS:TZ",
|
|
||||||
long_opts, NULL))
|
|
||||||
!= -1)
|
|
||||||
{
|
|
||||||
@@ -977,6 +980,17 @@ main (int argc, char **argv)
|
|
||||||
copy_contents = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ 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/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 47e4480..cff2ead 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -8083,6 +8083,11 @@ done
|
|
||||||
exit $fail
|
|
||||||
@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
|
|
||||||
diff --git a/src/install.c b/src/install.c
|
|
||||||
index d79d597..437889a 100644
|
|
||||||
--- a/src/install.c
|
|
||||||
+++ b/src/install.c
|
|
||||||
@@ -673,7 +673,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\
|
|
||||||
+ -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\
|
|
||||||
@@ -824,7 +824,7 @@ main (int argc, char **argv)
|
|
||||||
dir_arg = false;
|
|
||||||
umask (0);
|
|
||||||
|
|
||||||
- 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)
|
|
||||||
{
|
|
||||||
switch (optc)
|
|
||||||
@@ -885,6 +885,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)
|
|
||||||
{
|
|
||||||
@@ -892,6 +894,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;
|
|
||||||
@ -1,52 +1,34 @@
|
|||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 8.30
|
Version: 8.31
|
||||||
Release: 9
|
Release: 1
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Url: https://www.gnu.org/software/coreutils/
|
Url: https://www.gnu.org/software/coreutils/
|
||||||
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||||
Source50: supported_utils
|
|
||||||
Source51: coreutils-provides.inc
|
|
||||||
Source105: coreutils-colorls.sh
|
|
||||||
Source106: coreutils-colorls.csh
|
|
||||||
|
|
||||||
# do not make coreutils-single depend on /usr/bin/coreutils
|
# do not make coreutils-single depend on /usr/bin/coreutils
|
||||||
%global __requires_exclude ^%{_bindir}/coreutils$
|
%global __requires_exclude ^%{_bindir}/coreutils$
|
||||||
|
|
||||||
Patch1: coreutils-8.30-renameatu.patch
|
|
||||||
Patch100: coreutils-8.26-test-lock.patch
|
|
||||||
Patch105: coreutils-8.26-selinuxenable.patch
|
|
||||||
Patch101: coreutils-6.10-manpages.patch
|
|
||||||
Patch102: coreutils-8.25-DIR_COLORS.patch
|
|
||||||
Patch103: coreutils-8.2-uname-processortype.patch
|
|
||||||
Patch104: coreutils-df-direct.patch
|
|
||||||
Patch107: coreutils-8.4-mkdir-modenote.patch
|
|
||||||
Patch703: sh-utils-2.0.11-dateman.patch
|
|
||||||
Patch713: coreutils-4.5.3-langinfo.patch
|
|
||||||
Patch800: coreutils-i18n.patch
|
Patch800: coreutils-i18n.patch
|
||||||
Patch801: coreutils-i18n-expand-unexpand.patch
|
Patch801: coreutils-i18n-expand-unexpand.patch
|
||||||
Patch804: coreutils-i18n-cut-old.patch
|
Patch804: coreutils-i18n-cut-old.patch
|
||||||
Patch803: coreutils-i18n-fix-unexpand.patch
|
Patch803: coreutils-i18n-fix-unexpand.patch
|
||||||
Patch805: coreutils-i18n-fix2-expand-unexpand.patch
|
Patch805: coreutils-i18n-fix2-expand-unexpand.patch
|
||||||
Patch806: coreutils-i18n-un-expand-BOM.patch
|
Patch806: coreutils-i18n-un-expand-BOM.patch
|
||||||
|
Patch807: coreutils-i18n-sort-human.patch
|
||||||
Patch808: coreutils-i18n-fold-newline.patch
|
Patch808: coreutils-i18n-fold-newline.patch
|
||||||
Patch908: coreutils-getgrouplist.patch
|
Patch809: coreutils-getgrouplist.patch
|
||||||
Patch950: coreutils-selinux.patch
|
|
||||||
|
|
||||||
Patch6000: bugfix-remove-usr-local-lib-from-m4.patch
|
Patch6000: bugfix-remove-usr-local-lib-from-m4.patch
|
||||||
Patch6001: bugfix-dummy_help2man.patch
|
Patch6001: bugfix-dummy_help2man.patch
|
||||||
Patch6002: bugfix-selinux-flask.patch
|
Patch6002: bugfix-selinux-flask.patch
|
||||||
Patch6003: echo-always-process-escapes-when-POSIXLY_CORRECT-is-.patch
|
|
||||||
Patch6004: sync-fix-open-fallback-bug.patch
|
|
||||||
Patch6005: tail-fix-handling-of-broken-pipes-with-SIGPIPE-ignor.patch
|
|
||||||
Patch6006: seq-output-decimal-points-consistently-with-invalid-.patch
|
|
||||||
|
|
||||||
Conflicts: filesystem < 3
|
Conflicts: filesystem < 3
|
||||||
# To avoid clobbering installs
|
# To avoid clobbering installs
|
||||||
Provides: /bin/sh
|
Provides: /bin/sh
|
||||||
|
|
||||||
Conflicts: %{name}-single
|
Conflicts: %{name}-single
|
||||||
Obsoletes: %{name}-common
|
Obsoletes: %{name}-common < %{version}-%{release}
|
||||||
Provides: %{name}-common = %{version}-%{release}
|
Provides: %{name}-common = %{version}-%{release}
|
||||||
|
|
||||||
BuildRequires: attr, autoconf, automake, gcc, hostname, strace, texinfo
|
BuildRequires: attr, autoconf, automake, gcc, hostname, strace, texinfo
|
||||||
@ -58,8 +40,19 @@ Requires(preun): /sbin/install-info
|
|||||||
Requires(post): /sbin/install-info
|
Requires(post): /sbin/install-info
|
||||||
|
|
||||||
Provides: coreutils-full = %{version}-%{release}
|
Provides: coreutils-full = %{version}-%{release}
|
||||||
%include %{SOURCE51}
|
Provides: fileutils = %{version}-%{release}
|
||||||
|
Provides: mktemp = 4:%{version}-%{release}
|
||||||
|
Provides: sh-utils = %{version}-%{release}
|
||||||
|
Provides: stat = %{version}-%{release}
|
||||||
|
Provides: textutils = %{version}-%{release}
|
||||||
Obsoletes: %{name} < 8.24
|
Obsoletes: %{name} < 8.24
|
||||||
|
Provides: bundled(gnulib)
|
||||||
|
Provides: /bin/basename, /bin/cat, /bin/chgrp, /bin/chmod, /bin/chown
|
||||||
|
Provides: /bin/cp, /bin/cut, /bin/date, /bin/dd, /bin/df, /bin/echo
|
||||||
|
Provides: /bin/env, /bin/false, /bin/ln, /bin/ls, /bin/mkdir, /bin/mknod
|
||||||
|
Provides: /bin/mktemp, /bin/mv, /bin/nice, /bin/pwd, /bin/readlink
|
||||||
|
Provides: /bin/rm, /bin/rmdir, /bin/sleep, /bin/sort, /bin/stty
|
||||||
|
Provides: /bin/sync, /bin/touch, /bin/true, /bin/uname
|
||||||
|
|
||||||
%description
|
%description
|
||||||
These are the GNU core utilities. This package is the combination of
|
These are the GNU core utilities. This package is the combination of
|
||||||
@ -95,9 +88,6 @@ make all %{?_smp_mflags}
|
|||||||
ln -v ../lib/parse-datetime.{c,y} .
|
ln -v ../lib/parse-datetime.{c,y} .
|
||||||
)
|
)
|
||||||
|
|
||||||
# Get the list of supported utilities
|
|
||||||
cp %SOURCE50 .
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
(cd separate && make DESTDIR=$RPM_BUILD_ROOT install)
|
(cd separate && make DESTDIR=$RPM_BUILD_ROOT install)
|
||||||
|
|
||||||
@ -105,11 +95,6 @@ cp %SOURCE50 .
|
|||||||
mkdir -p $RPM_BUILD_ROOT/{%{_bindir},%{_sbindir}}
|
mkdir -p $RPM_BUILD_ROOT/{%{_bindir},%{_sbindir}}
|
||||||
mv $RPM_BUILD_ROOT/{%_bindir,%_sbindir}/chroot
|
mv $RPM_BUILD_ROOT/{%_bindir,%_sbindir}/chroot
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
|
|
||||||
install -p -c -m644 DIR_COLORS{,.256color,.lightbgcolor} $RPM_BUILD_ROOT%{_sysconfdir}
|
|
||||||
install -p -c -m644 %SOURCE105 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/colorls.sh
|
|
||||||
install -p -c -m644 %SOURCE106 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/colorls.csh
|
|
||||||
|
|
||||||
%find_lang %name
|
%find_lang %name
|
||||||
# Add the %%lang(xyz) ownership for the LC_TIME dirs as well...
|
# Add the %%lang(xyz) ownership for the LC_TIME dirs as well...
|
||||||
grep LC_TIME %name.lang | cut -d'/' -f1-6 | sed -e 's/) /) %%dir /g' >>%name.lang
|
grep LC_TIME %name.lang | cut -d'/' -f1-6 | sed -e 's/) /) %%dir /g' >>%name.lang
|
||||||
@ -126,11 +111,11 @@ if [ -f %{_infodir}/%{name}.info.gz ]; then
|
|||||||
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%files -f supported_utils -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_sbindir}/chroot
|
||||||
%dir %{_libexecdir}/coreutils
|
%dir %{_libexecdir}/coreutils
|
||||||
%{_libexecdir}/coreutils/*.so
|
%{_libexecdir}/coreutils/*.so
|
||||||
%config(noreplace) %{_sysconfdir}/DIR_COLORS*
|
|
||||||
%config(noreplace) %{_sysconfdir}/profile.d/*
|
|
||||||
%doc ABOUT-NLS NEWS README THANKS TODO
|
%doc ABOUT-NLS NEWS README THANKS TODO
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%exclude %{_infodir}/dir
|
%exclude %{_infodir}/dir
|
||||||
@ -141,8 +126,8 @@ fi
|
|||||||
%{_mandir}/man*/*
|
%{_mandir}/man*/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Dec 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 8.30-9
|
* Thu Jan 9 2020 openEuler Buildteam <buildteam@openeuler.org> - 8.31-1
|
||||||
- Delete unneeded patch
|
- Update version to 8.31-1
|
||||||
|
|
||||||
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 8.30-8
|
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 8.30-8
|
||||||
- Revert last commit
|
- Revert last commit
|
||||||
|
|||||||
@ -1,165 +0,0 @@
|
|||||||
From 8d328706c6ef0264dffb923f96431af1e26dcddd Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
|
||||||
Date: Sun, 23 Sep 2018 19:35:24 -0700
|
|
||||||
Subject: [PATCH 24/87] echo: always process escapes when POSIXLY_CORRECT is
|
|
||||||
set
|
|
||||||
|
|
||||||
* src/echo.c (main): Always enable backslash processing if
|
|
||||||
POSIXLY_CORRECT is set.
|
|
||||||
* tests/misc/echo.sh: Add (the first) test for the echo command.
|
|
||||||
* tests/local.mk: Reference the new test.
|
|
||||||
* tests/misc/printf.sh: Update a stale comment.
|
|
||||||
* doc/coreutils.texi (echo invocation). Mention that POSIXLY_CORRECT
|
|
||||||
now always enables backslash processing.
|
|
||||||
* NEWS: Mention the change in behavior.
|
|
||||||
Fixes https://bugs.gnu.org/32703
|
|
||||||
Issue identified by Eric Blake.
|
|
||||||
---
|
|
||||||
doc/coreutils.texi | 2 +-
|
|
||||||
src/echo.c | 5 ++--
|
|
||||||
tests/local.mk | 1 +
|
|
||||||
tests/misc/echo.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
tests/misc/printf.sh | 5 ++--
|
|
||||||
5 files changed, 73 insertions(+), 6 deletions(-)
|
|
||||||
create mode 100755 tests/misc/echo.sh
|
|
||||||
|
|
||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 30155bb86..f8339d73f 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -12608,7 +12608,7 @@ If the @env{POSIXLY_CORRECT} environment variable is set, then when
|
|
||||||
@command{echo}'s first argument is not @option{-n} it outputs
|
|
||||||
option-like arguments instead of treating them as options. For
|
|
||||||
example, @code{echo -ne hello} outputs @samp{-ne hello} instead of
|
|
||||||
-plain @samp{hello}.
|
|
||||||
+plain @samp{hello}. Also backslash escapes are always enabled.
|
|
||||||
|
|
||||||
POSIX does not require support for any options, and says
|
|
||||||
that the behavior of @command{echo} is implementation-defined if any
|
|
||||||
diff --git a/src/echo.c b/src/echo.c
|
|
||||||
index 9958a8ec6..2aee5acfb 100644
|
|
||||||
--- a/src/echo.c
|
|
||||||
+++ b/src/echo.c
|
|
||||||
@@ -108,8 +108,9 @@ int
|
|
||||||
main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
bool display_return = true;
|
|
||||||
+ bool posixly_correct = getenv ("POSIXLY_CORRECT");
|
|
||||||
bool allow_options =
|
|
||||||
- (! getenv ("POSIXLY_CORRECT")
|
|
||||||
+ (! posixly_correct
|
|
||||||
|| (! DEFAULT_ECHO_TO_XPG && 1 < argc && STREQ (argv[1], "-n")));
|
|
||||||
|
|
||||||
/* System V machines already have a /bin/sh with a v9 behavior.
|
|
||||||
@@ -189,7 +190,7 @@ main (int argc, char **argv)
|
|
||||||
|
|
||||||
just_echo:
|
|
||||||
|
|
||||||
- if (do_v9)
|
|
||||||
+ if (do_v9 || posixly_correct)
|
|
||||||
{
|
|
||||||
while (argc > 0)
|
|
||||||
{
|
|
||||||
diff --git a/tests/local.mk b/tests/local.mk
|
|
||||||
index 84d346979..5823886f8 100644
|
|
||||||
--- a/tests/local.mk
|
|
||||||
+++ b/tests/local.mk
|
|
||||||
@@ -237,6 +237,7 @@ all_tests = \
|
|
||||||
tests/fmt/base.pl \
|
|
||||||
tests/fmt/long-line.sh \
|
|
||||||
tests/fmt/goal-option.sh \
|
|
||||||
+ tests/misc/echo.sh \
|
|
||||||
tests/misc/env.sh \
|
|
||||||
tests/misc/ptx.pl \
|
|
||||||
tests/misc/test.pl \
|
|
||||||
diff --git a/tests/misc/echo.sh b/tests/misc/echo.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 000000000..53e87fb71
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/misc/echo.sh
|
|
||||||
@@ -0,0 +1,66 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# basic tests for echo
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2018 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software: you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+prog='env echo'
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
|
||||||
+print_ver_ echo
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+# Verify the methods of specifying "Escape":
|
|
||||||
+# Note 4 octal digits are allowed (unlike printf which uses up to 3)
|
|
||||||
+printf '%s\n' . . . . . | tr . '\033' > exp
|
|
||||||
+$prog -n -e '\x1b\n\e\n\33\n\033\n\0033\n' > out || fail=1
|
|
||||||
+compare exp out || fail=1
|
|
||||||
+
|
|
||||||
+# Incomplete hex escapes are output as is (unlike printf)
|
|
||||||
+printf '\\x\n' > exp
|
|
||||||
+$prog -n -e '\x\n' > out || fail=1
|
|
||||||
+compare exp out || fail=1
|
|
||||||
+
|
|
||||||
+# Always output -- (unlike printf)
|
|
||||||
+$prog -- 'foo' > out || fail=1
|
|
||||||
+$prog -n -e -- 'foo\n' >> out || fail=1
|
|
||||||
+cat <<\EOF > exp
|
|
||||||
+-- foo
|
|
||||||
+-- foo
|
|
||||||
+EOF
|
|
||||||
+compare exp out || fail=1
|
|
||||||
+
|
|
||||||
+# Ensure \c stops processing
|
|
||||||
+$prog -e 'foo\n\cbar' > out || fail=1
|
|
||||||
+printf 'foo\n' > exp
|
|
||||||
+compare exp out || fail=1
|
|
||||||
+
|
|
||||||
+# With POSIXLY_CORRECT:
|
|
||||||
+# only -n as the first (separate) option enables option processing
|
|
||||||
+# -E is ignored
|
|
||||||
+# escapes are processed by default
|
|
||||||
+POSIXLY_CORRECT=1 $prog -n -E 'foo\n' > out || fail=1
|
|
||||||
+POSIXLY_CORRECT=1 $prog -nE 'foo' >> out || fail=1
|
|
||||||
+POSIXLY_CORRECT=1 $prog -E -n 'foo' >> out || fail=1
|
|
||||||
+POSIXLY_CORRECT=1 $prog --version >> out || fail=1
|
|
||||||
+cat <<\EOF > exp
|
|
||||||
+foo
|
|
||||||
+-nE foo
|
|
||||||
+-E -n foo
|
|
||||||
+--version
|
|
||||||
+EOF
|
|
||||||
+compare exp out || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
diff --git a/tests/misc/printf.sh b/tests/misc/printf.sh
|
|
||||||
index 8716c56c8..dccabbe8c 100755
|
|
||||||
--- a/tests/misc/printf.sh
|
|
||||||
+++ b/tests/misc/printf.sh
|
|
||||||
@@ -60,9 +60,8 @@ $prog '5 % +d\n' 234 >> out || fail=1
|
|
||||||
# coreutils-5.0.1, it would print six bytes: "6 \41\n".
|
|
||||||
$prog '6 \41\n' | tr '\41' '!' >> out
|
|
||||||
|
|
||||||
-# Note that as of coreutils-5.0.1, printf with a format of '\0002x'
|
|
||||||
-# prints a NUL byte followed by the digit '2' and an 'x'.
|
|
||||||
-# By contrast bash's printf outputs the same thing as $(printf '\2x') does.
|
|
||||||
+# Note that as of coreutils-5.0.1, printf with a format of '\0002y'
|
|
||||||
+# prints a NUL byte followed by the digit '2' and a 'y'.
|
|
||||||
$prog '7 \2y \02y \002y \0002y\n' |tr '\0\2' '*=' >> out
|
|
||||||
|
|
||||||
$prog '8 %b %b %b %b\n' '\1y' '\01y' '\001y' '\0001y'|tr '\1' = >> out
|
|
||||||
--
|
|
||||||
2.19.1
|
|
||||||
|
|
||||||
@ -1,104 +0,0 @@
|
|||||||
From 03fbb5ecec045d41b28c5ec9750ee94e4bea074d Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
|
||||||
Date: Sat, 2 Feb 2019 19:16:02 -0800
|
|
||||||
Subject: [PATCH 57/87] seq: output decimal points consistently with invalid
|
|
||||||
locales
|
|
||||||
|
|
||||||
* src/seq.c (print_numbers): Only reset the locale if it
|
|
||||||
was successfully set originally.
|
|
||||||
* tests/misc/seq-locale.sh: Add a new test.
|
|
||||||
* tests/local.mk: Reference the new test.
|
|
||||||
* NEWS: Mention the fix.
|
|
||||||
---
|
|
||||||
src/seq.c | 11 ++++++++---
|
|
||||||
tests/local.mk | 1 +
|
|
||||||
tests/misc/seq-locale.sh | 28 ++++++++++++++++++++++++++++
|
|
||||||
3 files changed, 37 insertions(+), 3 deletions(-)
|
|
||||||
create mode 100755 tests/misc/seq-locale.sh
|
|
||||||
|
|
||||||
diff --git a/src/seq.c b/src/seq.c
|
|
||||||
index 61d20fe62..b5913368a 100644
|
|
||||||
--- a/src/seq.c
|
|
||||||
+++ b/src/seq.c
|
|
||||||
@@ -42,6 +42,9 @@
|
|
||||||
|
|
||||||
#define AUTHORS proper_name ("Ulrich Drepper")
|
|
||||||
|
|
||||||
+/* True if the locale settings were honored. */
|
|
||||||
+static bool locale_ok;
|
|
||||||
+
|
|
||||||
/* If true print all number with equal width. */
|
|
||||||
static bool equal_width;
|
|
||||||
|
|
||||||
@@ -324,9 +327,11 @@ print_numbers (char const *fmt, struct layout layout,
|
|
||||||
long double x_val;
|
|
||||||
char *x_str;
|
|
||||||
int x_strlen;
|
|
||||||
- setlocale (LC_NUMERIC, "C");
|
|
||||||
+ if (locale_ok)
|
|
||||||
+ setlocale (LC_NUMERIC, "C");
|
|
||||||
x_strlen = asprintf (&x_str, fmt, x);
|
|
||||||
- setlocale (LC_NUMERIC, "");
|
|
||||||
+ if (locale_ok)
|
|
||||||
+ setlocale (LC_NUMERIC, "");
|
|
||||||
if (x_strlen < 0)
|
|
||||||
xalloc_die ();
|
|
||||||
x_str[x_strlen - layout.suffix_len] = '\0';
|
|
||||||
@@ -559,7 +564,7 @@ main (int argc, char **argv)
|
|
||||||
|
|
||||||
initialize_main (&argc, &argv);
|
|
||||||
set_program_name (argv[0]);
|
|
||||||
- setlocale (LC_ALL, "");
|
|
||||||
+ locale_ok = !!setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
diff --git a/tests/local.mk b/tests/local.mk
|
|
||||||
index 290e30f62..4751886b2 100644
|
|
||||||
--- a/tests/local.mk
|
|
||||||
+++ b/tests/local.mk
|
|
||||||
@@ -244,6 +244,7 @@ all_tests = \
|
|
||||||
tests/misc/seq.pl \
|
|
||||||
tests/misc/seq-epipe.sh \
|
|
||||||
tests/misc/seq-io-errors.sh \
|
|
||||||
+ tests/misc/seq-locale.sh \
|
|
||||||
tests/misc/seq-long-double.sh \
|
|
||||||
tests/misc/seq-precision.sh \
|
|
||||||
tests/misc/head.pl \
|
|
||||||
diff --git a/tests/misc/seq-locale.sh b/tests/misc/seq-locale.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 000000000..8a46ab7e4
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/misc/seq-locale.sh
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Test for output with appropriate precision
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2019 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software: you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
|
||||||
+print_ver_ seq
|
|
||||||
+
|
|
||||||
+# With coreutils-8.30 and earlier, the last decimal point would be ','
|
|
||||||
+# when setlocale(LC_ALL, "") failed, but setlocale(LC_NUMERIC, "") succeeded.
|
|
||||||
+LC_ALL= LANG=invalid LC_NUMERIC=$LOCALE_FR_UTF8 seq 0.1 0.2 0.7 > out || fail=1
|
|
||||||
+uniq -w2 out > out-merge || framework_failure_
|
|
||||||
+test "$(wc -l < out-merge)" = 1 || { fail=1; cat out; }
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
2.19.1
|
|
||||||
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
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 @@ 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.
|
|
||||||
+[ENVIRONMENT]
|
|
||||||
+.TP
|
|
||||||
+TZ
|
|
||||||
+Specifies the timezone, unless overridden by command line parameters.
|
|
||||||
+If neither is specified, the setting from /etc/localtime is used.
|
|
||||||
104
supported_utils
104
supported_utils
@ -1,104 +0,0 @@
|
|||||||
%{_bindir}/arch
|
|
||||||
%{_bindir}/b2sum
|
|
||||||
%{_bindir}/basename
|
|
||||||
%{_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
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
From 94d364f157f007f2b23c70863ac8eefe9b21229d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
|
||||||
Date: Tue, 6 Nov 2018 10:35:16 -0800
|
|
||||||
Subject: [PATCH 28/87] sync: fix open fallback bug
|
|
||||||
|
|
||||||
Problem caught by Coverity Analysis
|
|
||||||
and reported by Kamil Dudka (Bug#33287).
|
|
||||||
* src/sync.c (sync_arg): Fix typo in fallback code.
|
|
||||||
---
|
|
||||||
src/sync.c | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/sync.c b/src/sync.c
|
|
||||||
index bd3671a19..607fa8f7f 100644
|
|
||||||
--- a/src/sync.c
|
|
||||||
+++ b/src/sync.c
|
|
||||||
@@ -111,8 +111,10 @@ sync_arg (enum sync_mode mode, char const *file)
|
|
||||||
if (open_flags != (O_WRONLY | O_NONBLOCK))
|
|
||||||
fd = open (file, O_WRONLY | O_NONBLOCK);
|
|
||||||
if (fd < 0)
|
|
||||||
- error (0, rd_errno, _("error opening %s"), quoteaf (file));
|
|
||||||
- return false;
|
|
||||||
+ {
|
|
||||||
+ error (0, rd_errno, _("error opening %s"), quoteaf (file));
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* We used O_NONBLOCK above to not hang with fifos,
|
|
||||||
--
|
|
||||||
2.19.1
|
|
||||||
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
From fa50623394f491b975dbd7ad73193519dd721771 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
|
||||||
Date: Sun, 20 Jan 2019 00:13:15 -0800
|
|
||||||
Subject: [PATCH 46/87] tail: fix handling of broken pipes with SIGPIPE ignored
|
|
||||||
|
|
||||||
* init.cfg (trap_sigpipe_or_skip_): A new function refactored from...
|
|
||||||
* tests/misc/printf-surprise.sh: ...here.
|
|
||||||
* tests/misc/seq-epipe.sh. Likewise.
|
|
||||||
* src/tail.c (die_pipe): Ensure we exit upon sending SIGPIPE.
|
|
||||||
* tests/tail-2/pipe-f.sh: Ensure we exit even if SIGPIPE is ignored.
|
|
||||||
* NEWS: Mention the bug fix.
|
|
||||||
---
|
|
||||||
init.cfg | 6 ++++++
|
|
||||||
src/tail.c | 12 ++++++++++--
|
|
||||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/init.cfg b/init.cfg
|
|
||||||
index d99a0e3dd..739ba33df 100644
|
|
||||||
--- a/init.cfg
|
|
||||||
+++ b/init.cfg
|
|
||||||
@@ -610,6 +610,12 @@ mkfifo_or_skip_()
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
+trap_sigpipe_or_skip_()
|
|
||||||
+{
|
|
||||||
+ (trap '' PIPE && yes | :) 2>&1 | grep -qF 'Broken pipe' ||
|
|
||||||
+ skip_ 'trapping SIGPIPE is not supported'
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# Disable the current test if the working directory seems to have
|
|
||||||
# the setgid bit set.
|
|
||||||
skip_if_setgid_()
|
|
||||||
diff --git a/src/tail.c b/src/tail.c
|
|
||||||
index c63b61631..b8064853f 100644
|
|
||||||
--- a/src/tail.c
|
|
||||||
+++ b/src/tail.c
|
|
||||||
@@ -330,6 +330,14 @@ named file in a way that accommodates renaming, removal and creation.\n\
|
|
||||||
exit (status);
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Ensure exit, either with SIGPIPE or EXIT_FAILURE status. */
|
|
||||||
+static void ATTRIBUTE_NORETURN
|
|
||||||
+die_pipe (void)
|
|
||||||
+{
|
|
||||||
+ raise (SIGPIPE);
|
|
||||||
+ exit (EXIT_FAILURE);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* If the output has gone away, then terminate
|
|
||||||
as we would if we had written to this output. */
|
|
||||||
static void
|
|
||||||
@@ -348,7 +356,7 @@ check_output_alive (void)
|
|
||||||
/* readable event on STDOUT is equivalent to POLLERR,
|
|
||||||
and implies an error condition on output like broken pipe. */
|
|
||||||
if (select (STDOUT_FILENO + 1, &rfd, NULL, NULL, &delay) == 1)
|
|
||||||
- raise (SIGPIPE);
|
|
||||||
+ die_pipe();
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool
|
|
||||||
@@ -1645,7 +1653,7 @@ tail_forever_inotify (int wd, struct File_spec *f, size_t n_files,
|
|
||||||
{
|
|
||||||
/* readable event on STDOUT is equivalent to POLLERR,
|
|
||||||
and implies an error on output like broken pipe. */
|
|
||||||
- raise (SIGPIPE);
|
|
||||||
+ die_pipe();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
2.19.1
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user