diff options
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | config/ChangeLog | 8 | ||||
-rw-r--r-- | config/Makefile.am | 9 | ||||
-rw-r--r-- | config/elfutils.spec.in | 1 | ||||
-rw-r--r-- | config/profile.csh.in | 25 | ||||
-rw-r--r-- | config/profile.sh.in | 19 |
6 files changed, 54 insertions, 14 deletions
@@ -1,3 +1,9 @@ +Version 0.186 + +debuginfod-client: Default $DEBUGINFOD_URLS is computed from drop-in files + /etc/debuginfod/*.urls rather than hardcoded into the + /etc/profile.d/debuginfod* scripts. + Version 0.185 debuginfod-client: Simplify curl handle reuse so downloads which diff --git a/config/ChangeLog b/config/ChangeLog index b2c0af8a..bd41654f 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,11 @@ +2021-10-03 Frank Ch. Eigler <fche@redhat.com> + + PR27783 + * profile.sh, profile.csh: Rewrite to document and set DEBUGINFOD_URLS + from /etc/debuginfod/*.urls files. + * Makefile.am: Install the configury-specified .urls file. + * elfutils.spec: Package it. + 2021-09-05 Dmitry V. Levin <ldv@altlinux.org> * eu.am (STACK_USAGE_NO_ERROR): New variable. diff --git a/config/Makefile.am b/config/Makefile.am index a66f5490..0d3ba164 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -40,9 +40,16 @@ pkgconfig_DATA += libdebuginfod.pc install-data-local: $(INSTALL_DATA) profile.sh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh $(INSTALL_DATA) profile.csh -D $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh + mkdir -p $(DESTDIR)$(sysconfdir)/debuginfod + if [ -n "@DEBUGINFOD_URLS@" ]; then \ + echo "@DEBUGINFOD_URLS@" > $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.urls; \ + fi uninstall-local: - rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh + rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.sh + rm -f $(DESTDIR)$(sysconfdir)/profile.d/debuginfod.csh + rm -f $(DESTDIR)$(sysconfdir)/debuginfod/elfutils.urls + -rmdir $(DESTDIR)$(sysconfdir)/debuginfod endif if MAINTAINER_MODE diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 04376265..8f6a8e03 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -301,6 +301,7 @@ fi %{_mandir}/man1/debuginfod-find.1* %{_mandir}/man7/debuginfod*.7* %config(noreplace) %{_sysconfdir}/profile.d/* +%config(noreplace) %{_sysconfdir}/debuginfod/* %files debuginfod-client-devel %defattr(-,root,root) diff --git a/config/profile.csh.in b/config/profile.csh.in index 0a2d6d16..01f7c2f2 100644 --- a/config/profile.csh.in +++ b/config/profile.csh.in @@ -1,11 +1,16 @@ -if ("@DEBUGINFOD_URLS@" != "") then - if ($?DEBUGINFOD_URLS) then - if ($%DEBUGINFOD_URLS) then - setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS @DEBUGINFOD_URLS@" - else - setenv DEBUGINFOD_URLS "@DEBUGINFOD_URLS@" - endif - else - setenv DEBUGINFOD_URLS "@DEBUGINFOD_URLS@" - endif + +# $HOME/.login* or similar files may first set $DEBUGINFOD_URLS. +# If $DEBUGINFOD_URLS is not set there, we set it from system *.url files. +# $HOME/.*rc or similar files may then amend $DEBUGINFOD_URLS. +# See also [man debuginfod-client-config] for other environment variables +# such as $DEBUGINFOD_MAXSIZE, $DEBUGINFOD_MAXTIME, $DEBUGINFOD_PROGRESS. + +if (! $?DEBUGINFOD_URLS) then + set prefix="@prefix@" + set debuginfod_urls=`sh -c "cat @sysconfdir@/debuginfod/*.urls 2>/dev/null" | tr '\n' ' '` + if ( "$debuginfod_urls" != "" ) then + setenv DEBUGINFOD_URLS "$debuginfod_urls" + endif + unset debuginfod_urls + unset prefix endif diff --git a/config/profile.sh.in b/config/profile.sh.in index aa228a0d..afce3963 100644 --- a/config/profile.sh.in +++ b/config/profile.sh.in @@ -1,4 +1,17 @@ -if [ -n "@DEBUGINFOD_URLS@" ]; then - DEBUGINFOD_URLS="${DEBUGINFOD_URLS-}${DEBUGINFOD_URLS:+ }@DEBUGINFOD_URLS@" - export DEBUGINFOD_URLS + +# $HOME/.profile* or similar files may first set $DEBUGINFOD_URLS. +# If $DEBUGINFOD_URLS is not set there, we set it from system *.url files. +# $HOME/.*rc or similar files may then amend $DEBUGINFOD_URLS. +# See also [man debuginfod-client-config] for other environment variables +# such as $DEBUGINFOD_MAXSIZE, $DEBUGINFOD_MAXTIME, $DEBUGINFOD_PROGRESS. + +if [ -z "$DEBUGINFOD_URLS" ]; then + prefix="@prefix@" + debuginfod_urls=`sh -c "cat @sysconfdir@/debuginfod/*.urls 2>/dev/null" | tr '\n' ' '` + if [ -n "$debuginfod_urls" ]; then + DEBUGINFOD_URLS="$debuginfod_urls" + export DEBUGINFOD_URLS + fi + unset debuginfod_urls + unset prefix fi |