From 422737f5b83682f126d435dfdf22f6a7eb978b75 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 25 Jul 2021 04:04:17 +0100 Subject: sys-apps/usbguard: [QA] unconditionally install completion files QA policy [0] says that we don't conditionalise installation of small files. It's a wasteful rebuild and inconsistent across packages for when users desire completions to be available. [0] https://projects.gentoo.org/qa/policy-guide/installed-files.html#pg0301 Signed-off-by: Sam James --- .../usbguard-1.0.0-bash-completion-configure.patch | 105 +++++++++++++++++++++ sys-apps/usbguard/usbguard-1.0.0-r1.ebuild | 99 ------------------- sys-apps/usbguard/usbguard-1.0.0-r2.ebuild | 100 ++++++++++++++++++++ 3 files changed, 205 insertions(+), 99 deletions(-) create mode 100644 sys-apps/usbguard/files/usbguard-1.0.0-bash-completion-configure.patch delete mode 100644 sys-apps/usbguard/usbguard-1.0.0-r1.ebuild create mode 100644 sys-apps/usbguard/usbguard-1.0.0-r2.ebuild (limited to 'sys-apps/usbguard') diff --git a/sys-apps/usbguard/files/usbguard-1.0.0-bash-completion-configure.patch b/sys-apps/usbguard/files/usbguard-1.0.0-bash-completion-configure.patch new file mode 100644 index 000000000000..c63a85f23a50 --- /dev/null +++ b/sys-apps/usbguard/files/usbguard-1.0.0-bash-completion-configure.patch @@ -0,0 +1,105 @@ +https://github.com/USBGuard/usbguard/pull/483 + +From b3bb39e0e5de61e1c713cb98ebca5e4c6529e2b9 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sun, 18 Jul 2021 03:42:21 +0100 +Subject: [PATCH] configure.ac: Use standard --with-bash-completion-dir option + +Rationale: +This makes it a lot easier to enable/disable installation +of bash completion files rather than it being based on +a certain package being installed (or not). It's useful +in Gentoo Linux for example where we may want to always +install Bash completion files to the right location, even +if the user isn't using it yet, to save rebuilds. + +This makes a few changes to the current Bash completion logic, mainly: +* Falls back gracefully to a standard directory if bash-completion + itself is not installed (in that case, we can't ask it via pkgconfig + where to place files). + +* So the behaviour is now: + * no argument / --with-bash-completion-dir=yes: + + Asks pkgconfig, but falls back to standard directory. + + * --with-bash-completion-dir=dir: + + Use the given directory with no detection. + + * --without-bash-completion-dir: + + No installation of Bash completion files. + +Signed-off-by: Sam James +--- + Makefile.am | 2 +- + configure.ac | 32 ++++++++++++++------------------ + 2 files changed, 15 insertions(+), 19 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 34a2e96..910c3c5 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -438,7 +438,7 @@ usbguard_LDADD=\ + $(top_builddir)/libusbguard.la \ + ${PTHREAD_LIBS} + +-if BASH_COMPLETION_ENABLED ++if ENABLE_BASH_COMPLETION + bashcompletiondir = $(BASH_COMPLETION_DIR) + dist_bashcompletion_DATA = $(top_srcdir)/scripts/bash_completion/usbguard + endif +diff --git a/configure.ac b/configure.ac +index 73021b6..4207ae2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -663,11 +663,18 @@ AC_ARG_ENABLE([systemd], + *) AC_MSG_ERROR([bad value ${enableval} for --enable-systemd]) ;; + esac], [systemd=no]) + +- +-PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], +- [bash_completion_dir="`$PKG_CONFIG --variable=completionsdir bash-completion`" +- bash_completion=yes], +- [bash_completion=no]) ++AC_ARG_WITH([bash-completion-dir], ++ AS_HELP_STRING([--with-bash-completion-dir[=PATH]], ++ [Enable bash auto-completion. Uses pkgconfig if no path given. @<:@default=yes@:>@]), ++ [], [with_bash_completion_dir=yes]) ++ ++if test "x$with_bash_completion_dir" = "xyes"; then ++ PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], ++ [BASH_COMPLETION_DIR=$($PKG_CONFIG --variable=completionsdir bash-completion)], ++ [BASH_COMPLETION_DIR="$datadir/bash-completion/completions"]) ++else ++ BASH_COMPLETION_DIR="$with_bash_completion_dir" ++fi + + if test "x$debug" = xyes; then + CXXFLAGS="$CXXFLAGS $CXXFLAGS_DEBUG_ENABLED" +@@ -706,19 +713,8 @@ fi + + AC_SUBST([ANALYZE_CONFIGURE_ARGS], $ac_configure_args) + +-case "$bash_completion_dir" in +- /usr/share/*|/usr/local/share/*) +- bash_completion_dir=$(echo "$bash_completion_dir" | sed -r 's,^(/usr/share|/usr/local/share),${datadir},') +- ;; +- /usr/*|/usr/local/*) +- bash_completion_dir=$(echo "$bash_completion_dir" | sed -r 's,^(/usr|/usr/local),${prefix},') +- ;; +- /*) +- bash_completion_dir='${prefix}'"$bash_completion_dir" +- ;; +-esac +- +-AC_SUBST([BASH_COMPLETION_DIR], $bash_completion_dir) ++AC_SUBST([BASH_COMPLETION_DIR]) ++AM_CONDITIONAL([ENABLE_BASH_COMPLETION], [test "x$with_bash_completion_dir" != "xno"]) + + AM_CONDITIONAL([SYSTEMD_SUPPORT_ENABLED], [test "x$systemd" = xyes ]) + AM_CONDITIONAL([DBUS_ENABLED], [test "x$with_dbus" = xyes ]) +-- +2.32.0 + diff --git a/sys-apps/usbguard/usbguard-1.0.0-r1.ebuild b/sys-apps/usbguard/usbguard-1.0.0-r1.ebuild deleted file mode 100644 index 45cb81c1a51a..000000000000 --- a/sys-apps/usbguard/usbguard-1.0.0-r1.ebuild +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools - -DESCRIPTION="Daemon protecting your computer against BadUSB" -HOMEPAGE="https://github.com/USBGuard/usbguard" -SRC_URI="https://github.com/USBGuard/usbguard/releases/download/${P}/${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0/1" # due to libusbguard.so.<1>.0.0 -KEYWORDS="~amd64 ~x86" -IUSE="bash-completion dbus ldap policykit static-libs systemd test umockdev" - -REQUIRED_USE="policykit? ( dbus )" - -# https://github.com/USBGuard/usbguard/issues/449 -# https://bugs.gentoo.org/769692 -REQUIRED_USE+=" test? ( static-libs )" - -CDEPEND=" - =dev-libs/libsodium-0.4.5:= - >=dev-libs/protobuf-2.5.0:= - >=sys-cluster/libqb-0.16.0:= - sys-devel/gcc:*[cxx] - >=sys-libs/libcap-ng-0.7.0 - >=sys-libs/libseccomp-2.0.0 - >=sys-process/audit-2.7.7 - bash-completion? ( >=app-shells/bash-completion-2.0 ) - dbus? ( - dev-libs/glib:2 - sys-apps/dbus - policykit? ( sys-auth/polkit[introspection] ) - ) - ldap? ( net-nds/openldap ) - systemd? ( sys-apps/systemd ) - umockdev? ( dev-util/umockdev ) - " -RDEPEND="${CDEPEND} - virtual/udev - " -DEPEND="${CDEPEND} - app-text/asciidoc - dev-cpp/catch:1 - dbus? ( - dev-libs/libxml2 - dev-libs/libxslt - dev-util/gdbus-codegen - ) - " - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-1.0.0-pthreads-link.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - local myargs=( - $(use_with dbus) - $(use_with ldap) - $(use_with policykit polkit) - $(use_enable static-libs static) - $(use_enable systemd) - $(use_enable umockdev) - ) - - econf "${myargs[@]}" -} - -src_install() { - default - - keepdir /var/lib/log/usbguard - - newinitd "${FILESDIR}"/${PN}-0.7.6-usbguard.openrc usbguard - use dbus && newinitd "${FILESDIR}"/${PN}-0.7.6-usbguard-dbus.openrc usbguard-dbus -} - -pkg_postinst() { - ewarn - ewarn 'BEFORE STARTING USBGUARD please be sure to create/generate' - ewarn ' a rules file at /etc/usbguard/rules.conf' - ewarn ' so that you do not' - ewarn ' GET LOCKED OUT' - ewarn " of this system (\"$(hostname)\")." - ewarn - ewarn 'This command may be of help:' - ewarn ' sudo sh -c "usbguard generate-policy > /etc/usbguard/rules.conf"' - ewarn -} diff --git a/sys-apps/usbguard/usbguard-1.0.0-r2.ebuild b/sys-apps/usbguard/usbguard-1.0.0-r2.ebuild new file mode 100644 index 000000000000..cf0a6c5a14dd --- /dev/null +++ b/sys-apps/usbguard/usbguard-1.0.0-r2.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools bash-completion-r1 + +DESCRIPTION="Daemon protecting your computer against BadUSB" +HOMEPAGE="https://github.com/USBGuard/usbguard" +SRC_URI="https://github.com/USBGuard/usbguard/releases/download/${P}/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0/1" # due to libusbguard.so.<1>.0.0 +KEYWORDS="~amd64 ~x86" +IUSE="dbus ldap policykit static-libs systemd test umockdev" + +REQUIRED_USE="policykit? ( dbus )" + +# https://github.com/USBGuard/usbguard/issues/449 +# https://bugs.gentoo.org/769692 +REQUIRED_USE+=" test? ( static-libs )" + +CDEPEND=" + =dev-libs/libsodium-0.4.5:= + >=dev-libs/protobuf-2.5.0:= + >=sys-cluster/libqb-0.16.0:= + sys-devel/gcc:*[cxx] + >=sys-libs/libcap-ng-0.7.0 + >=sys-libs/libseccomp-2.0.0 + >=sys-process/audit-2.7.7 + dbus? ( + dev-libs/glib:2 + sys-apps/dbus + policykit? ( sys-auth/polkit[introspection] ) + ) + ldap? ( net-nds/openldap ) + systemd? ( sys-apps/systemd ) + umockdev? ( dev-util/umockdev ) + " +RDEPEND="${CDEPEND} + virtual/udev + " +DEPEND="${CDEPEND} + app-text/asciidoc + dev-cpp/catch:1 + dbus? ( + dev-libs/libxml2 + dev-libs/libxslt + dev-util/gdbus-codegen + ) + " + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.0.0-pthreads-link.patch + "${FILESDIR}"/${PN}-1.0.0-bash-completion-configure.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + local myargs=( + --with-bash-completion-dir=$(get_bashcompdir) + $(use_with dbus) + $(use_with ldap) + $(use_with policykit polkit) + $(use_enable static-libs static) + $(use_enable systemd) + $(use_enable umockdev) + ) + + econf "${myargs[@]}" +} + +src_install() { + default + + keepdir /var/lib/log/usbguard + + newinitd "${FILESDIR}"/${PN}-0.7.6-usbguard.openrc usbguard + use dbus && newinitd "${FILESDIR}"/${PN}-0.7.6-usbguard-dbus.openrc usbguard-dbus +} + +pkg_postinst() { + ewarn + ewarn 'BEFORE STARTING USBGUARD please be sure to create/generate' + ewarn ' a rules file at /etc/usbguard/rules.conf' + ewarn ' so that you do not' + ewarn ' GET LOCKED OUT' + ewarn " of this system (\"$(hostname)\")." + ewarn + ewarn 'This command may be of help:' + ewarn ' sudo sh -c "usbguard generate-policy > /etc/usbguard/rules.conf"' + ewarn +} -- cgit v1.2.3-65-gdbad