Add patch removing automagic dependence on sys-libs/cracklib, fixes bug #397401 repor...
authorNathan Phillip Brink <binki@gentoo.org>
Tue, 3 Jan 2012 05:43:07 +0000 (05:43 +0000)
committerNathan Phillip Brink <binki@gentoo.org>
Tue, 3 Jan 2012 05:43:07 +0000 (05:43 +0000)
Package-Manager: portage-2.2.0_alpha82-r1/cvs/Linux x86_64

net-irc/atheme-services/ChangeLog
net-irc/atheme-services/Manifest
net-irc/atheme-services/atheme-services-6.0.9-r1.ebuild [new file with mode: 0644]
net-irc/atheme-services/atheme-services-6.0.9.ebuild
net-irc/atheme-services/atheme-services-7.0.0_alpha9.ebuild
net-irc/atheme-services/files/atheme-services-6.0.9-cracklib-automagic.patch [new file with mode: 0644]
net-irc/atheme-services/files/atheme-services-7.0.0_alpha11-cracklib-automagic.patch [new file with mode: 0644]
net-irc/atheme-services/metadata.xml

index de60c3c95e8180bb3044c48e72ccfab0a5617557..b5d75284e4d4a981aeed3bc2cfa511c4b9347ce5 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for net-irc/atheme-services
-# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/ChangeLog,v 1.25 2011/12/30 22:47:37 binki Exp $
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/ChangeLog,v 1.26 2012/01/03 05:43:07 binki Exp $
+
+*atheme-services-6.0.9-r1 (03 Jan 2012)
+
+  03 Jan 2012; Nathan Phillip Brink <binki@gentoo.org>
+  atheme-services-6.0.9.ebuild, +atheme-services-6.0.9-r1.ebuild,
+  +files/atheme-services-6.0.9-cracklib-automagic.patch,
+  atheme-services-7.0.0_alpha9.ebuild,
+  +files/atheme-services-7.0.0_alpha11-cracklib-automagic.patch, metadata.xml:
+  Add patch removing automagic dependence on sys-libs/cracklib, fixes bug
+  #397401 reported by kensington.
 
   30 Dec 2011; Nathan Phillip Brink <binki@gentoo.org>
   -atheme-services-6.0.8-r2.ebuild:
index 1b466e80a1423249f86656dc057a6363622066b4..301ea25891609308229dee13606180b8498e2dc6 100644 (file)
@@ -2,28 +2,31 @@
 Hash: SHA512
 
 AUX atheme-services-6.0.8-configure-disable.patch 4067 RMD160 83b845addd7af78d10a4b8447e9ec3c88f7efa17 SHA1 a893c2fab189495b31525332a8c4c9ffdcbd3aaf SHA256 861b9b458e6e2122aca923425dec407a5d2a13fecde613544c5aafb2cb161595
+AUX atheme-services-6.0.9-cracklib-automagic.patch 2806 RMD160 e2915f4fab7aea2d4a512ce462e8bf7fda08cb80 SHA1 8c1f28b6446e66355171c0e9badcc6424144d42a SHA256 810509891a461b2d6701c8f48519d70436cba698bf0ab098ab02cef13f0a2619
+AUX atheme-services-7.0.0_alpha11-cracklib-automagic.patch 2906 RMD160 eed1183188ddc3f94c9606e131bbd14d7f17b971 SHA1 fc65b6b2b699bdf644e900b1fe700186b796597d SHA256 b053939d5c813e790eb2d8ffb7a95430d3a38b0c09c9a6c7776b50e4215c9763
 AUX atheme-services-7.0.0_alpha9-pkg-config.patch 515 RMD160 aeed772eb3f741f14b405aff145235b8ab186978 SHA1 38abf5c9ac33f5a2e25d96f191f9c2bbcbe91767 SHA256 6f43dceda07461600962e11b69d0e62e01d878f93126d98b09bfd48d2c790c7e
 AUX atheme-services.initd 975 RMD160 83486b35d148bab6f4b611d62fb18da63846a966 SHA1 bedd35acca25fad59ecd067709cfe85c0ba9798d SHA256 0cdcfb95d2399e132364127429618b44ce1830a61af0a5dc5bce1179b3810f75
 DIST atheme-services-6.0.9.tar.bz2 858804 RMD160 57ed736bb1eaedb0db68e63266ee8c98674f0542 SHA1 1b463ec808d4b92d0047319cdc1e4223a9ca9481 SHA256 058616395d6d5477ac4e63fc1daa88dffb62c9cc5a9239dae5dbe54508b6aaf9
 DIST atheme-services-7.0.0-alpha9.tar.bz2 1055265 RMD160 d86413c63c79579247904965fffa7c2b1e76d688 SHA1 28168d0b4ab36840dd3522283dca2aebbb9a56d3 SHA256 564add960be744d637573d69ee12351555696048e69505af596d767f55b0b3b6
-EBUILD atheme-services-6.0.9.ebuild 2706 RMD160 67c3cf7500f46a249f6727ddfe17302fde55b2b8 SHA1 ea39fd2dbc3468612a6353a56d39a923a5a4d849 SHA256 f952d0a1d14360ebf6d2a5440cf5b4589863e4293284e76fa165a0dc3257e635
-EBUILD atheme-services-7.0.0_alpha9.ebuild 3007 RMD160 d524e8756688dc9fa3a83dbb3a21c39cf14496e6 SHA1 c594321345a4e2fbaccc954fc509b99c95720e1c SHA256 7a7f7b4f639363b742b95a1fd15e18ffbda29e535a0ea07e4ceda194444e3695
-MISC ChangeLog 5581 RMD160 dd5d7398f9bf4895ad69c9444c179b19bd53b4f0 SHA1 190d915d150cd887f2450881cac0f932a35db7df SHA256 74f525f540952c4f83d418a7a5790bd79d273020288b3bed5c30ab990686e012
-MISC metadata.xml 666 RMD160 6283486aa951422ac01016f439af0e4446c9827e SHA1 3b684ca6549b1a2fa8a0b788841fad944703d8d1 SHA256 1d7b369f7c9cddbc5541736c855be11aa495e1006207e32d0fbbbc99366bd9a7
+EBUILD atheme-services-6.0.9-r1.ebuild 2850 RMD160 4120941bf1edbceaca81d01c032ab2ccd8c8ee15 SHA1 aa0e7c089106fdf5bd5244ca00080660bae02c41 SHA256 ecf9c49af017a8ab5240035a012fe01a7055a2ddcfa6d8f5ecb7b4e7e18cdb6a
+EBUILD atheme-services-6.0.9.ebuild 2724 RMD160 110996365b9e7b1589ae4833c3df458017927972 SHA1 17d6571d6c02a8b4ddea574427a3eb58549f7efc SHA256 9953174a04effcbc3e7973305d9f9a3183265e7f82f46065d11d8ac42ddd4baa
+EBUILD atheme-services-7.0.0_alpha9.ebuild 3141 RMD160 e0074843ee3d068fce096df2df89b782f15c8089 SHA1 33a73a02dec6a5469dc4e49c2c7e6960467d608a SHA256 2fa3ad7a31ae50385802e35aa209947a9a3ad86006a14577a8bddff510bbfb12
+MISC ChangeLog 6027 RMD160 75a9f490a4a120aa1728a290e8978ec927f738b3 SHA1 ef7af53fe91b23c74b2e52c611971f0d498e53d7 SHA256 cef999fcb909e1c8d96a11202731bb78f84e8d6e983ceb383cb5cc1d3709940b
+MISC metadata.xml 771 RMD160 8f88469eba3ccc79dc15479d31d5653ea8e3e035 SHA1 e77e3cdf839fbdd77066acaf157e7c07184975c0 SHA256 620366269b5b3d1e0c61895827ac857e9dc643544a04a80cbc94fee2ff0c0da5
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.14 (GNU/Linux)
 
-iQIcBAEBCgAGBQJO/j8HAAoJEHQ6UuhrqBBQAgwQAJUj9ZisqPaBYGmuj39m4UOj
-Uk3/35K4/Uiq9w3ALDu0cqG4sjBkAcyZ+KvZ3m29dqUIR/Yb8nZ4XkGYKXAPF6aA
-yMrRuyEGUTrsUPRty4a7tAUsg/ir2OR2DqyP7KU8PgT0kXP/JFcgSOBN+pwl1eAI
-UZx1vEVhVGWP43+07UFF5DcXxf/NjYPQVkJ9ZBuL40O4kFsN5+P3Rhhd3ra7sxzm
-/1Rks5uSzcRkZVCt0jCPTulOThH/sWUBr2SUYss/+xc+vHM35XNTh6z3x40MwDy8
-TpxLOASj2Lz/ewmXnCLDdb2lLpUz5Lw8Ayc50fHSXYm/G77p2VFoWugjbqVSqZfG
-VQerD4/7dJOqJDQhvwTsofMnOuQaHXwmtwlIQ/Sv41Av+TRCv8ZxME7U/ko4HEZp
-IZhrLAzsHsGw0isdM3emaJ+gF9hTGpNMNL/3iNtV+lkAaprZZUkCv4aHX35mupuT
-hEwEx0VLixkKM38ZZZ+xNE762pZrKTsgVADxv1RbT4PmkqNOylYcb4SwAKShY3pW
-HnBkBruDmciqmuU9hgS1zH2hXAderjhFXvgCRUSusDGHrH6+uJpNy5r4h2KR/HnK
-og9BEoLoCJaM+iz7qT7MX2MbVYNn27qAjoviUYpN8hn2nMIHnRI6BmoOU0CMSFbM
-m5XpCDxFlD7NLhW8dgzs
-=gE9s
+iQIcBAEBCgAGBQJPApTOAAoJEHQ6UuhrqBBQpYIP/0NdMiA57alkJdGgQrf8KpO+
+t3KYQgXbZewPDMUx3MEX3Xq3MWgkbtW1jTD7rPx7HJOHmh7quAppmZCtjIlEKXA/
+VPaerUMNrCXE472WO2/PAAM8HxV0Hw29ErLt7O9nza4BYJ+E2vmcggIECiTTCgGn
+LuuQ/l2rKumLZuEMOQR2cswdgLFM6dyZ14m8J5wD6UTYAjVZOKtWan/TbomvGtu2
+xpoq+VdGwip3sgSeYKO92DW8miZY8voWKVs8HHo4APASUL3FHVB5B7qmzxEtgzLD
+0lHBxwe4p221ILLKNqlCoB41Otzt4/e86+hFucFpzvDpesFzXAheKoc3GXkpaOKS
+088RXUKZVhZaFffjLTMLAR1Zvc1SIzd3bfjV5jCVpoH/MTIegtiSy0PBF4Be8f0l
+GBlE9N+HhphkB/6V9EGoC+s2Q/SesLJ71zYnoPeJ5zj5bBLQsbsbLusUCHGMrbt1
+M4V9erwaTrBs7/Ft2Am3cKzDRBaHFGwXYXurhSaObaXJNvU1cQNfIZakU+WEepqi
+j8GYI0VzQ76/RO7+ZR50zK0O/mRhtsp1XvcPHFmktZAi6ZZ3t+Dbid9hMMSpvlKd
+JTo+7Ni7+DIiCiqhsj2ki8WH31fZauMpbdi7jGsfj6SuRkZtae25fmTtkYAPKkgA
+OeKw1ljwV3s1oGb9rRCh
+=x1k+
 -----END PGP SIGNATURE-----
diff --git a/net-irc/atheme-services/atheme-services-6.0.9-r1.ebuild b/net-irc/atheme-services/atheme-services-6.0.9-r1.ebuild
new file mode 100644 (file)
index 0000000..9d1399e
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/atheme-services-6.0.9-r1.ebuild,v 1.1 2012/01/03 05:43:07 binki Exp $
+
+EAPI=4
+
+inherit autotools eutils flag-o-matic perl-module prefix
+
+DESCRIPTION="A portable and secure set of open-source and modular IRC services"
+HOMEPAGE="http://atheme.net/"
+SRC_URI="http://atheme.net/downloads/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86 ~x86-fbsd ~amd64-linux"
+IUSE="cracklib largenet ldap nls +pcre perl profile ssl"
+
+RDEPEND="dev-libs/libmowgli
+       cracklib? ( sys-libs/cracklib )
+       ldap? ( net-nds/openldap )
+       nls? ( sys-devel/gettext )
+       pcre? ( dev-libs/libpcre )
+       ssl? ( dev-libs/openssl )"
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig"
+
+pkg_setup() {
+       # the dependency calculation puts all of the .c files together and
+       # overwhelms cc1 with this flag :-(
+       filter-flags -combine
+
+       if use profile; then
+               # bug #371119
+               ewarn "USE=\"profile\" is incompatible with the hardened profile's -pie flag."
+               ewarn "Disabling PIE. Please ignore any warning messages about -nopie being invalid."
+               append-flags -nopie
+       fi
+
+       enewgroup ${PN}
+       enewuser ${PN} -1 -1 /var/lib/atheme ${PN}
+}
+
+src_prepare() {
+       epatch "${FILESDIR}"/${PN}-6.0.8-configure-disable.patch
+       epatch "${FILESDIR}"/${P}-cracklib-automagic.patch
+       eautoconf
+
+       # fix docdir
+       sed -i -e 's/\(^DOCDIR.*=.\)@DOCDIR@/\1@docdir@/' extra.mk.in || die
+
+       # basic logging config directive fix
+       sed -i -e '/^logfile/s;var/\(.*\.log\);'"${EPREFIX}"'/var/log/atheme/\1;g' dist/* || die
+
+       # QA against bundled libs
+       rm -rf libmowgli || die
+
+       # Get useful information into build.log
+       sed -i -e '/^\.SILENT:$/d' buildsys.mk.in || die
+}
+
+src_configure() {
+       econf \
+               --sysconfdir="${EPREFIX}"/etc/${PN} \
+               --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+               --localstatedir="${EPREFIX}"/var \
+               --enable-fhs-paths \
+               --enable-contrib \
+               $(use_enable largenet large-net) \
+               $(use_with cracklib) \
+               $(use_with ldap) \
+               $(use_with nls) \
+               $(use_enable profile) \
+               $(use_with pcre) \
+               $(use_enable ssl)
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       insinto /etc/${PN}
+       for conf in dist/*.example; do
+               # The .cron file isn't meant to live in /etc/${PN}, so only
+               # install a .example version.
+               [[ ${conf} == *cron* ]] && continue
+
+               newins ${conf} $(basename ${conf} .example)
+       done
+
+       fowners -R 0:${PN} /etc/${PN}
+       keepdir /var/{lib,log}/atheme
+       fowners ${PN}:${PN} /var/{lib,log,run}/atheme
+       fperms -R go-w,o-rx /etc/${PN}
+       fperms 750 /etc/${PN} /var/{lib,log,run}/atheme
+
+       newinitd "${FILESDIR}"/${PN}.initd ${PN}
+
+       # contributed scripts and such:
+       insinto /usr/share/doc/${PF}/contrib
+       doins contrib/*.{c,pl,php,py,rb}
+
+       if use perl; then
+               perlinfo
+               insinto "${VENDOR_LIB#${EPREFIX}}"
+               doins -r contrib/Atheme{,.pm}
+       fi
+}
index 541e8fd8be8b6bfd0518e634ca092afa6ad93b7f..e1283ebf7128be20d12f22c02e4ec34a841a317a 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/atheme-services-6.0.9.ebuild,v 1.3 2011/12/26 14:42:27 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/atheme-services-6.0.9.ebuild,v 1.4 2012/01/03 05:43:07 binki Exp $
 
 EAPI=4
 
@@ -16,6 +16,7 @@ KEYWORDS="amd64 ~sparc x86 ~x86-fbsd ~amd64-linux"
 IUSE="largenet ldap nls +pcre perl profile ssl"
 
 RDEPEND="dev-libs/libmowgli
+       sys-libs/cracklib
        ldap? ( net-nds/openldap )
        nls? ( sys-devel/gettext )
        pcre? ( dev-libs/libpcre )
index f23574fa712c333a429c1469e8f5163733772bdd..73acd601e59c57ca0556e2b02820d9cabcff008f 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/atheme-services-7.0.0_alpha9.ebuild,v 1.2 2011/12/30 22:42:37 binki Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-irc/atheme-services/atheme-services-7.0.0_alpha9.ebuild,v 1.3 2012/01/03 05:43:07 binki Exp $
 
 EAPI=4
 
@@ -15,9 +15,10 @@ SRC_URI="http://atheme.net/downloads/${MY_P}.tar.bz2"
 LICENSE="BSD"
 SLOT="0"
 KEYWORDS="~amd64 ~sparc ~x86 ~x86-fbsd ~amd64-linux"
-IUSE="largenet ldap nls +pcre perl profile ssl"
+IUSE="cracklib largenet ldap nls +pcre perl profile ssl"
 
 RDEPEND=">=dev-libs/libmowgli-0.9.95
+       cracklib? ( sys-libs/cracklib )
        ldap? ( net-nds/openldap )
        nls? ( sys-devel/gettext )
        perl? ( dev-lang/perl )
@@ -48,6 +49,7 @@ src_prepare() {
        # The first PKG_CHECK_MODULES call is conditional, causing
        # PKG_PROG_PKG_CONFIG expansion to fail.
        epatch "${FILESDIR}"/${P}-pkg-config.patch
+       epatch "${FILESDIR}"/${PN}-7.0.0_alpha11-cracklib-automagic.patch
        eautoconf
 
        # fix docdir
@@ -73,6 +75,7 @@ src_configure() {
                --disable-warnings \
                --enable-contrib \
                $(use_enable largenet large-net) \
+               $(use_with cracklib) \
                $(use_with ldap) \
                $(use_with nls) \
                $(use_enable profile) \
diff --git a/net-irc/atheme-services/files/atheme-services-6.0.9-cracklib-automagic.patch b/net-irc/atheme-services/files/atheme-services-6.0.9-cracklib-automagic.patch
new file mode 100644 (file)
index 0000000..07b523e
--- /dev/null
@@ -0,0 +1,77 @@
+From 79f41f4e7647335beca977d852c6c83abebcc2bd Mon Sep 17 00:00:00 2001
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: Tue, 3 Jan 2012 01:47:31 +0000
+Subject: [PATCH] Add --with-cracklib/--without-cracklib ./configure options and only pass -lcrack when compiling nickserv/cracklib module.
+
+Being able to disable cracklib at ./configure time fixes an automagic
+dependency (https://bugs.gentoo.org/397401 with original patch from
+kensington). Only linking against cracklib when necessary hopefully
+makes compilation and loading of modules slightly more efficient.
+---
+ configure                 |   27 ++++++++++++++++++++++++++-
+ configure.ac              |   16 +++++++++++++++-
+ extra.mk.in               |    1 +
+ modules/nickserv/Makefile |   10 ++++++++++
+ 4 files changed, 52 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 63540aa..ee8d554 100755
+diff --git a/configure.ac b/configure.ac
+index 83c4aeb..a6d8b6e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,8 +95,22 @@ AC_SEARCH_LIBS(crypt, crypt, [POSIX_CRYPTC="posix.c"])
+ AC_SUBST(POSIX_CRYPTC)
+ CRACKLIB_C=""
+-AC_SEARCH_LIBS(FascistCheck, crack, [CRACKLIB_C="cracklib.c"])
++CRACKLIB_LIBS=""
++AC_ARG_WITH([cracklib],
++      [AS_HELP_STRING([--with-cracklib], [Compile cracklib nickserv submodule for checking password strength.])],
++      [],
++      [with_cracklib="auto"])
++AS_IF([test "x$with_cracklib" != "xno"],
++      [LIBS_save="$LIBS"
++      AC_SEARCH_LIBS([FascistCheck], [crack],
++              [CRACKLIB_C="cracklib.c"
++              AS_IF([test "x$ac_cv_search_FascistCheck" != "xnone required"],
++                      [CRACKLIB_LIBS="$ac_cv_search_FascistCheck"])],
++              [AS_IF([test "x$with_cracklib" != "xauto"],
++                      [AC_MSG_ERROR([--with-cracklib was specified but cracklib could not be found.])])])
++      LIBS="$LIBS_save"])
+ AC_SUBST(CRACKLIB_C)
++AC_SUBST([CRACKLIB_LIBS])
+ AC_ARG_WITH([ldap],
+       [AS_HELP_STRING([--without-ldap],[Disable building ldap auth module.])],
+diff --git a/extra.mk.in b/extra.mk.in
+index cc6af70..2d01345 100644
+--- a/extra.mk.in
++++ b/extra.mk.in
+@@ -123,4 +123,5 @@ EGREP ?= @EGREP@
+ VERSION ?= @VERSION@
+ prefix ?= @prefix@
+ CRACKLIB_C ?= @CRACKLIB_C@
++CRACKLIB_LIBS ?= @CRACKLIB_LIBS@
+ CONTRIB_ENABLE ?= @CONTRIB_ENABLE@
+diff --git a/modules/nickserv/Makefile b/modules/nickserv/Makefile
+index 060f708..d2f7c4e 100644
+--- a/modules/nickserv/Makefile
++++ b/modules/nickserv/Makefile
+@@ -68,3 +68,13 @@ BASE_SRCS =                 \
+ SRCS = ${BASE_SRCS} ${EXTRA_SRCS}
+ CPPFLAGS      += -I../../include
++
++# Custom rule for cracklib.c which is the only module to ever need
++# -lcrack.
++cracklib$(PLUGIN_SUFFIX): cracklib.c
++      ${COMPILE_STATUS}
++      if ${CC} -MMD -MP ${CFLAGS} ${PLUGIN_CFLAGS} ${CPPFLAGS} ${PLUGIN_LDFLAGS} ${LDFLAGS} -o $@ ${CRACKLIB_C} ${LIBS} ${CRACKLIB_LIBS}; then \
++              ${COMPILE_OK}; \
++      else \
++              ${COMPILE_FAILED}; \
++      fi
+-- 
+1.7.3.4
+
diff --git a/net-irc/atheme-services/files/atheme-services-7.0.0_alpha11-cracklib-automagic.patch b/net-irc/atheme-services/files/atheme-services-7.0.0_alpha11-cracklib-automagic.patch
new file mode 100644 (file)
index 0000000..676acae
--- /dev/null
@@ -0,0 +1,78 @@
+From ca15c587e5c102abe0bc72a3112f7c5c6c879483 Mon Sep 17 00:00:00 2001
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: Tue, 3 Jan 2012 01:47:31 +0000
+Subject: [PATCH] Add --with-cracklib/--without-cracklib ./configure options and only pass -lcrack when compiling nickserv/cracklib module.
+
+Being able to disable cracklib at ./configure time fixes an automagic
+dependency (https://bugs.gentoo.org/397401 with original patch from
+kensington). Only linking against cracklib when necessary hopefully
+makes compilation and loading of modules slightly more efficient.
+---
+ configure                 |   27 ++++++++++++++++++++++++++-
+ configure.ac              |   16 +++++++++++++++-
+ extra.mk.in               |    1 +
+ modules/nickserv/Makefile |    9 +++++++++
+ 4 files changed, 51 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 14a14da..fe8024f 100755
+diff --git a/configure.ac b/configure.ac
+index ed7d105..ab0adb5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -97,8 +97,22 @@ AC_SEARCH_LIBS(crypt, crypt, [POSIX_CRYPTC="posix.c"])
+ AC_SUBST(POSIX_CRYPTC)
+ CRACKLIB_C=""
+-AC_SEARCH_LIBS(FascistCheck, crack, [CRACKLIB_C="cracklib.c"])
++CRACKLIB_LIBS=""
++AC_ARG_WITH([cracklib],
++      [AS_HELP_STRING([--with-cracklib], [Compile cracklib nickserv submodule for checking password strength.])],
++      [],
++      [with_cracklib="auto"])
++AS_IF([test "x$with_cracklib" != "xno"],
++      [LIBS_save="$LIBS"
++      AC_SEARCH_LIBS([FascistCheck], [crack],
++              [CRACKLIB_C="cracklib.c"
++              AS_IF([test "x$ac_cv_search_FascistCheck" != "xnone required"],
++                      [CRACKLIB_LIBS="$ac_cv_search_FascistCheck"])],
++              [AS_IF([test "x$with_cracklib" != "xauto"],
++                      [AC_MSG_ERROR([--with-cracklib was specified but cracklib could not be found.])])])
++      LIBS="$LIBS_save"])
+ AC_SUBST(CRACKLIB_C)
++AC_SUBST([CRACKLIB_LIBS])
+ AC_ARG_WITH([ldap],
+       [AS_HELP_STRING([--without-ldap],[Disable building ldap auth module.])],
+diff --git a/extra.mk.in b/extra.mk.in
+index a59418c..bdce891 100644
+--- a/extra.mk.in
++++ b/extra.mk.in
+@@ -123,6 +123,7 @@ EGREP ?= @EGREP@
+ VERSION ?= @VERSION@
+ prefix ?= @prefix@
+ CRACKLIB_C ?= @CRACKLIB_C@
++CRACKLIB_LIBS ?= @CRACKLIB_LIBS@
+ CONTRIB_ENABLE ?= @CONTRIB_ENABLE@
+ PERL_ENABLE ?= @PERL_ENABLE@
+ PERL_CFLAGS ?= @PERL_CFLAGS@
+diff --git a/modules/nickserv/Makefile b/modules/nickserv/Makefile
+index 3014bbb..2506be4 100644
+--- a/modules/nickserv/Makefile
++++ b/modules/nickserv/Makefile
+@@ -72,3 +72,12 @@ include ../../buildsys.module.mk
+ CPPFLAGS      += -I../../include
+ LIBS +=       -L../../libathemecore -lathemecore ${LDFLAGS_RPATH}
++# Custom rule for cracklib.c which is the only module to ever need
++# -lcrack.
++cracklib$(PLUGIN_SUFFIX): cracklib.c
++      ${COMPILE_STATUS}
++      if ${CC} -MMD -MP ${CFLAGS} ${PLUGIN_CFLAGS} ${CPPFLAGS} ${PLUGIN_LDFLAGS} ${LDFLAGS} -o $@ ${CRACKLIB_C} ${LIBS} ${CRACKLIB_LIBS}; then \
++              ${COMPILE_OK}; \
++      else \
++              ${COMPILE_FAILED}; \
++      fi
+-- 
+1.7.3.4
+
index 45cf1094f32512cfe102239045f1eb2910fa1117..34f648804957f6d909dd2d4e2bc562f030acd446 100644 (file)
@@ -11,7 +11,8 @@
     <name>Jeff Horelick</name>
     <description>Co-maintainer</description>
   </maintainer>
-       <use>
+  <use>
+    <flag name='cracklib'>Enable nickserv/cracklib module for enforcing strong account passwords</flag>
                <flag name='largenet'>Enable support/tweaks for large networks</flag>
                <flag name='ldap'>Enable ldap-backed authentication module</flag>
                <flag name='perl'>Install a perl module which wraps around the services' XML-RPC interface</flag>