>From 2c0c0234ea151e00e7f3a26bbc80e5be3b16d627 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/elfutils.{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 | 2 +-
config/profile.csh.in | 2 ++
config/profile.sh.in| 3 +++
configure.ac| 13 +
7 files changed, 37 insertions(+), 2 deletions(-)
create mode 100644 config/profile.csh.in
create mode 100644 config/profile.sh.in
diff --git a/ChangeLog b/ChangeLog
index 021b06f3ff25..72e8397cc43f 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 c8e4fcd43f8b..9c31925f665d 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 11f17df06f21..3baccede61cb 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 $(sysconfdir)/profile.d/elfutils.sh
+ $(INSTALL_DATA) profile.csh -D $(sysconfdir)/profile.d/elfutils.csh
+
if MAINTAINER_MODE
$(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS
@tmpname=$$(mktemp $${TMPDIR:-/tmp}/elfutils.XX); \
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index 37af1b076095..946e27498b2e 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
diff --git a/config/profile.csh.in b/config/profile.csh.in
new file mode 100644
index ..4f25896d1fc5
--- /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 ..8a022489e374
--- /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 1b794df316d9..973409f14759 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 : ${enabl