From 94708e9646017a7ef1c819df3b71bb1ddf8300fc Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 1 Oct 2020 16:56:49 -0400 Subject: [PATCH] PR25461: add /etc/profile.d files for default $DEBUGINFOD_URLS To give distros a simple knob to let their userbase enjoy debuginfod services, we add a --enable-debuginfod-urls[=URLS] to the configury. This propagates to $DEBUGINFOD_URLS environment variable settings in /etc/profile.d/debuginfod.{sh,csh} files. The default is nothing. If simply enabled, the current prototype public server is used. If enabled with parameters, the builder/distro can specify a default URL search path of their own. Signed-off-by: Frank Ch. Eigler --- ChangeLog | 5 +++++ config/ChangeLog | 8 ++++++++ config/Makefile.am | 6 +++++- config/elfutils.spec.in | 5 +++-- config/profile.csh.in | 2 ++ config/profile.sh.in | 3 +++ configure.ac | 13 +++++++++++++ 7 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 config/profile.csh.in create mode 100644 config/profile.sh.in diff --git a/ChangeLog b/ChangeLog index 021b06f3f..72e8397cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-10-01 Frank Ch. Eigler + + PR25461 + * configure.ac: Add --enable-debuginfod-urls[=URLS] option. + 2020-09-18 Mark Wielaard * configure.ac: Check availability of libzstd and zstd. diff --git a/config/ChangeLog b/config/ChangeLog index c8e4fcd43..9c31925f6 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,11 @@ +2020-10-01 Frank Ch. Eigler + + PR25461 + * profile.sh.in, profile.csh.in: New files for /etc/profiles.d + to define $DEBUGINFOD_URLS. + * elfutils.spec.in: Configure with --enable-debuginfod-urls. + * Makefile.am: Install them. + 2020-09-18 Mark Wielaard * elfutils.spec.in: Add BuildRequires for libzstd-devel and zstd. diff --git a/config/Makefile.am b/config/Makefile.am index 11f17df06..ae6ffc9b0 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -30,7 +30,7 @@ ## EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf \ libelf.pc.in libdw.pc.in libdebuginfod.pc.in \ - debuginfod.service debuginfod.sysconfig + debuginfod.service debuginfod.sysconfig profile.sh.in profile.csh.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libelf.pc libdw.pc @@ -38,6 +38,10 @@ if DEBUGINFOD pkgconfig_DATA += libdebuginfod.pc endif +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 + if MAINTAINER_MODE $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS @tmpname=$$(mktemp $${TMPDIR:-/tmp}/elfutils.XXXXXX); \ diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 37af1b076..170c95e56 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -181,7 +181,7 @@ such servers to download those files on demand. %setup -q %build -%configure --program-prefix=%{_programprefix} --enable-debuginfod +%configure --program-prefix=%{_programprefix} --enable-debuginfod --enable-debuginfod-urls make -s %{?_smp_mflags} %install @@ -296,7 +296,8 @@ fi %{_libdir}/libdebuginfod.so.* %{_bindir}/debuginfod-find %{_mandir}/man1/debuginfod-find.1* - +%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/profile.d/* + %files debuginfod-client-devel %defattr(-,root,root) %{_libdir}/pkgconfig/libdebuginfod.pc diff --git a/config/profile.csh.in b/config/profile.csh.in new file mode 100644 index 000000000..4f25896d1 --- /dev/null +++ b/config/profile.csh.in @@ -0,0 +1,2 @@ + +setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS @DEBUGINFOD_URLS@" diff --git a/config/profile.sh.in b/config/profile.sh.in new file mode 100644 index 000000000..8a022489e --- /dev/null +++ b/config/profile.sh.in @@ -0,0 +1,3 @@ + +DEBUGINFOD_URLS="$DEBUGINFOD_URLS @DEBUGINFOD_URLS@" +export DEBUGINFOD_URLS diff --git a/configure.ac b/configure.ac index 1b794df31..973409f14 100644 --- a/configure.ac +++ b/configure.ac @@ -731,6 +731,18 @@ AS_IF([test "x$enable_debuginfod" != "xno"], [ AS_IF([test "x$enable_debuginfod" != "xno"],AC_DEFINE([ENABLE_DEBUGINFOD],[1],[Build debuginfod])) AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"]) +dnl for /etc/profile.d/elfutils.{csh,sh} +default_debuginfod_urls="" +AC_ARG_ENABLE(debuginfod-urls, + [AS_HELP_STRING([--enable-debuginfod-urls@<:@=URLS@:>@],[add URLS to profile.d DEBUGINFOD_URLS])], + [if test "x${enableval}" = "xyes"; + then default_debuginfod_urls="https://debuginfod.elfutils.org/"; + elif test "x${enableval}" != "xno"; then + default_debuginfod_urls="${enableval}"; + fi], + [default_debuginfod_urls=""]) +AC_SUBST(DEBUGINFOD_URLS, $default_debuginfod_urls) +AC_CONFIG_FILES([config/profile.sh config/profile.csh]) AC_OUTPUT @@ -764,6 +776,7 @@ AC_MSG_NOTICE([ Extra Valgrind annotations : ${use_vg_annotations} libdebuginfod client support : ${enable_libdebuginfod} Debuginfod server support : ${enable_debuginfod} + Default DEBUGINFOD_URLS : ${default_debuginfod_urls} EXTRA TEST FEATURES (used with make check) have bunzip2 installed (required) : ${HAVE_BUNZIP2} -- 2.47.3