From 29e522f2109165e621b2f4955a74ea6cf291c89c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20L=C3=BCke?= Date: Fri, 7 Aug 2020 15:36:50 +0200 Subject: [PATCH] dev-libs/cyrus-sasl: Apply Flatcar patch and drop r4 ebuild --- .../cyrus-sasl/cyrus-sasl-2.1.27-r3.ebuild | 2 + .../cyrus-sasl/cyrus-sasl-2.1.27-r4.ebuild | 261 ------------------ ...yrus-sasl-2.1.27-fix-cross-compiling.patch | 40 +++ 3 files changed, 42 insertions(+), 261 deletions(-) delete mode 100644 sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r4.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.27-fix-cross-compiling.patch diff --git a/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r3.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r3.ebuild index d7fb6c3409..bcbff9d8ba 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r3.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r3.ebuild @@ -57,6 +57,8 @@ PATCHES=( "${FILESDIR}/${PN}-2.1.27-doc_build_fix.patch" "${FILESDIR}/${PN}-2.1.27-memmem.patch" "${FILESDIR}/${PN}-2.1.27-CVE-2019-19906.patch" + # Flatcar: + "${FILESDIR}/${PN}-2.1.27-fix-cross-compiling.patch" ) pkg_setup() { diff --git a/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r4.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r4.ebuild deleted file mode 100644 index fc73d847e1..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/cyrus-sasl-2.1.27-r4.ebuild +++ /dev/null @@ -1,261 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit eutils flag-o-matic multilib multilib-minimal autotools pam java-pkg-opt-2 db-use systemd toolchain-funcs - -SASLAUTHD_CONF_VER="2.1.26" - -DESCRIPTION="The Cyrus SASL (Simple Authentication and Security Layer)" -HOMEPAGE="https://www.cyrusimap.org/sasl/" -#SRC_URI="ftp://ftp.cyrusimap.org/cyrus-sasl/${P}.tar.gz" -SRC_URI="https://github.com/cyrusimap/${PN}/releases/download/${P}/${P}.tar.gz" - -LICENSE="BSD-with-attribution" -SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="authdaemond berkdb gdbm kerberos ldapdb libressl openldap mysql pam postgres sample selinux sqlite srp ssl static-libs urandom" - -CDEPEND=" - net-mail/mailbase - virtual/libcrypt:= - authdaemond? ( || ( net-mail/courier-imap mail-mta/courier ) ) - berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] ) - gdbm? ( >=sys-libs/gdbm-1.10-r1:=[${MULTILIB_USEDEP}] ) - kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) - openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] ) - mysql? ( dev-db/mysql-connector-c:0=[${MULTILIB_USEDEP}] ) - pam? ( >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] ) - postgres? ( dev-db/postgresql:* ) - sqlite? ( >=dev-db/sqlite-3.8.2:3[${MULTILIB_USEDEP}] ) - ssl? ( - !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - libressl? ( dev-libs/libressl:=[${MULTILIB_USEDEP}] ) - ) - java? ( >=virtual/jdk-1.6:= )" - -REQUIRED_USE="ldapdb? ( openldap )" - -RDEPEND=" - ${CDEPEND} - selinux? ( sec-policy/selinux-sasl )" - -DEPEND="${CDEPEND}" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/sasl/md5global.h -) - -PATCHES=( - "${FILESDIR}/${PN}-2.1.27-avoid_pic_overwrite.patch" - "${FILESDIR}/${PN}-2.1.27-autotools_fixes.patch" - "${FILESDIR}/${PN}-2.1.27-as_needed.patch" - "${FILESDIR}/${PN}-2.1.25-auxprop.patch" - "${FILESDIR}/${PN}-2.1.27-gss_c_nt_hostbased_service.patch" - "${FILESDIR}/${PN}-2.1.26-missing-size_t.patch" - "${FILESDIR}/${PN}-2.1.27-doc_build_fix.patch" - "${FILESDIR}/${PN}-2.1.27-memmem.patch" - "${FILESDIR}/${PN}-2.1.27-CVE-2019-19906.patch" -) - -pkg_setup() { - java-pkg-opt-2_pkg_setup -} - -src_prepare() { - default - - # Get rid of the -R switch (runpath_switch for Sun) - # >=gcc-4.6 errors out with unknown option - sed -i -e '/LIB_SQLITE.*-R/s/ -R[^"]*//' \ - configure.ac || die - - # Use plugindir for sasldir - sed -i '/^sasldir =/s:=.*:= $(plugindir):' \ - "${S}"/plugins/Makefile.{am,in} || die "sed failed" - - # #486740 #468556 - sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:g' \ - -e 's:AC_CONFIG_MACRO_DIR:AC_CONFIG_MACRO_DIRS:g' \ - configure.ac || die - - eautoreconf - - export CC_FOR_BUILD="$(tc-getBUILD_CC)" -} - -src_configure() { - append-flags -fno-strict-aliasing - if [[ ${CHOST} == *-solaris* ]] ; then - # getpassphrase is defined in /usr/include/stdlib.h - append-cppflags -DHAVE_GETPASSPHRASE - else - # this horrendously breaks things on Solaris - append-cppflags -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # Java support. - multilib_is_native_abi && use java && export JAVAC="${JAVAC} ${JAVACFLAGS}" - - local myeconfargs=( - --enable-login - --enable-ntlm - --enable-auth-sasldb - --disable-cmulocal - --disable-krb4 - --disable-macos-framework - --enable-otp - --without-sqlite - --with-saslauthd="${EPREFIX}"/run/saslauthd - --with-pwcheck="${EPREFIX}"/run/saslauthd - --with-configdir="${EPREFIX}"/etc/sasl2 - --with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sasl2 - --with-dbpath="${EPREFIX}"/etc/sasl2/sasldb2 - --with-sphinx-build=no - $(use_with ssl openssl) - $(use_with pam) - $(use_with openldap ldap) - $(use_enable ldapdb) - $(multilib_native_use_enable sample) - $(use_enable kerberos gssapi) - $(multilib_native_use_enable java) - $(multilib_native_use_with mysql mysql "${EPREFIX}"/usr) - $(multilib_native_use_with postgres pgsql "${EPREFIX}"/usr/$(get_libdir)/postgresql) - $(use_with sqlite sqlite3 "${EPREFIX}"/usr/$(get_libdir)) - $(use_enable srp) - $(use_enable static-libs static) - - # Add authdaemond support (bug #56523). - $(usex authdaemond --with-authdaemond="${EPREFIX}"/var/lib/courier/authdaemon/socket '') - - # Fix for bug #59634. - $(usex ssl '' --without-des) - - # Use /dev/urandom instead of /dev/random (bug #46038). - $(usex urandom --with-devrandom=/dev/urandom '') - ) - - if use sqlite || { multilib_is_native_abi && { use mysql || use postgres; }; } ; then - myeconfargs+=( --enable-sql ) - else - myeconfargs+=( --disable-sql ) - fi - - # Default to GDBM if both 'gdbm' and 'berkdb' are present. - if use gdbm ; then - einfo "Building with GNU DB as database backend for your SASLdb" - myeconfargs+=( --with-dblib=gdbm ) - elif use berkdb ; then - einfo "Building with BerkeleyDB as database backend for your SASLdb" - myeconfargs+=( - --with-dblib=berkeley - --with-bdb-incdir="$(db_includedir)" - ) - else - einfo "Building without SASLdb support" - myeconfargs+=( --with-dblib=none ) - fi - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_compile() { - emake - - # Default location for java classes breaks OpenOffice (bug #60769). - # Thanks to axxo@gentoo.org for the solution. - if multilib_is_native_abi && use java ; then - jar -cvf ${PN}.jar -C java $(find java -name "*.class") - fi -} - -multilib_src_install() { - default - - if multilib_is_native_abi; then - if use sample ; then - docinto sample - dodoc "${S}"/sample/*.c - exeinto /usr/share/doc/${P}/sample - doexe sample/client sample/server - fi - - # Default location for java classes breaks OpenOffice (bug #60769). - if use java; then - java-pkg_dojar ${PN}.jar - java-pkg_regso "${ED}/usr/$(get_libdir)/libjavasasl$(get_libname)" - # hackish, don't wanna dig through makefile - rm -rf "${ED}/usr/$(get_libdir)/java" || die - docinto "java" - dodoc "${S}/java/README" "${FILESDIR}/java.README.gentoo" "${S}"/java/doc/* - insinto "/usr/share/doc/${PF}/java/Test" - doins "${S}"/java/Test/*.java - fi - - dosbin saslauthd/testsaslauthd - fi -} - -multilib_src_install_all() { - doman man/* - - keepdir /etc/sasl2 - - # Reset docinto to default value (#674296) - docinto - dodoc AUTHORS ChangeLog doc/legacy/TODO - newdoc pwcheck/README README.pwcheck - - newdoc docsrc/sasl/release-notes/$(ver_cut 1-2)/index.rst release-notes - edos2unix "${ED}/usr/share/doc/${PF}/release-notes" - - docinto html - dodoc doc/html/*.html - - newpamd "${FILESDIR}/saslauthd.pam-include" saslauthd - - newinitd "${FILESDIR}/pwcheck.rc6" pwcheck - systemd_dounit "${FILESDIR}/pwcheck.service" - - newinitd "${FILESDIR}/saslauthd2.rc7" saslauthd - newconfd "${FILESDIR}/saslauthd-${SASLAUTHD_CONF_VER}.conf" saslauthd - systemd_dounit "${FILESDIR}/saslauthd.service" - systemd_dotmpfilesd "${FILESDIR}/${PN}.conf" - - # The get_modname bit is important: do not remove the .la files on - # platforms where the lib isn't called .so for cyrus searches the .la to - # figure out what the name is supposed to be instead - if ! use static-libs && [[ $(get_modname) == .so ]] ; then - find "${ED}" -name "*.la" -delete || die - fi -} - -pkg_postinst() { - # Generate an empty sasldb2 with correct permissions. - if ( use berkdb || use gdbm ) && [[ ! -f "${EROOT}/etc/sasl2/sasldb2" ]] ; then - einfo "Generating an empty sasldb2 with correct permissions ..." - echo "p" | "${EROOT}/usr/sbin/saslpasswd2" -f "${EROOT}/etc/sasl2/sasldb2" -p login \ - || die "Failed to generate sasldb2" - "${EROOT}/usr/sbin/saslpasswd2" -f "${EROOT}/etc/sasl2/sasldb2" -d login \ - || die "Failed to delete temp user" - chown root:mail "${EROOT}/etc/sasl2/sasldb2" \ - || die "Failed to chown ${EROOT}/etc/sasl2/sasldb2" - chmod 0640 "${EROOT}/etc/sasl2/sasldb2" \ - || die "Failed to chmod ${EROOT}/etc/sasl2/sasldb2" - fi - - if use authdaemond ; then - elog "You need to add a user running a service using Courier's" - elog "authdaemon to the 'mail' group. For example, do:" - elog " gpasswd -a postfix mail" - elog "to add the 'postfix' user to the 'mail' group." - fi - - elog "pwcheck and saslauthd home directories have moved to:" - elog " /run/saslauthd, using tmpfiles.d" -} diff --git a/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.27-fix-cross-compiling.patch b/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.27-fix-cross-compiling.patch new file mode 100644 index 0000000000..86fbcad2e4 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.27-fix-cross-compiling.patch @@ -0,0 +1,40 @@ +--- cyrus-sasl-2.1.27/m4/sasl2.m4 ++++ cyrus-sasl-2.1.27/m4/sasl2.m4 +@@ -311,36 +311,7 @@ if test "$gssapi" != no; then + [AC_DEFINE(HAVE_GSS_C_SEC_CONTEXT_SASL_SSF,, + [Define if your GSSAPI implementation defines GSS_C_SEC_CONTEXT_SASL_SSF])]) + fi +- cmu_save_LIBS="$LIBS" +- LIBS="$LIBS $GSSAPIBASE_LIBS" +- +- AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries]) +- AC_TRY_RUN([ +-#ifdef HAVE_GSSAPI_H +-#include +-#else +-#include +-#endif +- +-int main(void) +-{ +- gss_OID_desc spnego_oid = { 6, (void *) "\x2b\x06\x01\x05\x05\x02" }; +- gss_OID_set mech_set; +- OM_uint32 min_stat; +- int have_spnego = 0; +- +- if (gss_indicate_mechs(&min_stat, &mech_set) == GSS_S_COMPLETE) { +- gss_test_oid_set_member(&min_stat, &spnego_oid, mech_set, &have_spnego); +- gss_release_oid_set(&min_stat, &mech_set); +- } +- +- return (!have_spnego); // 0 = success, 1 = failure +-} +-], +- [ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO]) +- AC_MSG_RESULT(yes) ], +- AC_MSG_RESULT(no)) +- LIBS="$cmu_save_LIBS" ++ AC_DEFINE(HAVE_GSS_SPNEGO,,[1]) + + else + AC_MSG_RESULT([disabled])