diff --git a/backport-config-color-alias-for-ls.patch b/backport-config-color-alias-for-ls.patch new file mode 100644 index 0000000000000000000000000000000000000000..7861b1c9d28d1d915b77689729c7c245f97ca457 --- /dev/null +++ b/backport-config-color-alias-for-ls.patch @@ -0,0 +1,152 @@ +From 69331283c881e3a6cb49f3aeacd699b3d79183fc Mon Sep 17 00:00:00 2001 +From: Tim Waugh +Date: Feb 14 2007 12:33:54 +0000 +Subject: [PATCH] config color alias for ls + +--- + build-aux/coreutils-colorls.csh | 68 +++++++++++++++++++++++++++++++++ + build-aux/coreutils-colorls.sh | 57 +++++++++++++++++++++++++++ + 2 files changed, 125 insertions(+) + create mode 100755 build-aux/coreutils-colorls.csh + create mode 100755 build-aux/coreutils-colorls.sh + +diff --git a/build-aux/coreutils-colorls.csh b/build-aux/coreutils-colorls.csh +new file mode 100755 +index 0000000..f631762 +--- /dev/null ++++ b/build-aux/coreutils-colorls.csh +@@ -0,0 +1,68 @@ ++# 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' +diff --git a/build-aux/coreutils-colorls.sh b/build-aux/coreutils-colorls.sh +new file mode 100755 +index 0000000..a4ba227 +--- /dev/null ++++ b/build-aux/coreutils-colorls.sh +@@ -0,0 +1,57 @@ ++# 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 +-- +2.27.0 + diff --git a/coreutils.spec b/coreutils.spec index f5a016cd438a264d2390749580b9b14883fe8a79..b3143de27dc8143173387397dbf4e3b53f5811e0 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -1,6 +1,6 @@ Name: coreutils Version: 8.32 -Release: 3 +Release: 4 License: GPLv3+ Summary: A set of basic GNU tools commonly used in shell scripts Url: https://www.gnu.org/software/coreutils/ @@ -28,6 +28,7 @@ Patch10: coreutils-8.32-leaf-opt-xfs.patch Patch11: backport-ls-fix-crash-printing-SELinux-context-for-unstatable.patch Patch12: backport-tr-fix-crash-validating-c-with-some-case-char-classe.patch Patch13: backport-timeout-ensure-foreground-k-exits-with-status-137.patch +Patch14: backport-config-color-alias-for-ls.patch Conflicts: filesystem < 3 # To avoid clobbering installs @@ -67,6 +68,7 @@ the old GNU fileutils, sh-utils, and textutils packages. %prep %autosetup -N +tee DIR_COLORS{,.256color,.lightbgcolor} /dev/null %autopatch -p1 (echo ">>> Fixing permissions on tests") 2>/dev/null @@ -106,6 +108,11 @@ mv $RPM_BUILD_ROOT/{%_bindir,%_sbindir}/chroot # 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 +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d +install -p -c -m644 DIR_COLORS{,.256color,.lightbgcolor} $RPM_BUILD_ROOT%{_sysconfdir} +install -p -c -m644 build-aux/coreutils-colorls.sh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/colorls.sh +install -p -c -m644 build-aux/coreutils-colorls.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/colorls.csh + %check pushd separate make check VERBOSE=yes @@ -131,6 +138,8 @@ fi %doc ABOUT-NLS NEWS README THANKS TODO %license COPYING %exclude %{_infodir}/dir +%config(noreplace) %{_sysconfdir}/profile.d/* +%config(noreplace) %{_sysconfdir}/DIR_COLORS* %package_help %files help @@ -138,6 +147,9 @@ fi %{_mandir}/man*/* %changelog +* Wed Aug 31 2022 hongjinghao - 8.32-4 +- Auto display color difference when use ls + * Sat Feb 12 2022 yangzhuangzhuang - 8.32-3 - timeout: ensure --foreground -k exits with status 137