Support nullglob in profile.*.in files

Message ID a6ba4301-c95d-14d2-7892-6acb0e79cf72@suse.cz
State Committed
Headers
Series Support nullglob in profile.*.in files |

Commit Message

Martin Liška Aug. 16, 2022, 1:17 p.m. UTC
  In openSUSE we have the following RPM checker that uses
shopt -s nullglob:
https://github.com/openSUSE/post-build-checks/blob/master/checks/50-check-libtool-deps#L31

The script loads all /etc/profile.d/*.sh files via source $FILE which
can end up by stuck cat (with no arguments):

shopt -s nullglob ; cat "/etc/debuginfod"/*.urls
(stuck)
---
 config/profile.csh.in | 2 +-
 config/profile.sh.in  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
  

Comments

Frank Ch. Eigler Aug. 16, 2022, 1:20 p.m. UTC | #1
Hi -

> In openSUSE we have the following RPM checker that uses
> shopt -s nullglob:
> https://github.com/openSUSE/post-build-checks/blob/master/checks/50-check-libtool-deps#L31

OK, lgtm.

We'd hate to have a stuck cat.

- FChE
  

Patch

diff --git a/config/profile.csh.in b/config/profile.csh.in
index 74c20c99..d962d969 100644
--- a/config/profile.csh.in
+++ b/config/profile.csh.in
@@ -6,7 +6,7 @@ 
 
 if (! $?DEBUGINFOD_URLS) then
     set prefix="@prefix@"
-    set DEBUGINFOD_URLS=`sh -c 'cat "$0"/*.urls 2>/dev/null; :' "@sysconfdir@/debuginfod" | tr '\n' ' '`
+    set DEBUGINFOD_URLS=`sh -c 'cat /dev/null "$0"/*.urls 2>/dev/null; :' "@sysconfdir@/debuginfod" | tr '\n' ' '`
     if ( "$DEBUGINFOD_URLS" != "" ) then
         setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS"
     else
diff --git a/config/profile.sh.in b/config/profile.sh.in
index bad20b1e..3f4397dc 100644
--- a/config/profile.sh.in
+++ b/config/profile.sh.in
@@ -6,7 +6,7 @@ 
 
 if [ -z "$DEBUGINFOD_URLS" ]; then
     prefix="@prefix@"
-    DEBUGINFOD_URLS=$(cat "@sysconfdir@/debuginfod"/*.urls 2>/dev/null | tr '\n' ' ')
+    DEBUGINFOD_URLS=$(cat /dev/null "@sysconfdir@/debuginfod"/*.urls 2>/dev/null | tr '\n' ' ')
     [ -n "$DEBUGINFOD_URLS" ] && export DEBUGINFOD_URLS || unset DEBUGINFOD_URLS
     unset prefix
 fi