summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2021-08-26 19:18:43 +0100
committerSam James <sam@gentoo.org>2021-08-26 19:21:02 +0100
commit185c7bc43d6c85bfa46f3420493fbe3502071ad3 (patch)
treecd49ce66c63d0425359a88c5964dd207998b40a7 /sys-auth
parentnet-analyzer/wireshark: add 3.4.8 (diff)
downloadgentoo-185c7bc43d6c85bfa46f3420493fbe3502071ad3.tar.gz
gentoo-185c7bc43d6c85bfa46f3420493fbe3502071ad3.tar.bz2
gentoo-185c7bc43d6c85bfa46f3420493fbe3502071ad3.zip
sys-auth/nss_ldap: fix finding glibc version on no-multilib
Bit of a hack but the rest of it is rather fragile anyway. The issue was that ${EPREFIX}/lib doesn't exist on non-multilib systems. Bug: https://bugs.gentoo.org/810058 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-auth')
-rw-r--r--sys-auth/nss_ldap/files/nss_ldap-265-r10-libdir.patch31
-rw-r--r--sys-auth/nss_ldap/nss_ldap-265-r10.ebuild148
2 files changed, 179 insertions, 0 deletions
diff --git a/sys-auth/nss_ldap/files/nss_ldap-265-r10-libdir.patch b/sys-auth/nss_ldap/files/nss_ldap-265-r10-libdir.patch
new file mode 100644
index 000000000000..6fdf4cc6c08e
--- /dev/null
+++ b/sys-auth/nss_ldap/files/nss_ldap-265-r10-libdir.patch
@@ -0,0 +1,31 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -38,17 +38,13 @@
+ DEFS = @DEFS@
+ #INCLUDES = -I$(top_builddir) -I$(srcdir)
+
+-if GCC
+-MULTI_OS_DIRECTORY=$(shell $(CC) $(CFLAGS) -print-multi-os-directory)
+-else
+ MULTI_OS_DIRECTORY=.
+-endif
+
+ if GLIBC
+-LIBC_VERS = $(shell ls /lib/$(MULTI_OS_DIRECTORY)/libc-*.so | tail -n 1 | sed -e 's|.*libc-\(.*\)\.so|\1|')
++LIBC_VERS = $(shell ls @GENTOO_PORTAGE_EPREFIX@/$(LIBDIR_UNPREFIXED)/$(MULTI_OS_DIRECTORY)/libc-*.so | tail -n 1 | sed -e 's|.*libc-\(.*\)\.so|\1|')
+ NSS_LDAP_LIBC_VERSIONED = libnss_ldap-$(LIBC_VERS).so
+
+-NSS_VERS = $(shell ls /lib/$(MULTI_OS_DIRECTORY)/libnss_files.so.? | tail -n 1 | sed -e 's|.*libnss_files\.so\.\(.*\)|\1|')
++NSS_VERS = $(shell ls @GENTOO_PORTAGE_EPREFIX@/$(LIBDIR_UNPREFIXED)/$(MULTI_OS_DIRECTORY)/libnss_files.so.? | tail -n 1 | sed -e 's|.*libnss_files\.so\.\(.*\)|\1|')
+ NSS_LDAP_NSS_VERSIONED = libnss_ldap.so.$(NSS_VERS)
+ endif
+
+@@ -83,8 +79,6 @@
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ $(INSTALL_PROGRAM) -o $(INST_UID) -g $(INST_GID) nss_ldap.so $(DESTDIR)$(libdir)/$(NSS_LDAP_LIBC_VERSIONED)
+ (cd $(DESTDIR)$(libdir); ln -sf $(NSS_LDAP_LIBC_VERSIONED) $(NSS_LDAP_NSS_VERSIONED))
+- $(mkinstalldirs) $(DESTDIR)/usr$(libdir)
+- (cd $(DESTDIR)/usr$(libdir); ln -sf ../..$(libdir)/$(NSS_LDAP_NSS_VERSIONED) .)
+ else
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ if HPUX
diff --git a/sys-auth/nss_ldap/nss_ldap-265-r10.ebuild b/sys-auth/nss_ldap/nss_ldap-265-r10.ebuild
new file mode 100644
index 000000000000..c066b1fceb52
--- /dev/null
+++ b/sys-auth/nss_ldap/nss_ldap-265-r10.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools fixheadtails multilib-minimal prefix
+
+DESCRIPTION="NSS LDAP Module"
+HOMEPAGE="http://www.padl.com/OSS/nss_ldap.html"
+SRC_URI="http://www.padl.com/download/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux"
+IUSE="debug kerberos ssl sasl split-usr"
+
+DEPEND="
+ >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r3[${MULTILIB_USEDEP}] )
+ kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
+ ssl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${DEPEND}
+ !<net-fs/autofs-4.1.3
+"
+
+src_prepare() {
+ default
+
+ # Patch is for Prefix
+ # eprefixify is safe on non-Prefix systems, so go unconditional
+ # Note: comment this out or make it conditional on 'use prefix'
+ # if needs rebasing. Don't remove.
+ eapply "${FILESDIR}"/${P}-r9-libdir.patch
+ eprefixify Makefile.am
+
+ # bug 438692
+ eapply -p0 "${FILESDIR}"/${P}-pthread.patch
+
+ eapply -p0 "${FILESDIR}"/nsswitch.ldap.diff
+
+ # Applied by upstream
+ #eapply "${FILESDIR}"/${PN}-239-tls-security-bug.patch
+
+ eapply -p0 "${FILESDIR}"/${PN}-249-sasl-compile.patch
+
+ eapply "${FILESDIR}"/${PN}-265-reconnect-timeouts.patch
+
+ # Applied by upstream
+ #eapply "${FILESDIR}"/${PN}-254-nss_getgrent_skipmembers.patch
+
+ eapply "${FILESDIR}"/${PN}-257-nss_max_group_depth.patch
+
+ sed -i.orig \
+ -e '/^ @(#)\$Id: ldap.conf,v/s,^,#,' \
+ "${S}"/ldap.conf \
+ || die
+
+ # Fix head/tail stuff
+ ht_fix_file "${S}"/Makefile.am "${S}"/Makefile.in "${S}"/depcomp
+
+ # Fix build borkage
+ local i
+ for i in Makefile.{in,am}; do
+ sed -i.orig \
+ -e '/^install-exec-local: nss_ldap.so/s,nss_ldap.so,,g' \
+ "${S}"/$i || die
+ done
+
+ eapply "${FILESDIR}"/${PN}-257.2-gssapi-headers.patch
+
+ # Bug #214750, no automagic deps
+ eapply "${FILESDIR}"/${PN}-264-disable-automagic.patch
+
+ # Upstream forgets the version number sometimes
+ #sed -i \
+ # -e "/^AM_INIT_AUTOMAKE/s~2..~$PV~" \
+ # "${S}"/configure.in || die
+
+ # Include an SONAME
+ eapply "${FILESDIR}"/${PN}-254-soname.patch
+
+ # Fix broken oneshot connections
+ eapply "${FILESDIR}/nss_ldap-265-missing-entries-oneshot.patch"
+
+ sed -i \
+ -e 's, vers_string , PERL5LIB="@top_srcdir@" @top_srcdir@/vers_string ,g' \
+ "${S}"/Makefile.am || die
+
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myconf=(
+ # --enable-schema-mapping
+ --with-ldap-lib=openldap
+ --with-ldap-conf-file="${EPREFIX}/etc/ldap.conf"
+ --enable-paged-results
+ --enable-rfc2307bis
+ $(use_enable ssl)
+ $(use_enable sasl)
+ $(use_enable kerberos krb)
+ )
+
+ use debug && myconf+=( --enable-debugging )
+ use kerberos && myconf+=( --enable-configurable-krb5-ccname-gssapi )
+
+ # Neede to be careful with changing this
+ # bug #581306
+ multilib_is_native_abi && myconf+=( --libdir="${EPREFIX}/$(get_libdir)" )
+
+ ECONF_SOURCE=${S} econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+ emake -j1 DESTDIR="${D}" \
+ LIBDIR_UNPREFIXED="$(get_libdir)" \
+ INST_UID=${PORTAGE_USER:-root} \
+ INST_GID=${PORTAGE_GROUP:-root} \
+ install
+}
+
+multilib_src_install_all() {
+ use split-usr &&
+ dosym ../../$(get_libdir)/libnss_ldap.so.2 /usr/$(get_libdir)/libnss_ldap.so.2
+
+ insinto /etc
+ doins ldap.conf
+
+ # Append two blank lines and some skip entries
+ echo >>"${ED}"/etc/ldap.conf || die
+ echo >>"${ED}"/etc/ldap.conf || die
+ sed -i "${ED}"/etc/ldap.conf \
+ -e '$inss_initgroups_ignoreusers ldap,openldap,mysql,syslog,root,postgres' \
+ || die
+
+ dodoc ldap.conf ANNOUNCE NEWS ChangeLog AUTHORS \
+ CVSVersionInfo.txt README nsswitch.ldap certutil
+
+ docinto docs
+ dodoc -r doc/.
+}
+
+pkg_postinst() {
+ elog "If you use a ldaps:// string in the 'uri' setting of"
+ elog "your /etc/ldap.conf, you must set 'ssl on'!"
+}