commit: ad0022603bfad3436fc6618f6605bf857a6d63cc Author: Christopher Byrne <salah.coronya <AT> gmail <DOT> com> AuthorDate: Wed Oct 11 20:19:56 2023 +0000 Commit: Christopher Byrne <salah.coronya <AT> gmail <DOT> com> CommitDate: Wed Oct 11 20:19:56 2023 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ad002260
app-misc/oddjob: new package, add 0.34.7 Signed-off-by: Christopher Byrne <salah.coronya <AT> gmail.com> app-misc/oddjob/Manifest | 1 + ...ld-Fix-broken-AC_ARG_ENABLE-install-logic.patch | 59 +++++++++ ...non-PAM-mkhomedir-parts-when-PAM-support-.patch | 39 ++++++ ...ild-Remove-with-systemd-and-with-sysvinit.patch | 144 +++++++++++++++++++++ ...7-build-Restore-conditional-with-pam-flag.patch | 66 ++++++++++ ....34.7-src-oddjobd.c-Fix-non-selinux-build.patch | 35 +++++ app-misc/oddjob/files/oddjob.init.d | 21 +++ app-misc/oddjob/metadata.xml | 9 ++ app-misc/oddjob/oddjob-0.34.7.ebuild | 65 ++++++++++ 9 files changed, 439 insertions(+) diff --git a/app-misc/oddjob/Manifest b/app-misc/oddjob/Manifest new file mode 100644 index 0000000000..1fba06727b --- /dev/null +++ b/app-misc/oddjob/Manifest @@ -0,0 +1 @@ +DIST oddjob-0.34.7.tar.gz 459131 BLAKE2B 197083e0799897b1b9f753b0b6c9fa3db669305eb386475d9e18f0a6b2cce2c3cbc8bb220df465dfc0ac7374c7544bcf9cefd666e5c3667f4647ae85eab04a2b SHA512 df98f3d2ce18de5d2db6d638995c01c80aec51f7ad979b879b2e8d8f7d6c2e464cbff3c70ed9b528399337f8fba31744f955ca17fdad1d4e9193fb0f10ea391a diff --git a/app-misc/oddjob/files/oddjob-0.34.7-build-Fix-broken-AC_ARG_ENABLE-install-logic.patch b/app-misc/oddjob/files/oddjob-0.34.7-build-Fix-broken-AC_ARG_ENABLE-install-logic.patch new file mode 100644 index 0000000000..5cfae2c9a6 --- /dev/null +++ b/app-misc/oddjob/files/oddjob-0.34.7-build-Fix-broken-AC_ARG_ENABLE-install-logic.patch @@ -0,0 +1,59 @@ +From 1112006e8de56fae69e2418b155622f96e2b9fea Mon Sep 17 00:00:00 2001 +From: Christopher Byrne <salah.coro...@gmail.com> +Date: Thu, 21 Sep 2023 19:35:24 -0500 +Subject: [PATCH 2/3] build: Fix broken AC_ARG_ENABLE install logic + +The arguments for AC_ARG_ENABLE were wrong. The 3rd argument is +"if specified" and the 4th argument is "if not specified". So +--disable-X did not work. + +Signed-off-by: Christopher Byrne <salah.coro...@gmail.com> +--- + configure.ac | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0f6b497..632f47c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -91,9 +91,9 @@ AC_SUBST(SYSTEMDSYSTEMUNITDIR) + + AC_ARG_ENABLE(sample, + AS_HELP_STRING(--enable-sample,[Build and install a sample service.]), +-sample=$withval, +-sample=no) +-AM_CONDITIONAL(INSTALL_SAMPLE,test x$sample = xyes) ++, ++[enables_sample=no]) ++AM_CONDITIONAL(INSTALL_SAMPLE,test x$enable_sample = xyes) + + AC_ARG_ENABLE(experimental, + AS_HELP_STRING(--enable-experimental,[Build experimental helpers.]), +@@ -330,18 +330,18 @@ AC_DEFINE_UNQUOTED(DBUS_PACKAGE,"$DBUS_PACKAGE",[Define to the package name for + + AC_ARG_ENABLE(xml-docs, + AS_HELP_STRING(--enable-xml-docs,[Reformat XML documentation.]), +-xml_docs=$withval, +-xml_docs=no) +-AM_CONDITIONAL(REFORMAT_XML_DOCS,test x$xml_docs = xyes) ++, ++[enable_xml_docs=no]) ++AM_CONDITIONAL(REFORMAT_XML_DOCS,test x$enable_xml_docs = xyes) + AC_PATH_PROGS(PATH_XMLTO,xmlto,:) + AC_SUBST(PATH_XMLTO) + + AC_ARG_ENABLE(compat-dtd, + AS_HELP_STRING(--enable-compat-dtd,[Use DocBook 4.3 instead of DocBook 4.4.]), +-compat_dtd=$withval, +-compat_dtd=no) ++, ++[enable_xml_dtd=no]) + AC_MSG_CHECKING([which version of the DocBook DTD to use]) +-if test x$compat_dtd = xyes ; then ++if test x$enable_compat_dtd = xyes ; then + DOCBOOK_PACKAGE_START= + DOCBOOK_PACKAGE_END= + DOCBOOK_VERSION=4.3 +-- +2.41.0 + diff --git a/app-misc/oddjob/files/oddjob-0.34.7-build-Keep-non-PAM-mkhomedir-parts-when-PAM-support-.patch b/app-misc/oddjob/files/oddjob-0.34.7-build-Keep-non-PAM-mkhomedir-parts-when-PAM-support-.patch new file mode 100644 index 0000000000..c6ec183fa0 --- /dev/null +++ b/app-misc/oddjob/files/oddjob-0.34.7-build-Keep-non-PAM-mkhomedir-parts-when-PAM-support-.patch @@ -0,0 +1,39 @@ +From da68ec0acc6cfdd40ccd0ad23971b66e4517811e Mon Sep 17 00:00:00 2001 +From: Christopher Byrne <salah.coro...@gmail.com> +Date: Wed, 4 Oct 2023 20:21:20 -0500 +Subject: [PATCH] build: Keep non-PAM mkhomedir parts when PAM support is + disabled + +Signed-off-by: Christopher Byrne <salah.coro...@gmail.com> +--- + src/Makefile.am | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index e3af35d..5360168 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -25,9 +25,7 @@ endif + + confddir = $(sysconfdir)/$(PACKAGE)d.conf.d + confd_DATA = oddjobd-introspection.conf +-if BUILD_PAM + confd_DATA += oddjobd-mkhomedir.conf +-endif + + CLEANFILES = $(confd_DATA) + +@@ -40,10 +38,8 @@ install-data-hook: + pkgsysconfdir = $(sysconfdir)/$(PACKAGE) + systemdbusdir = $(sysconfdir)/@DBUS_PACKAGE@/system.d + systemdbus_DATA = oddjob.conf +-if BUILD_PAM + systemdbus_DATA += oddjob-mkhomedir.conf + pkglibexec_PROGRAMS = mkhomedir +-endif + + pkglibexecdir = $(libexecdir)/$(PACKAGE) + pkglibexec_SCRIPTS = sanity.sh +-- +2.41.0 + diff --git a/app-misc/oddjob/files/oddjob-0.34.7-build-Remove-with-systemd-and-with-sysvinit.patch b/app-misc/oddjob/files/oddjob-0.34.7-build-Remove-with-systemd-and-with-sysvinit.patch new file mode 100644 index 0000000000..253111efb4 --- /dev/null +++ b/app-misc/oddjob/files/oddjob-0.34.7-build-Remove-with-systemd-and-with-sysvinit.patch @@ -0,0 +1,144 @@ +From f63287a35107385dcb6e04a4c742077c9d1eab86 Mon Sep 17 00:00:00 2001 +From: Christopher Byrne <salah.coro...@gmail.com> +Date: Tue, 19 Sep 2023 08:39:15 -0500 +Subject: [PATCH 3/3] build: Remove --with-systemd and --with-sysvinit + +There no need a configure option for just a single file that doesn't require +any compilation. Install it unconditionally, and just delete unwanted file + +Fixes: https://pagure.io/oddjob/pull-request/16 + +Signed-off-by: Christopher Byrne <salah.coro...@gmail.com> +--- + configure.ac | 62 +++++---------------------------------------- + oddjob.spec | 10 ++++---- + scripts/Makefile.am | 8 ++---- + 3 files changed, 14 insertions(+), 66 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 632f47c..13a28af 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -74,20 +74,13 @@ DEFAULT_RECONNECT_TIMEOUT=30 + AC_DEFINE_UNQUOTED(DEFAULT_RECONNECT_TIMEOUT,$DEFAULT_RECONNECT_TIMEOUT,[Define to the default amount of time which oddjobd will pause between attempts to reconnect to the system message bus after being disconnected for any reason.]) + AC_SUBST(DEFAULT_RECONNECT_TIMEOUT) + +-AC_ARG_ENABLE(systemd, +-AS_HELP_STRING([--enable-systemd],[install unit file for systemd]), +-SYSTEMD=$enableval, +-SYSTEMD=no) +- +-AC_SUBST(SYSTEMD) +-AM_CONDITIONAL(SYSTEMD,test x$SYSTEMD != xno) +-if test x$SYSTEMD = xyes ; then +- SYSTEMDSYSTEMUNITDIR=`pkg-config --variable=systemdsystemunitdir systemd 2> /dev/null` +- AC_MSG_RESULT(will install systemd unit file) +-else +- AC_MSG_RESULT(will install sysv init script) +-fi +-AC_SUBST(SYSTEMDSYSTEMUNITDIR) ++AC_ARG_WITH([systemdsystemunitdir], ++ [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], ++ [Directory for systemd service files])],, ++ [PKG_CHECK_VAR([with_systemdsystemunitdir],[systemd], ++ [systemdsystemunitdir],, ++ [with_systemdsystemunitdir=${libdir}/systemd/system])]) ++AC_SUBST([systemdsystemunitdir],[$with_systemdsystemunitdir]) + + AC_ARG_ENABLE(sample, + AS_HELP_STRING(--enable-sample,[Build and install a sample service.]), +@@ -365,47 +358,6 @@ currentgid=`id -g` + AC_SUBST(currentgid) + AC_PATH_PROGS(PATH_PWD,pwd,pwd) + +-AC_ARG_ENABLE(systemd, +-AS_HELP_STRING(--enable-systemd,[Install systemd unit files]), +-systemd=$enableval +-if test x$systemd = xyes ; then +- SYSTEMDSYSTEMUNITDIR=`pkg-config --variable=systemdsystemunitdir systemd` +-fi +-, +-if pkg-config systemd 2> /dev/null ; then +- SYSTEMDSYSTEMUNITDIR=`pkg-config --variable=systemdsystemunitdir systemd 2> /dev/null` +- systemd=yes +-else +- systemd=no +-fi +-) +- +-AC_ARG_ENABLE(sysvinit, +-AS_HELP_STRING(--enable-sysvinit,[Install sysvinit unit files]), +-sysvinit=$enableval, +-if test x$systemd = xno ; then +- sysvinit=yes +-else +- sysvinit=no +-fi +-) +-if test x$systemd = xyes ; then +- AC_MSG_RESULT([installing systemd unit file]) +- if test "x$SYSTEMDSYSTEMUNITDIR" = x ; then +- AC_MSG_ERROR([error locating systemd system unit directory]) +- fi +- AC_SUBST(SYSTEMDSYSTEMUNITDIR) +-else +- AC_MSG_RESULT([not installing systemd unit file]) +-fi +-AM_CONDITIONAL(SYSTEMD,test x$systemd = xyes) +-if test x$sysvinit = xyes ; then +- AC_MSG_RESULT([installing sysv init script]) +-else +- AC_MSG_RESULT([not installing sysv init script]) +-fi +-AM_CONDITIONAL(SYSVINIT,test x$sysvinit = xyes) +- + AC_ARG_ENABLE(pie, + AS_HELP_STRING(--enable-pie,[Build position-independent executables.]), + pie=$enableval, +diff --git a/oddjob.spec b/oddjob.spec +index f4943a1..c5a09dd 100644 +--- a/oddjob.spec ++++ b/oddjob.spec +@@ -100,11 +100,6 @@ sample_flag=--enable-sample + --with-selinux-labels \ + --without-python --enable-xml-docs --enable-compat-dtd \ + --disable-dependency-tracking \ +-%if %{systemd} +- --enable-systemd --disable-sysvinit \ +-%else +- --enable-sysvinit --disable-systemd \ +-%endif + $sample_flag + make %{_smp_mflags} + +@@ -119,6 +114,11 @@ if ! test -d "$RPM_BUILD_ROOT"/%{_lib}/security ; then + mv "$RPM_BUILD_ROOT"/%{_libdir}/security/*.so "$RPM_BUILD_ROOT"/%{_lib}/security/ + fi + %endif ++%if %{systemd} ++rm -f "$RPM_BUILD_ROOT"%{_initrddir}/oddjobd ++%else ++rm -f "$RPM_BUILD_ROOT"%{_unitdir}/oddjobd.service ++%endif + # Recommended, though I disagree. + rm -f "$RPM_BUILD_ROOT"/%{_libdir}/*.la + +diff --git a/scripts/Makefile.am b/scripts/Makefile.am +index 86d50be..a5a89b7 100644 +--- a/scripts/Makefile.am ++++ b/scripts/Makefile.am +@@ -1,9 +1,5 @@ + EXTRA_DIST = oddjobd.in oddjobd.service.in +-if SYSVINIT ++systemdsystemunit_DATA = oddjobd.service + initdir = $(sysconfdir)/rc.d/init.d + init_SCRIPTS = oddjobd +-endif +-if SYSTEMD +-unitdir = @SYSTEMDSYSTEMUNITDIR@ +-unit_DATA = oddjobd.service +-endif ++ +-- +2.41.0 + diff --git a/app-misc/oddjob/files/oddjob-0.34.7-build-Restore-conditional-with-pam-flag.patch b/app-misc/oddjob/files/oddjob-0.34.7-build-Restore-conditional-with-pam-flag.patch new file mode 100644 index 0000000000..80a4de6eb5 --- /dev/null +++ b/app-misc/oddjob/files/oddjob-0.34.7-build-Restore-conditional-with-pam-flag.patch @@ -0,0 +1,66 @@ +From f5cf1c6556baf7108a6e3a3f34ee5e3f7ae849c5 Mon Sep 17 00:00:00 2001 +From: Christopher Byrne <salah.coro...@gmail.com> +Date: Wed, 20 Sep 2023 20:01:57 -0500 +Subject: [PATCH 1/2] build: Restore conditional --with-pam flag + +THis also fixed the spec to add --with-pam. Distrobutions like Gentoo need this + +Signed-off-by: Christopher Byrne <salah.coro...@gmail.com> +--- + configure.ac | 27 +++++++++++++++------------ + oddjob.spec | 1 + + 2 files changed, 16 insertions(+), 12 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 13a28af..bca6307 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -43,18 +43,21 @@ DBUS_INTROSPECTION_METHOD=Introspect + AC_SUBST(DBUS_INTROSPECTION_INTERFACE) + AC_SUBST(DBUS_INTROSPECTION_METHOD) + +-pam=yes +-AC_CHECK_HEADERS(security/pam_modules.h) +-savedLDFLAGS="$LDFLAGS" +-LDFLAGS= +-savedLIBS="$LIBS" +-LIBS= +-AC_CHECK_FUNCS([pam_get_user pam_get_item],,[AC_CHECK_LIB(pam,pam_get_user,,pam=no)]) +-PAM_LIBS="$LIBS" +-LIBS="$savedLIBS" +-LDFLAGS="$savedLDFLAGS" +-AC_SUBST(PAM_LIBS) +-AM_CONDITIONAL(BUILD_PAM,test x$pam = xyes) ++AC_ARG_WITH([pam], ++ [AS_HELP_STRING([--with-pam],[Build and install pam_oddjob_mkhomedir])] ++ ,,[with_pam=yes]) ++AS_IF([test "x$with_pam" != "xno"], ++ [AC_CHECK_HEADERS(security/pam_modules.h) ++ savedLDFLAGS="$LDFLAGS" ++ LDFLAGS= ++ savedLIBS="$LIBS" ++ LIBS= ++ AC_CHECK_FUNCS([pam_get_user pam_get_item],,[AC_CHECK_LIB(pam,pam_get_user,,pam=no)]) ++ PAM_LIBS="$LIBS" ++ LIBS="$savedLIBS" ++ LDFLAGS="$savedLDFLAGS" ++ AC_SUBST(PAM_LIBS)]) ++AM_CONDITIONAL(BUILD_PAM,[test "x$with_pam" != "xno"]) + + dnl Oh, for the clear management of OID arcs.... + NAMESPACE=com.redhat +diff --git a/oddjob.spec b/oddjob.spec +index c5a09dd..6e62f2b 100644 +--- a/oddjob.spec ++++ b/oddjob.spec +@@ -96,6 +96,7 @@ sample_flag=--enable-sample + %configure \ + --disable-static \ + --enable-pie --enable-now \ ++ --with-pam \ + --with-selinux-acls \ + --with-selinux-labels \ + --without-python --enable-xml-docs --enable-compat-dtd \ +-- +2.41.0 + diff --git a/app-misc/oddjob/files/oddjob-0.34.7-src-oddjobd.c-Fix-non-selinux-build.patch b/app-misc/oddjob/files/oddjob-0.34.7-src-oddjobd.c-Fix-non-selinux-build.patch new file mode 100644 index 0000000000..7cee66b647 --- /dev/null +++ b/app-misc/oddjob/files/oddjob-0.34.7-src-oddjobd.c-Fix-non-selinux-build.patch @@ -0,0 +1,35 @@ +From 6e0328ab88daed53ffbaca9a7212cf57ff70de69 Mon Sep 17 00:00:00 2001 +From: Christopher Byrne <salah.coro...@gmail.com> +Date: Tue, 19 Sep 2023 09:44:59 -0500 +Subject: [PATCH 1/3] src/oddjobd.c: Fix non-selinux build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes a oddjobd.c:2988:61: error: ‘struct <anonymous>’ has no member +named ‘selinux_enabled’ + +Signed-off-by: Christopher Byrne <salah.coro...@gmail.com> +--- + src/oddjobd.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/oddjobd.c b/src/oddjobd.c +index ca78550..44de748 100644 +--- a/src/oddjobd.c ++++ b/src/oddjobd.c +@@ -2985,7 +2985,11 @@ main(int argc, char **argv) + + /* Open a connection to the message bus. */ + check_selinux_applicable(); ++#if SELINUX_ACLS + ctx = oddjob_dbus_listeners_new(options.bus, globals.selinux_enabled); ++#else ++ ctx = oddjob_dbus_listeners_new(options.bus, 0); ++#endif + if (ctx == NULL) { + fprintf(stderr, "Error connecting to D-Bus!\n"); + return 2; +-- +2.41.0 + diff --git a/app-misc/oddjob/files/oddjob.init.d b/app-misc/oddjob/files/oddjob.init.d new file mode 100644 index 0000000000..732ad5b632 --- /dev/null +++ b/app-misc/oddjob/files/oddjob.init.d @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +depend() { + after netmount localmount + need dbus +} + +start() { + ebegin "Starting oddjobd" + start-stop-daemon -p /run/lock/oddjobd.pid \ + --exec /usr/sbin/oddjobd --start -- -p /run/lock/oddjobd.pid + eend $? +} + +stop() { + ebegin "Stopping oddjobd" + start-stop-daemon -p /run/lock/oddjobd.pid --stop + eend $? +} diff --git a/app-misc/oddjob/metadata.xml b/app-misc/oddjob/metadata.xml new file mode 100644 index 0000000000..a9cb1a3afe --- /dev/null +++ b/app-misc/oddjob/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>salah.coro...@gmail.com</email> + <name>Christopher Byrne</name> + </maintainer> +</pkgmetadata> + diff --git a/app-misc/oddjob/oddjob-0.34.7.ebuild b/app-misc/oddjob/oddjob-0.34.7.ebuild new file mode 100644 index 0000000000..7610d7dd59 --- /dev/null +++ b/app-misc/oddjob/oddjob-0.34.7.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="A D-Bus service which runs odd jobs on behalf of client applications" + +HOMEPAGE="https://pagure.io/oddjob" +SRC_URI="https://releases.pagure.org/oddjob/${P}.tar.gz" +LICENSE="BSD" + +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc examples pam selinux" + +RESTRICT="test" + +RDEPEND="sys-apps/dbus[selinux?] + pam? ( sys-libs/pam ) + selinux? ( + sec-policy/selinux-oddjob + sys-libs/libselinux + )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + doc? ( app-text/docbook-xml-dtd:4.3 + app-text/xmlto + )" + +PATCHES=( + "${FILESDIR}/${PN}-0.34.7-build-Fix-broken-AC_ARG_ENABLE-install-logic.patch" + "${FILESDIR}/${PN}-0.34.7-build-Keep-non-PAM-mkhomedir-parts-when-PAM-support-.patch" + "${FILESDIR}/${PN}-0.34.7-build-Remove-with-systemd-and-with-sysvinit.patch" + "${FILESDIR}/${PN}-0.34.7-build-Restore-conditional-with-pam-flag.patch" + "${FILESDIR}/${PN}-0.34.7-src-oddjobd.c-Fix-non-selinux-build.patch" +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + --libdir=/$(get_libdir) + $(use_with pam) + $(use_with selinux selinux-labels) + $(use_with selinux selinux-acls) + $(use_enable examples sample) + $(use_enable doc xml-docs) + $(use_enable doc compat-dtd) + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + rm -f "${ED}/etc/rc.d/init.d/oddjobd" + newinitd "${FILESDIR}/oddjob.init.d" "oddjobd" + + find "${ED}" -iname \*.la -type f -delete +}