From f5acbd68ff1375c71bbde95563e912b059d96476 Mon Sep 17 00:00:00 2001 From: Bertrand Jacquin Date: Mon, 27 May 2013 15:05:37 +0200 Subject: dev-libs/cyrus-sasl: add static support Need to report upstream --- dev-libs/cyrus-sasl/Manifest | 28 +++ dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild | 254 +++++++++++++++++++++ .../files/cyrus-sasl-0001_versioned_symbols.patch | 30 +++ .../files/cyrus-sasl-0002_testsuite.patch | 26 +++ .../files/cyrus-sasl-0006_library_mutexes.patch | 25 ++ .../cyrus-sasl-0008_one_time_sasl_set_alloc.patch | 67 ++++++ .../files/cyrus-sasl-0010_maintainer_mode.patch | 13 ++ ...cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch | 12 + .../cyrus-sasl-0012_xopen_crypt_prototype.patch | 15 ++ .../cyrus-sasl-0014_avoid_pic_overwrite.patch | 27 +++ ...rus-sasl-0016_pid_file_lock_creation_mask.patch | 24 ++ ...rus-sasl-0026_drop_krb5support_dependency.patch | 38 +++ .../files/cyrus-sasl-2.1.17-pgsql-include.patch | 15 ++ .../files/cyrus-sasl-2.1.19-checkpw.c.patch | 172 ++++++++++++++ .../files/cyrus-sasl-2.1.21-keytab.patch | 39 ++++ .../files/cyrus-sasl-2.1.22-as-needed.patch | 11 + .../cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch | 71 ++++++ .../cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch | 15 ++ .../cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch | 24 ++ .../cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch | 22 ++ .../files/cyrus-sasl-2.1.23+db-5.0.patch | 23 ++ .../files/cyrus-sasl-2.1.23-authd-fix.patch | 28 +++ dev-libs/cyrus-sasl/files/java.README.gentoo | 39 ++++ dev-libs/cyrus-sasl/files/pwcheck.rc6 | 21 ++ dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf | 25 ++ dev-libs/cyrus-sasl/files/saslauthd.pam-include | 8 + dev-libs/cyrus-sasl/files/saslauthd2.rc6 | 21 ++ 27 files changed, 1093 insertions(+) create mode 100644 dev-libs/cyrus-sasl/Manifest create mode 100644 dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch create mode 100644 dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch create mode 100644 dev-libs/cyrus-sasl/files/java.README.gentoo create mode 100644 dev-libs/cyrus-sasl/files/pwcheck.rc6 create mode 100644 dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf create mode 100644 dev-libs/cyrus-sasl/files/saslauthd.pam-include create mode 100644 dev-libs/cyrus-sasl/files/saslauthd2.rc6 (limited to 'dev-libs') diff --git a/dev-libs/cyrus-sasl/Manifest b/dev-libs/cyrus-sasl/Manifest new file mode 100644 index 00000000..962ab7f7 --- /dev/null +++ b/dev-libs/cyrus-sasl/Manifest @@ -0,0 +1,28 @@ +AUX cyrus-sasl-0001_versioned_symbols.patch 914 RMD160 dc3a5ed8dccc445aeec2567899667b63ee8ed6d9 SHA1 7e37dc17c2faa8ab85f9df5613f43ddbd2371f79 SHA256 d64669070f4d19d884eaeb7d2b3b66987a714c2dda462bbbc4bcf452b705c3e0 +AUX cyrus-sasl-0002_testsuite.patch 1055 RMD160 6567c8af51b9e0f14b2bc6c1f187a464dcdea3bb SHA1 5c2719c1644e482a384e73b6fb8c1794d7d733b7 SHA256 d7fff57482c2a9b148296ec680327d0cbd5254ed0a0bc99f46e2dc73758a6abc +AUX cyrus-sasl-0006_library_mutexes.patch 805 RMD160 7f040e7120085f9289992029f3194cce88a6dd3b SHA1 975763dac218e41fdad130b46bb2f9d11a4a0053 SHA256 c1b955a6e9873284d27a1df62cc8952d5dbca0ea729ba326aa6f8b4ed1a96c6e +AUX cyrus-sasl-0008_one_time_sasl_set_alloc.patch 2067 RMD160 e36206ff84f29ec1dacce8af6e937a9d88727003 SHA1 24fd4281fab75dfda85f8e5a74006c74b9a647da SHA256 2489dbd2548fb19c75c511c3b1e86077b4dc9c9218c9d0513fdb37ff06c75dad +AUX cyrus-sasl-0010_maintainer_mode.patch 340 RMD160 a496dd77ebd6529244ac225ac7204da17c9b3cf3 SHA1 635778d9ef67062f50636a005c2d02430be12c45 SHA256 dfe0cbaacbe8b6b50d14c9fcd62f0bb5e69ab942bbbfd9fbc5db96c724fadd47 +AUX cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch 281 RMD160 d512f4ab2fe2ff4bfb2fdb625a66452849e03ec3 SHA1 67a5e849894bb0384cb014c8d26e5e95589020f3 SHA256 84458e986e1d83c4ed2c2797f367ae8a36cfe73dfc3b68a3b98e64588d9e1da2 +AUX cyrus-sasl-0012_xopen_crypt_prototype.patch 720 RMD160 64c6048959643fa35f5603567e584f202b28f87a SHA1 6e06a49e00f4e818f2a04a5a3e8e71a3677affff SHA256 1a6d1aa451c18a9ee61a1dc64a1e18a99935b3467f64a2f92e9bb70680039223 +AUX cyrus-sasl-0014_avoid_pic_overwrite.patch 1074 RMD160 612297d6e9a057413efe196aa72979af78ee7b97 SHA1 753ce0e08230efc659cdcfd0e9c55cd54be06402 SHA256 b78a3456c964116e8d121e5607b6ea3dd54d7a2696a10a18d41ff08b299ad982 +AUX cyrus-sasl-0016_pid_file_lock_creation_mask.patch 924 RMD160 df6b85598ec6ba33299c00d5a091409549549d9e SHA1 8debd6ce8d2b0362f7cc6092af9a0695fd7057bd SHA256 4d802c2027e3a537be50305b0648ccdcdef6c1515b07a3d5d7bef3fb8dfbf531 +AUX cyrus-sasl-0026_drop_krb5support_dependency.patch 1625 RMD160 ab33cbc5737fb50634c2e1ac20e1f33d820093d8 SHA1 d7df4985fd3e15c60178664e2479a4bff9283bb9 SHA256 e0bc73fb5a8858334ff49a2fbada79369867a7d5e90e6f9655c71d30a020656f +AUX cyrus-sasl-2.1.17-pgsql-include.patch 588 RMD160 3291e3f65adafea6403bb7a83c0853c6dedab943 SHA1 11488c57e29ca99041a42f82fc492354829b822c SHA256 577b2431bb49ce8fcd9f5f864532e69e84fc6032c56fa564f9e95e25cfdfbc7e +AUX cyrus-sasl-2.1.19-checkpw.c.patch 4657 RMD160 111af2b3295c073aae6fceda63df582d4292dd8d SHA1 f7f7d6ff73263db1d568b9ce557d4ffbf835a15a SHA256 5bdb8b3525429696a391d95c89faa553c3137c442f71479bc1aa430ee5255495 +AUX cyrus-sasl-2.1.21-keytab.patch 1460 RMD160 5ef293218caf06ce1dbf0d889031b99196ad6e25 SHA1 8bf838d5932b940f04595400b6015d05d843c770 SHA256 51f0098f1293981cbea57c7c8fdb0ba7622e9b26404fe1a92bdfcdbad1526269 +AUX cyrus-sasl-2.1.22-as-needed.patch 463 RMD160 190cfa32c54ad9417adaca7c6d0d75d771fee450 SHA1 438a7a8a3394bfefdb5280617e4f67deb7af1002 SHA256 bc26996cbafb59f4daf1d7acc077bae9a60e4746109a9ec4a580eaba5cb9ca78 +AUX cyrus-sasl-2.1.22-crypt.patch 2892 RMD160 ea119e119c19c89f009238c97c654d0de394b30e SHA1 353e7a1bba16d5a83bdea2577ae0d80e5d507702 SHA256 cad92b50aabbf2bcfdbd8169949a85a75c96e12ad43fcd4aaf89d6d7482210bf +AUX cyrus-sasl-2.1.22-db4.patch 684 RMD160 8d9989f99b946314473ee3befbdcf66a410847cb SHA1 39a1fc5b652f0a35a144947933db0b7e3461785e SHA256 2d2459cd54edcd0f0fc85af6bd95a9c057599af5862f257dd2d01b5796bc02f0 +AUX cyrus-sasl-2.1.22-gcc44.patch 540 RMD160 42889604f03e88d88204e5ab27fe82f7b06786d2 SHA1 9a6df4fef0e388b70d4da5675f994c94262aa992 SHA256 d803266d96bb3b9f46bc2ce4ec280509d769bbf9c1a226e20c13803db398a113 +AUX cyrus-sasl-2.1.22-qa.patch 525 RMD160 9c8c5c1be5711b96f822e7192db8456a7b8eb1ae SHA1 17f07fb21a3ca01f8cf9c3ee7aa18632cf0dbb29 SHA256 56dbdc290871f3a42e507fe0be90431de15a832da7cf99bf3c21fb5aef05c8ac +AUX cyrus-sasl-2.1.23+db-5.0.patch 1009 RMD160 35ecdbbc216f24982436fd0ff7d5c0701243424e SHA1 6d28d951106c7ece4133bb4785f68bbf968da686 SHA256 6570d4ff7668a7df47b457ebf38c232bcd9b7034db37d23effa5a18b735dc38e +AUX cyrus-sasl-2.1.23-authd-fix.patch 829 RMD160 93161e6f36a3718bf92186a2d16967fa79ed4ad3 SHA1 7355bfc5ee53c69385ddd8da9710a17d4257bba3 SHA256 8732176e4a493b6b1548dc4799bf6866b9c324f5ecaafc9d9beffe0ac423d43d +AUX java.README.gentoo 934 RMD160 53369bc85186e7be3e86a98d19a0a19ca4535c2b SHA1 8ddb577ffe968d4ff3cda27402ce21988c55519a SHA256 aeb733ab6371c1fe50e413e8469dcd11f0750b5afff489408c45f118857fc3fe +AUX pwcheck.rc6 538 RMD160 acd0c14abc01390b6bf0944c2b35691e00f4c27f SHA1 ef9ebcf058536a0429211d8ed0d35aacb84a35cf SHA256 9e0d9ab2f0d0f7bccbcc194f6cbfe8ed67e94958465a18f3985f3819f5ed04e1 +AUX saslauthd-2.1.21.conf 926 RMD160 fab448738564cb27562a08363a9de84b1141bcc0 SHA1 3220aa01bc5aa3ed4163f3120790f581682fe2e3 SHA256 31e1676f845540dafa9c09799b110234a6362bcd056feaa1ae096e277c9d216e +AUX saslauthd.pam-include 160 RMD160 643057c1c0e6fc859114b152dab1bf0e89c13c70 SHA1 4202ff7752fd39614211dfc099faace5509c632f SHA256 97166de49d227cf5ff305168ea75ca584feda9ab87d1eb1437638861986e70ba +AUX saslauthd2.rc6 525 RMD160 b21261a0c3670d66314269775ec8ff06e9437d88 SHA1 1dfb2736a8a12181a1948870b1063577f6863b2d SHA256 329fb67382e307ab6d37aa789667b04a91ba3f69e9c1023b0902adafed065ee9 +DIST cyrus-sasl-2.1.23-ntlm_impl-spnego.patch.gz 7462 RMD160 5931936a5271241a85fe6c7bc0ae3ebba9bd4534 SHA1 0e4e843823301ac16dec18d089010b7b33d548af SHA256 9514a7436b11184cfd7e8a9ccd3590ce9f89cf2dc272ffbbdeeab16f9ae4fe6f +DIST cyrus-sasl-2.1.23.tar.gz 1613642 RMD160 b2cd9734fa8b4bad82663517f019f9b92d9d3519 SHA1 5df33a6788d6cd8329b109eff777c6cfae1a21bd SHA256 20efcc4040cbab6e89a636a07dcf5720ee07b5c62359a4e7bf2500ef6020b136 +EBUILD cyrus-sasl-2.1.23-r4.ebuild 8926 RMD160 854034f8fe53d56cad9dcfbf39381a1673067eaf SHA1 11837413ea26815969f9bf1acaab0fc4f892f510 SHA256 0bbc7cf2033690592cdb92d1595793fd179c240061f76e2a36b8f2f79259d0c7 diff --git a/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild new file mode 100644 index 00000000..ee56e88e --- /dev/null +++ b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild @@ -0,0 +1,254 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild,v 1.8 2011/07/24 17:53:44 armin76 Exp $ + +EAPI=2 + +inherit eutils flag-o-matic multilib autotools pam java-pkg-opt-2 db-use + +ntlm_patch="${P}-ntlm_impl-spnego.patch.gz" +SASLAUTHD_CONF_VER="2.1.21" + +DESCRIPTION="The Cyrus SASL (Simple Authentication and Security Layer)." +HOMEPAGE="http://asg.web.cmu.edu/sasl/" +SRC_URI="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/${P}.tar.gz + ntlm_unsupported_patch? ( mirror://gentoo/${ntlm_patch} )" + +LICENSE="as-is" +SLOT="2" +KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd" +IUSE="authdaemond berkdb crypt gdbm kerberos openldap mysql ntlm_unsupported_patch pam postgres sample srp ssl static urandom" + +DEPEND="authdaemond? ( || ( >=net-mail/courier-imap-3.0.7 >=mail-mta/courier-0.46 ) ) + berkdb? ( >=sys-libs/db-3.2 ) + gdbm? ( >=sys-libs/gdbm-1.8.0 ) + kerberos? ( virtual/krb5 ) + openldap? ( >=net-nds/openldap-2.0.25 ) + mysql? ( virtual/mysql ) + ntlm_unsupported_patch? ( >=net-fs/samba-3.0.9 ) + pam? ( virtual/pam ) + postgres? ( dev-db/postgresql-base ) + ssl? ( >=dev-libs/openssl-0.9.6d ) + java? ( >=virtual/jdk-1.4 )" +RDEPEND="${DEPEND}" + +pkg_setup() { + if use gdbm && use berkdb ; then + echo + elog "You have both 'gdbm' and 'berkdb' USE flags enabled." + elog "gdbm will be selected." + echo + fi + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + # Fix default port name for rimap auth mechanism. + sed -e '/define DEFAULT_REMOTE_SERVICE/s:imap:imap2:' \ + -i saslauthd/auth_rimap.c || die "sed failed" + + # UNSUPPORTED ntlm patch #81342 + use ntlm_unsupported_patch && epatch "${DISTDIR}/${ntlm_patch}" + epatch "${FILESDIR}"/${PN}-2.1.17-pgsql-include.patch + use crypt && epatch "${FILESDIR}"/${PN}-2.1.19-checkpw.c.patch #45181 + epatch "${FILESDIR}"/${PN}-2.1.22-as-needed.patch + epatch "${FILESDIR}/${PN}-2.1.21-keytab.patch" + epatch "${FILESDIR}"/${PN}-2.1.22-crypt.patch #152544 + epatch "${FILESDIR}"/${PN}-2.1.22-qa.patch + epatch "${FILESDIR}/${PN}-2.1.22-gcc44.patch" #248738 + epatch "${FILESDIR}"/${P}-authd-fix.patch + epatch "${FILESDIR}"/${P}+db-5.0.patch + epatch "${FILESDIR}/${PN}-0001_versioned_symbols.patch" + epatch "${FILESDIR}/${PN}-0002_testsuite.patch" + epatch "${FILESDIR}/${PN}-0006_library_mutexes.patch" + epatch "${FILESDIR}/${PN}-0008_one_time_sasl_set_alloc.patch" + epatch "${FILESDIR}/${PN}-0010_maintainer_mode.patch" + epatch "${FILESDIR}/${PN}-0011_saslauthd_ac_prog_libtool.patch" + epatch "${FILESDIR}/${PN}-0012_xopen_crypt_prototype.patch" + epatch "${FILESDIR}/${PN}-0014_avoid_pic_overwrite.patch" + epatch "${FILESDIR}/${PN}-0016_pid_file_lock_creation_mask.patch" + epatch "${FILESDIR}/${PN}-0026_drop_krb5support_dependency.patch" + + sed -i -e '/for dbname in/s:db-4.* db:'$(db_libname)':' \ + "${S}"/cmulocal/berkdb.m4 + + # Upstream doesn't even honor their own configure options... grumble + sed -i '/^sasldir =/s:=.*:= $(plugindir):' \ + "${S}"/plugins/Makefile.{am,in} || die "sed failed" + + # make sure to use common plugin ldflags + sed -i '/_la_LDFLAGS = /s:=:= $(AM_LDFLAGS) :' plugins/Makefile.am || die + + # Recreate configure. + rm -f "${S}/config/libtool.m4" || die "rm libtool.m4 failed" + AT_M4DIR="${S}/cmulocal ${S}/config" eautoreconf +} + +src_configure() { + # Fix QA issues. + append-flags -fno-strict-aliasing + append-cppflags -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED + + # Java support. + use java && export JAVAC="${JAVAC} ${JAVACFLAGS}" + + local myconf + + # Add authdaemond support (bug #56523). + if use authdaemond ; then + myconf="${myconf} --with-authdaemond=/var/lib/courier/authdaemon/socket" + fi + + # Fix for bug #59634. + if ! use ssl ; then + myconf="${myconf} --without-des" + fi + + if use mysql || use postgres ; then + myconf="${myconf} --enable-sql" + else + myconf="${myconf} --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" + myconf="${myconf} --with-dblib=gdbm" + elif use berkdb ; then + einfo "Building with BerkeleyDB as database backend for your SASLdb" + myconf="${myconf} --with-dblib=berkeley --with-bdb-incdir=$(db_includedir)" + else + einfo "Building without SASLdb support" + myconf="${myconf} --with-dblib=none" + fi + + # Use /dev/urandom instead of /dev/random (bug #46038). + use urandom && myconf="${myconf} --with-devrandom=/dev/urandom" + + econf \ + --enable-login \ + --enable-ntlm \ + --enable-auth-sasldb \ + --disable-krb4 \ + --disable-otp \ + --without-sqlite \ + --with-saslauthd=/var/lib/sasl2 \ + --with-pwcheck=/var/lib/sasl2 \ + --with-configdir=/etc/sasl2 \ + --with-plugindir=/usr/$(get_libdir)/sasl2 \ + --with-dbpath=/etc/sasl2/sasldb2 \ + $(use_with ssl openssl) \ + $(use_with pam) \ + $(use_with openldap ldap) \ + $(use_enable openldap ldapdb) \ + $(use_enable sample) \ + $(use_enable kerberos gssapi) \ + $(use_enable java) \ + $(use_with java javahome ${JAVA_HOME}) \ + $(use_with mysql) \ + $(use_with postgres pgsql) \ + $(use_enable srp) \ + $(use_enable static) \ + ${myconf} +} + +src_compile() { + use static \ + && { emake -C lib db_none.o || die "emake db_none.o failed" ; } + + # We force -j1 for bug #110066. + emake -j1 || die "emake failed" + + # Default location for java classes breaks OpenOffice (bug #60769). + # Thanks to axxo@gentoo.org for the solution. + cd "${S}" + if use java ; then + jar -cvf ${PN}.jar -C java $(find java -name "*.class") + fi + + # Add testsaslauthd (bug #58768). + cd "${S}/saslauthd" + emake testsaslauthd || die "emake testsaslauthd failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + keepdir /var/lib/sasl2 /etc/sasl2 + + # Install everything necessary so users can build sample + # client/server (bug #64733). + if use sample ; then + insinto /usr/share/${PN}-2/examples + doins aclocal.m4 config.h config.status configure.in + dosym /usr/include/sasl /usr/share/${PN}-2/examples/include + exeinto /usr/share/${PN}-2/examples + doexe libtool + insinto /usr/share/${PN}-2/examples/sample + doins sample/*.{c,h} sample/*Makefile* + insinto /usr/share/${PN}-2/examples/sample/.deps + doins sample/.deps/* + dodir /usr/share/${PN}-2/examples/lib + dosym /usr/$(get_libdir)/libsasl2.la /usr/share/${PN}-2/examples/lib/libsasl2.la + dodir /usr/share/${PN}-2/examples/lib/.libs + dosym /usr/$(get_libdir)/libsasl2.so /usr/share/${PN}-2/examples/lib/.libs/libsasl2.so + fi + + # Default location for java classes breaks OpenOffice (bug #60769). + if use java ; then + java-pkg_dojar ${PN}.jar + java-pkg_regso "${D}/usr/$(get_libdir)/libjavasasl.so" + # hackish, don't wanna dig through makefile + rm -Rf "${D}/usr/$(get_libdir)/java" + docinto "java" + dodoc "${S}/java/README" "${FILESDIR}/java.README.gentoo" "${S}"/java/doc/* + dodir "/usr/share/doc/${PF}/java/Test" + insinto "/usr/share/doc/${PF}/java/Test" + doins "${S}"/java/Test/*.java || die "Failed to copy java files to /usr/share/doc/${PF}/java/Test" + fi + + docinto "" + dodoc AUTHORS ChangeLog NEWS README doc/TODO doc/*.txt + newdoc pwcheck/README README.pwcheck + dohtml doc/*.html + + docinto "saslauthd" + dodoc saslauthd/{AUTHORS,ChangeLog,LDAP_SASLAUTHD,NEWS,README} + + newpamd "${FILESDIR}/saslauthd.pam-include" saslauthd || die "Failed to install saslauthd to /etc/pam.d" + + newinitd "${FILESDIR}/pwcheck.rc6" pwcheck || die "Failed to install pwcheck to /etc/init.d" + + newinitd "${FILESDIR}/saslauthd2.rc6" saslauthd || die "Failed to install saslauthd to /etc/init.d" + newconfd "${FILESDIR}/saslauthd-${SASLAUTHD_CONF_VER}.conf" saslauthd || die "Failed to install saslauthd to /etc/conf.d" + + exeinto /usr/sbin + newexe "${S}/saslauthd/testsaslauthd" testsaslauthd || die "Failed to install testsaslauthd" +} + +pkg_postinst () { + # Generate an empty sasldb2 with correct permissions. + if ( use berkdb || use gdbm ) && [[ ! -f "${ROOT}/etc/sasl2/sasldb2" ]] ; then + einfo "Generating an empty sasldb2 with correct permissions ..." + echo "p" | "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -p login \ + || die "Failed to generate sasldb2" + "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -d login \ + || die "Failed to delete temp user" + chown root:mail "${ROOT}/etc/sasl2/sasldb2" \ + || die "Failed to chown ${ROOT}/etc/sasl2/sasldb2" + chmod 0640 "${ROOT}/etc/sasl2/sasldb2" \ + || die "Failed to chmod ${ROOT}/etc/sasl2/sasldb2" + fi + + if use sample ; then + elog "You have chosen to install sources for the example client and server." + elog "To build these, please type:" + elog "\tcd /usr/share/${PN}-2/examples/sample && make" + 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 +} diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch new file mode 100644 index 00000000..312afc8f --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch @@ -0,0 +1,30 @@ +Author: Fabian Fagerholm + + Use versioned symbols for libsasl2. + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index e09fe6e..e74c507 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -61,8 +61,8 @@ LIB_DOOR= @LIB_DOOR@ + lib_LTLIBRARIES = libsasl2.la + + libsasl2_la_SOURCES = $(common_sources) $(common_headers) +-libsasl2_la_LDFLAGS = -version-info $(sasl_version) +-libsasl2_la_DEPENDENCIES = $(LTLIBOBJS) ++libsasl2_la_LDFLAGS = -version-info $(sasl_version) -Wl,--version-script=$(top_srcdir)/Versions ++libsasl2_la_DEPENDENCIES = $(LTLIBOBJS) $(top_srcdir)/Versions + libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT) + + if MACOSX +new file mode 100644 +index 0000000..ff7190d +--- /dev/null ++++ b/Versions +@@ -0,0 +1,6 @@ ++SASL2 { ++ global: ++ sasl_*; prop_*; auxprop_plugin_info; _sasl_MD5*; ++}; ++ ++HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch new file mode 100644 index 00000000..c5509279 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch @@ -0,0 +1,26 @@ +Author: Fabian Fagerholm +Description: Rename the testsuite program to sasltestsuite and use /etc/sasldb2 +instead of ./sasldb as default path for the sasldb database file. +--- trunk.orig/utils/testsuite.c ++++ trunk/utils/testsuite.c +@@ -464,9 +464,9 @@ + *len = (unsigned) strlen("sasldb"); + return SASL_OK; + } else if (!strcmp(option, "sasldb_path")) { +- *result = "./sasldb"; ++ *result = "/etc/sasldb2"; + if (len) +- *len = (unsigned) strlen("./sasldb"); ++ *len = (unsigned) strlen("/etc/sasldb2"); + return SASL_OK; + } else if (!strcmp(option, "canon_user_plugin")) { + *result = cu_plugin; +@@ -2925,7 +2925,7 @@ + void usage(void) + { + printf("Usage:\n" \ +- " testsuite [-g name] [-s seed] [-r tests] -a -M\n" \ ++ " sasltestsuite [-g name] [-s seed] [-r tests] -a -M\n" \ + " g -- gssapi service name to use (default: host)\n" \ + " r -- # of random tests to do (default: 25)\n" \ + " a -- do all corruption tests (and ignores random ones unless -r specified)\n" \ diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch new file mode 100644 index 00000000..539bc067 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch @@ -0,0 +1,25 @@ +Author: Fabian Fagerholm +Description: Exact description unknown; make sure mutex-related code works. +--- trunk.orig/lib/common.c ++++ trunk/lib/common.c +@@ -771,7 +771,7 @@ + result = sasl_canonuser_add_plugin("INTERNAL", internal_canonuser_init); + if(result != SASL_OK) return result; + +- if (!free_mutex) ++ if (!free_mutex || free_mutex == 0x1) + free_mutex = sasl_MUTEX_ALLOC(); + if (!free_mutex) return SASL_FAIL; + +@@ -790,6 +790,11 @@ + + /* serialize disposes. this is necessary because we can't + dispose of conn->mutex if someone else is locked on it */ ++ ++ if (!free_mutex || free_mutex == 0x1) ++ free_mutex = sasl_MUTEX_ALLOC(); ++ if (!free_mutex) return SASL_FAIL; ++ + result = sasl_MUTEX_LOCK(free_mutex); + if (result!=SASL_OK) return; + diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch new file mode 100644 index 00000000..e252bab5 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch @@ -0,0 +1,67 @@ +Author: Fabian Fagerholm +Description: Make sasl_set_alloc a one-time function. +This patch will divert all allocations to whomever called +sasl_set_alloc first, hopefully that will be the application. If +not, we sure *hope* the library doing stupid things has sane +sasl_set_alloc semantics... +It will also deny any futher tries to sasl_set_alloc after one +of the _init functions are called. +This patch was introduced and works fine in SASL 1.5, and no +applications started behaving in insane ways, so chances are it +will also work with SASL 2.1 +Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=139568 +Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=274087 +Reference: https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2525 +--- trunk.orig/lib/client.c ++++ trunk/lib/client.c +@@ -202,6 +202,9 @@ + { NULL, NULL } + }; + ++ /* lock allocation type */ ++ _sasl_allocation_locked++; ++ + if(_sasl_client_active) { + /* We're already active, just increase our refcount */ + /* xxx do something with the callback structure? */ +--- trunk.orig/lib/common.c ++++ trunk/lib/common.c +@@ -107,6 +107,7 @@ + (sasl_realloc_t *) &realloc, + (sasl_free_t *) &free + }; ++int _sasl_allocation_locked = 0; + + #define SASL_ENCODEV_EXTRA 4096 + +@@ -637,6 +638,8 @@ + sasl_realloc_t *r, + sasl_free_t *f) + { ++ if (_sasl_allocation_locked++) return; ++ + _sasl_allocation_utils.malloc=m; + _sasl_allocation_utils.calloc=c; + _sasl_allocation_utils.realloc=r; +--- trunk.orig/lib/saslint.h ++++ trunk/lib/saslint.h +@@ -300,6 +300,7 @@ + + extern sasl_allocation_utils_t _sasl_allocation_utils; + extern sasl_mutex_utils_t _sasl_mutex_utils; ++extern int _sasl_allocation_locked; + + /* + * checkpw.c +--- trunk.orig/lib/server.c ++++ trunk/lib/server.c +@@ -698,6 +698,9 @@ + { NULL, NULL } + }; + ++ /* lock allocation type */ ++ _sasl_allocation_locked++; ++ + /* we require the appname (if present) to be short enough to be a path */ + if (appname != NULL && strlen(appname) >= PATH_MAX) + return SASL_BADPARAM; diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch new file mode 100644 index 00000000..14d44564 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch @@ -0,0 +1,13 @@ +Author: Fabian Fagerholm +Description: Enable maintainer mode to avoid auto* problems. +--- trunk.orig/configure.in ++++ trunk/configure.in +@@ -62,6 +62,8 @@ + AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.23) + CMU_INIT_AUTOMAKE + ++AM_MAINTAINER_MODE ++ + # and include our config dir scripts + ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config" + diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch new file mode 100644 index 00000000..e9b92a40 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch @@ -0,0 +1,12 @@ +Author: Fabian Fagerholm +Description: Enable libtool use. +--- trunk.orig/saslauthd/configure.in ++++ trunk/saslauthd/configure.in +@@ -25,6 +25,7 @@ + AC_PROG_MAKE_SET + AC_PROG_LN_S + AC_PROG_INSTALL ++AC_PROG_LIBTOOL + + dnl Checks for build foo + CMU_C___ATTRIBUTE__ diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch new file mode 100644 index 00000000..d9daad7d --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch @@ -0,0 +1,15 @@ +Author: Dann Frazier +Description: When _XOPEN_SOURCE is defined, the subsequent #include +will define a correct function prototype for the crypt function. This avoids +segfaults on architectures where the size of a pointer is greater than the size +of an integer (ia64 and amd64 are examples). This may be detected by looking +for build log lines such as the following: +auth_shadow.c:183: warning: implicit declaration of function ‘crypt’ +auth_shadow.c:183: warning: cast to pointer from integer of different size +--- trunk.orig/saslauthd/auth_shadow.c ++++ trunk/saslauthd/auth_shadow.c +@@ -1,3 +1,4 @@ ++#define _XOPEN_SOURCE + #define PWBUFSZ 256 /***SWB***/ + + /* MODULE: auth_shadow */ diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch new file mode 100644 index 00000000..ffc69b77 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch @@ -0,0 +1,27 @@ +Author: Fabian Fagerholm +Description: This patch makes sure the non-PIC version of libsasldb.a, which +is created out of non-PIC objects, is not going to overwrite the PIC version, +which is created out of PIC objects. The PIC version is placed in .libs, and +the non-PIC version in the current directory. This ensures that both non-PIC +and PIC versions are available in the correct locations. +--- trunk.orig/lib/Makefile.am ++++ trunk/lib/Makefile.am +@@ -76,7 +76,7 @@ + + libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS) + @echo adding static plugins and dependencies +- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS) ++ $(AR) cru $@ $(SASL_STATIC_OBJS) + @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \ + if test ! -f $$i; then continue; fi; . $$i; \ + for j in $$dependency_libs foo; do \ +--- trunk.orig/sasldb/Makefile.am ++++ trunk/sasldb/Makefile.am +@@ -63,6 +63,6 @@ + EXTRA_libsasldb_a_SOURCES = + + libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC) +- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC) ++ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC) + + diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch new file mode 100644 index 00000000..a80ca063 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch @@ -0,0 +1,24 @@ +Author: Sam Hocevar +Description: pid_file_lock is created with a mask of 644 instead of 0644. This +patch fixes this octal/decimal confusion as well as the (harmless) one in the +previous umask() call. +--- trunk.orig/saslauthd/saslauthd-main.c ++++ trunk/saslauthd/saslauthd-main.c +@@ -276,7 +276,7 @@ + exit(1); + } + +- umask(077); ++ umask(0077); + + pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1; + if ((pid_file_lock = malloc(pid_file_size)) == NULL) { +@@ -287,7 +287,7 @@ + strlcpy(pid_file_lock, run_path, pid_file_size); + strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size); + +- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) { ++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) { + rc = errno; + logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock); + logger(L_ERR, L_FUNC, "open: %s", strerror(rc)); diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch new file mode 100644 index 00000000..4df6a5ab --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch @@ -0,0 +1,38 @@ +Author: Roberto C. Sanchez +Description: Drop gratuitous dependency on krb5support +--- trunk.orig/aclocal.m4 ++++ trunk/aclocal.m4 +@@ -2924,9 +2924,6 @@ + fi + + if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then +- # check for libkrb5support first +- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET}) +- + gss_failed=0 + AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1, + ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET}) +--- trunk.orig/cmulocal/sasl2.m4 ++++ trunk/cmulocal/sasl2.m4 +@@ -110,9 +110,6 @@ + fi + + if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then +- # check for libkrb5support first +- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET}) +- + gss_failed=0 + AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1, + ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET}) +--- trunk.orig/saslauthd/aclocal.m4 ++++ trunk/saslauthd/aclocal.m4 +@@ -1333,9 +1333,6 @@ + fi + + if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then +- # check for libkrb5support first +- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET}) +- + gss_failed=0 + AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1, + ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET}) diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch new file mode 100644 index 00000000..0ee7236d --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch @@ -0,0 +1,15 @@ +Fix include path for newer PostgreSQL versions + +--- configure.in ++++ configure.in +@@ -674,7 +674,9 @@ + LIB_PGSQL_DIR=$LIB_PGSQL + LIB_PGSQL="$LIB_PGSQL -lpq" + +- if test -d ${with_pgsql}/include/pgsql; then ++ if test -d ${with_pgsql}/include/postgresql/pgsql; then ++ CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/include/postgresql/pgsql" ++ elif test -d ${with_pgsql}/include/pgsql; then + CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/include/pgsql" + elif test -d ${with_pgsql}/pgsql/include; then + CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/pgsql/include" diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch new file mode 100644 index 00000000..1779baba --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch @@ -0,0 +1,172 @@ +Support for crypted passwords + +http://bugs.gentoo.org/45181 + +--- cyrus-sasl-2.1.19/lib/Makefile.in ++++ cyrus-sasl-2.1.19/lib/Makefile.in +@@ -120,7 +120,7 @@ + JAVA_TRUE = @JAVA_TRUE@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ +-LIBS = @LIBS@ ++LIBS = -lcrypt @LIBS@ + LIBTOOL = @LIBTOOL@ + LIB_CRYPT = @LIB_CRYPT@ + LIB_DES = @LIB_DES@ +--- cyrus-sasl-2.1.19/lib/checkpw.c ++++ cyrus-sasl-2.1.19/lib/checkpw.c +@@ -94,6 +94,23 @@ + # endif + #endif + ++/****************************** ++ * crypt(3) patch start * ++ ******************************/ ++char *crypt(const char *key, const char *salt); ++ ++/* cleartext password formats */ ++#define PASSWORD_FORMAT_CLEARTEXT 1 ++#define PASSWORD_FORMAT_CRYPT 2 ++#define PASSWORD_FORMAT_CRYPTTRAD 3 ++#define PASSWORD_SALT_BUF_LEN 22 ++ ++/* weeds out crypt(3) password's salt */ ++int _sasl_get_salt (char *dest, char *src, int format); ++ ++/****************************** ++ * crypt(3) patch stop * ++ ******************************/ + + /* we store the following secret to check plaintext passwords: + * +@@ -143,7 +160,51 @@ + "*cmusaslsecretPLAIN", + NULL }; + struct propval auxprop_values[3]; +- ++ ++ /****************************** ++ * crypt(3) patch start * ++ * for password format check * ++ ******************************/ ++ sasl_getopt_t *getopt; ++ void *context; ++ const char *p = NULL; ++ /** ++ * MD5: 12 char salt ++ * BLOWFISH: 16 char salt ++ */ ++ char salt[PASSWORD_SALT_BUF_LEN]; ++ int password_format; ++ ++ /* get password format from auxprop configuration */ ++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) { ++ getopt(context, NULL, "password_format", &p, NULL); ++ } ++ ++ /* set password format */ ++ if (p) { ++ /* ++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN); ++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1)); ++ */ ++ /* modern, modular crypt(3) */ ++ if (strncmp(p, "crypt", 11) == 0) ++ password_format = PASSWORD_FORMAT_CRYPT; ++ /* traditional crypt(3) */ ++ else if (strncmp(p, "crypt_trad", 11) == 0) ++ password_format = PASSWORD_FORMAT_CRYPTTRAD; ++ /* cleartext password */ ++ else ++ password_format = PASSWORD_FORMAT_CLEARTEXT; ++ } else { ++ /* cleartext password */ ++ password_format = PASSWORD_FORMAT_CLEARTEXT; ++ } ++ ++ /****************************** ++ * crypt(3) patch stop * ++ * for password format check * ++ ******************************/ ++ + if (!conn || !userstr) + return SASL_BADPARAM; + +@@ -180,14 +241,31 @@ + goto done; + } + +- /* At the point this has been called, the username has been canonified +- * and we've done the auxprop lookup. This should be easy. */ +- if(auxprop_values[0].name +- && auxprop_values[0].values +- && auxprop_values[0].values[0] +- && !strcmp(auxprop_values[0].values[0], passwd)) { +- /* We have a plaintext version and it matched! */ +- return SASL_OK; ++ ++ /****************************** ++ * crypt(3) patch start * ++ ******************************/ ++ ++ /* get salt */ ++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format); ++ ++ /* crypt(3)-ed password? */ ++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) { ++ /* compare password */ ++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0) ++ return SASL_OK; ++ else ++ ret = SASL_BADAUTH; ++ } ++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) { ++ /* compare passwords */ ++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0) ++ return SASL_OK; ++ else ++ ret = SASL_BADAUTH; ++ /****************************** ++ * crypt(3) patch stop * ++ ******************************/ + } else if(auxprop_values[1].name + && auxprop_values[1].values + && auxprop_values[1].values[0]) { +@@ -975,3 +1053,37 @@ + #endif + { NULL, NULL } + }; ++ ++/* weeds out crypt(3) password's salt */ ++int _sasl_get_salt (char *dest, char *src, int format) { ++ int num; /* how many characters is salt long? */ ++ switch (format) { ++ case PASSWORD_FORMAT_CRYPT: ++ /* md5 crypt */ ++ if (src[1] == '1') ++ num = 12; ++ /* blowfish crypt */ ++ else if (src[1] == '2') ++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16; ++ /* traditional crypt */ ++ else ++ num = 2; ++ break; ++ ++ case PASSWORD_FORMAT_CRYPTTRAD: ++ num = 2; ++ break; ++ ++ default: ++ return 1; ++ } ++ ++ /* destroy destination */ ++ memset(dest, '\0', (num + 1)); ++ ++ /* copy salt to destination */ ++ strncpy(dest, src, num); ++ ++ return 1; ++} ++ diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch new file mode 100644 index 00000000..2bbacaa6 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch @@ -0,0 +1,39 @@ +diff -u -r cyrus-sasl-2.1.21-orig/cmulocal/sasl2.m4 cyrus-sasl-2.1.21/cmulocal/sasl2.m4 +--- cyrus-sasl-2.1.21-orig/cmulocal/sasl2.m4 2006-08-01 08:29:59.000000000 +0200 ++++ cyrus-sasl-2.1.21/cmulocal/sasl2.m4 2006-08-01 08:31:32.000000000 +0200 +@@ -257,7 +257,21 @@ + + cmu_save_LIBS="$LIBS" + LIBS="$LIBS $GSSAPIBASE_LIBS" +- AC_CHECK_FUNCS(gsskrb5_register_acceptor_identity) ++ dnl AC_CHECK_FUNCS(gsskrb5_register_acceptor_identity) ++ AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_KRB5_H,,[Define if you have the gssapi/gssapi_krb5.h header file])) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++#ifdef HAVE_GSSAPI_H ++#include ++#else ++#include ++#endif ++#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H ++#include ++#endif ++]],[[gsskrb5_register_acceptor_identity("");]]) ++],[AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY,, ++ [Define if your GSSAPI implimentation defines GSSKRB5_REGISTER_ACCEPTOR_IDENTITY]) ++]) + LIBS="$cmu_save_LIBS" + else + AC_MSG_RESULT([disabled]) +diff -u -r cyrus-sasl-2.1.21-orig/plugins/gssapi.c cyrus-sasl-2.1.21/plugins/gssapi.c +--- cyrus-sasl-2.1.21-orig/plugins/gssapi.c 2004-07-21 16:39:06.000000000 +0200 ++++ cyrus-sasl-2.1.21/plugins/gssapi.c 2006-08-01 08:30:26.000000000 +0200 +@@ -50,6 +50,9 @@ + #else + #include + #endif ++#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H ++#include ++#endif + + #ifdef WIN32 + # include diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch new file mode 100644 index 00000000..1294cb50 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch @@ -0,0 +1,11 @@ +--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700 ++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700 +@@ -77,7 +77,7 @@ + AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support]) + SASL_DB_PATH_CHECK() + SASL_DB_CHECK() +- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al" ++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB" + fi + + AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ], diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch new file mode 100644 index 00000000..fd356327 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch @@ -0,0 +1,71 @@ +http://bugs.gentoo.org/152544 + +--- cyrus-sasl-2.1.22/lib/Makefile.am ++++ cyrus-sasl-2.1.22/lib/Makefile.am +@@ -45,6 +45,7 @@ sasl_version = 2:22:0 + + INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb + ++AM_CFLAGS = -fPIC + EXTRA_DIST = windlopen.c staticopen.h NTMakefile + EXTRA_LIBRARIES = libsasl2.a + noinst_LIBRARIES = @SASL_STATIC_LIBS@ +--- cyrus-sasl-2.1.22/plugins/Makefile.am ++++ cyrus-sasl-2.1.22/plugins/Makefile.am +@@ -63,6 +63,7 @@ srp_version = 2:22:0 + + INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include + AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) ++AM_CFLAGS = -fPIC + + COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@ + +--- cyrus-sasl-2.1.22/sasldb/Makefile.am ++++ cyrus-sasl-2.1.22/sasldb/Makefile.am +@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top + + extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c + ++AM_CFLAGS = -fPIC + EXTRA_DIST = NTMakefile + + noinst_LTLIBRARIES = libsasldb.la +--- cyrus-sasl-2.1.22/utils/Makefile.am ++++ cyrus-sasl-2.1.22/utils/Makefile.am +@@ -42,7 +42,7 @@ + # + ################################################################ + +-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) ++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT) + all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) + + sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer +--- cyrus-sasl-2.1.22/sample/Makefile.am ++++ cyrus-sasl-2.1.22/sample/Makefile.am +@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c + server_SOURCES = server.c common.c common.h + client_SOURCES = client.c common.c common.h + +-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) +-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) ++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) ++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) + +-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) +-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) ++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) ++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) + + EXTRA_DIST = NTMakefile +--- cyrus-sasl-2.1.22/lib/Makefile.am ++++ cyrus-sasl-2.1.22/lib/Makefile.am +@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la + libsasl2_la_SOURCES = $(common_sources) $(common_headers) + libsasl2_la_LDFLAGS = -version-info $(sasl_version) + libsasl2_la_DEPENDENCIES = $(LTLIBOBJS) +-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) ++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT) + + if MACOSX + framedir = /Library/Frameworks/SASL2.framework diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch new file mode 100644 index 00000000..dbe3f096 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch @@ -0,0 +1,15 @@ +support new db versions + +http://bugs.gentoo.org/192753 + +--- cyrus-sasl-2.1.22/cmulocal/berkdb.m4 ++++ cyrus-sasl-2.1.22/cmulocal/berkdb.m4 +@@ -213,7 +213,7 @@ + fi + + saved_LIBS=$LIBS +- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db ++ for dbname in db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db + do + LIBS="$saved_LIBS -l$dbname" + AC_TRY_LINK([#include ], diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch new file mode 100644 index 00000000..e2621278 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch @@ -0,0 +1,24 @@ +fix warnings with gcc-4.4 + +http://bugs.gentoo.org/248738 + +--- cyrus-sasl-2.1.22/plugins/digestmd5.c ++++ cyrus-sasl-2.1.22/plugins/digestmd5.c +@@ -2715,7 +2715,7 @@ static sasl_server_plug_t digestmd5_serv + "DIGEST-MD5", /* mech_name */ + #ifdef WITH_RC4 + 128, /* max_ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, +@@ -4034,7 +4034,7 @@ static sasl_client_plug_t digestmd5_clie + "DIGEST-MD5", + #ifdef WITH_RC4 /* mech_name */ + 128, /* max ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch new file mode 100644 index 00000000..4f7b04f1 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch @@ -0,0 +1,22 @@ +fix missing prototype warnings + +--- cyrus-sasl-2.1.22/lib/auxprop.c ++++ cyrus-sasl-2.1.22/lib/auxprop.c +@@ -43,6 +43,7 @@ + */ + + #include ++#include + #include + #include + #include +--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c ++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c +@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF + ******************************************************************/ + + #include ++#include + + extern char *crypt(); + diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch new file mode 100644 index 00000000..10be0202 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch @@ -0,0 +1,23 @@ +--- sasldb/db_berkeley.c.orig 2010-10-04 21:11:15.044010468 -0400 ++++ sasldb/db_berkeley.c 2010-10-04 21:12:18.921998718 -0400 +@@ -100,7 +100,7 @@ + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5 + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660); + +--- utils/dbconverter-2.c.orig 2010-10-04 21:23:39.778000256 -0400 ++++ utils/dbconverter-2.c 2010-10-04 21:24:50.384999893 -0400 +@@ -214,7 +214,7 @@ + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5 + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664); diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch new file mode 100644 index 00000000..f5f372d1 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch @@ -0,0 +1,28 @@ +fix warnings: + +auth_sasldb.c: In function ‘auth_sasldb’: +auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’ + +auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type +../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’ + +--- saslauthd/auth_sasldb.c ++++ saslauthd/auth_sasldb.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + /* END PUBLIC DEPENDENCIES */ + + #define RETURN(x) return strdup(x) +@@ -131,7 +132,8 @@ + /* VARIABLES */ + char pw[1024]; /* pointer to passwd file entry */ + sasl_utils_t utils; +- int ret, outsize; ++ int ret; ++ size_t outsize; + const char *use_realm; + char realm_buf[MAXHOSTNAMELEN]; + /* END VARIABLES */ diff --git a/dev-libs/cyrus-sasl/files/java.README.gentoo b/dev-libs/cyrus-sasl/files/java.README.gentoo new file mode 100644 index 00000000..fb73204e --- /dev/null +++ b/dev-libs/cyrus-sasl/files/java.README.gentoo @@ -0,0 +1,39 @@ +4-Nov-2000 + +Note: this file has been modified to adapt to Gentoo specific. + +class files are installed in + +`java-config -p cyrus-sasl-2` + +to compile programs using it, do: + +javac -classpath $JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2` .java + +(make sure to substitute your JDK for $JAVA_HOME/lib/tools.jar) + +to run, do + +java -classpath + +---------------------------- +This is a java version of the SASL libraries. It supports all the +mechanisms in the C version and conforms to the internet draft in the +doc/ directory. JNI is used. + +Sample applications exist in the Test/ directory. + +They generally can be run with something like: + +java -debug -classpath +../:$JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2`:. jimtest -p 2143 -m +KERBEROS_V4 cyrus-dev + +and + +java -debug -classpath +../:$JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2`:. testserver + + +Any feedback is welcome. + diff --git a/dev-libs/cyrus-sasl/files/pwcheck.rc6 b/dev-libs/cyrus-sasl/files/pwcheck.rc6 new file mode 100644 index 00000000..a24b80d3 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/pwcheck.rc6 @@ -0,0 +1,21 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/pwcheck.rc6,v 1.5 2007/04/07 13:03:55 chtekk Exp $ + +depend() { + need localmount + use logger +} + +start() { + ebegin "Starting sasl pwcheck daemon" + start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/pwcheck + eend $? +} + +stop() { + ebegin "Stopping sasl pwcheck daemon" + start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/pwcheck + eend $? +} diff --git a/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf b/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf new file mode 100644 index 00000000..3f2653c5 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf @@ -0,0 +1,25 @@ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf,v 1.2 2007/04/07 13:03:55 chtekk Exp $ + +# Config file for /etc/init.d/saslauthd + +# Initial (empty) options. +SASLAUTHD_OPTS="" + +# Specify the authentications mechanism. +# **NOTE** For a list see: saslauthd -v +# Since 2.1.19, add "-r" to options for old behavior, +# ie. reassemble user and realm to user@realm form. +#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a pam -r" +SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a pam" + +# Specify the hostname for remote IMAP server. +# **NOTE** Only needed if rimap auth mechanism is used. +#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost" + +# Specify the number of worker processes to create. +#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -n 5" + +# Enable credential cache, set cache size and timeout. +# **NOTE** Size is measured in kilobytes. +# Timeout is measured in seconds. +#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -c -s 128 -t 30" diff --git a/dev-libs/cyrus-sasl/files/saslauthd.pam-include b/dev-libs/cyrus-sasl/files/saslauthd.pam-include new file mode 100644 index 00000000..d50a8494 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/saslauthd.pam-include @@ -0,0 +1,8 @@ +#%PAM-1.0 + +auth required pam_nologin.so +auth include system-auth + +account include system-auth + +session include system-auth diff --git a/dev-libs/cyrus-sasl/files/saslauthd2.rc6 b/dev-libs/cyrus-sasl/files/saslauthd2.rc6 new file mode 100644 index 00000000..a5e9a440 --- /dev/null +++ b/dev-libs/cyrus-sasl/files/saslauthd2.rc6 @@ -0,0 +1,21 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/saslauthd2.rc6,v 1.7 2007/04/07 13:03:55 chtekk Exp $ + +depend() { + need net +} + +start() { + ebegin "Starting saslauthd" + start-stop-daemon --start --quiet --exec /usr/sbin/saslauthd \ + -- ${SASLAUTHD_OPTS} + eend $? +} + +stop() { + ebegin "Stopping saslauthd" + start-stop-daemon --stop --quiet --pidfile /var/lib/sasl2/saslauthd.pid + eend $? +} -- cgit v1.2.3