diff options
author | Peter Volkov <pva@gentoo.org> | 2011-07-01 11:24:07 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2011-07-01 11:24:07 +0000 |
commit | 8fa4dfc81693c79dfc31a188792cdec12a127efb (patch) | |
tree | 8cd5ffc48407d28c68a565c3b133740145ad615d /net-fs | |
parent | masking app-crypt/steghide for removal (diff) | |
download | gentoo-2-8fa4dfc81693c79dfc31a188792cdec12a127efb.tar.gz gentoo-2-8fa4dfc81693c79dfc31a188792cdec12a127efb.tar.bz2 gentoo-2-8fa4dfc81693c79dfc31a188792cdec12a127efb.zip |
Fix regression in the ipv6 lookup, bug #373577 thank Juergen Rose for report and Dustin Polke for the fix.
(Portage version: 2.1.10.3/cvs/Linux x86_64)
Diffstat (limited to 'net-fs')
-rw-r--r-- | net-fs/autofs/ChangeLog | 9 | ||||
-rw-r--r-- | net-fs/autofs/autofs-5.0.6-r1.ebuild | 113 | ||||
-rw-r--r-- | net-fs/autofs/files/autofs-5.0.6-ipv6_name_lookup_regression.patch | 49 |
3 files changed, 170 insertions, 1 deletions
diff --git a/net-fs/autofs/ChangeLog b/net-fs/autofs/ChangeLog index 8fccf0a692cf..a4981cc93ba1 100644 --- a/net-fs/autofs/ChangeLog +++ b/net-fs/autofs/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-fs/autofs # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-fs/autofs/ChangeLog,v 1.111 2011/06/28 14:06:07 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-fs/autofs/ChangeLog,v 1.112 2011/07/01 11:24:07 pva Exp $ + +*autofs-5.0.6-r1 (01 Jul 2011) + + 01 Jul 2011; Peter Volkov <pva@gentoo.org> +autofs-5.0.6-r1.ebuild, + +files/autofs-5.0.6-ipv6_name_lookup_regression.patch: + Fix regression in the ipv6 lookup, bug #373577 thank Juergen Rose for report + and Dustin Polke for the fix. *autofs-5.0.6 (28 Jun 2011) diff --git a/net-fs/autofs/autofs-5.0.6-r1.ebuild b/net-fs/autofs/autofs-5.0.6-r1.ebuild new file mode 100644 index 000000000000..388a730a26f4 --- /dev/null +++ b/net-fs/autofs/autofs-5.0.6-r1.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-fs/autofs/autofs-5.0.6-r1.ebuild,v 1.1 2011/07/01 11:24:07 pva Exp $ + +EAPI="4" +inherit eutils multilib autotools linux-info + +DESCRIPTION="Kernel based automounter" +HOMEPAGE="http://www.linux-consulting.com/Amd_AutoFS/autofs.html" +PATCH_VER="" +[[ -n ${PATCH_VER} ]] && \ + PATCHSET_URI="mirror://gentoo/${P}-patches-${PATCH_VER}.tar.lzma" +SRC_URI="mirror://kernel/linux/daemons/${PN}/v5/${P}.tar.bz2 + ${PATCHSET_URI}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="hesiod ldap sasl" + +# USE="sasl" adds SASL support to the LDAP module which will not be build. If +# SASL support should be available, please add "ldap" to the USE flags. +REQUIRED_USE="sasl? ( ldap )" + +# currently, sasl code assumes the presence of kerberosV +RDEPEND="hesiod? ( net-dns/hesiod ) + ldap? ( >=net-nds/openldap-2.0 + sasl? ( dev-libs/cyrus-sasl + dev-libs/libxml2 + virtual/krb5 ) )" +DEPEND="${RDEPEND}" + +src_prepare() { + # Upstream's patchset + if [[ -n ${PATCH_VER} ]]; then + EPATCH_SUFFIX="patch" \ + epatch "${WORKDIR}"/patches + fi + + # Fix for bug #210762 + # Upstream reference: http://thread.gmane.org/gmane.linux.kernel.autofs/4203 + epatch "${FILESDIR}"/${PN}-5.0.3-heimdal.patch + + # Accumulated fixes for bugs + # #154797: Respect CC and CFLAGS + # #253412: Respect LDFLAGS + # #247969: Link order for --as-needed + epatch "${FILESDIR}"/${P}-respect-user-flags-and-fix-asneeded.patch + + # do not include <nfs/nfs.h>, rather <linux/nfs.h>, + # as the former is a lame header for the latter (bug #157968) + sed 's@nfs/nfs.h@linux/nfs.h@' -i include/rpc_subs.h || die + + # Upstream reference: http://thread.gmane.org/gmane.linux.kernel.autofs/5371 + epatch "${FILESDIR}"/${PN}-5.0.5-fix-install-deadlink.patch + + # Upstream reference: http://thread.gmane.org/gmane.linux.kernel.autofs/6039 + # Disable LDAP specific code if USE="-ldap", let's see what upstream says... + epatch "${FILESDIR}"/${PN}-5.0.5-fix-building-without-ldap.patch + + # https://bugs.gentoo.org/show_bug.cgi?id=361899 + epatch "${FILESDIR}"/${PN}-5.0.5-add-missing-endif-HAVE_SASL-in-modules-lookup_ldap.c.patch + + # Fix for bug #373577 + # Upstream reference: http://article.gmane.org/gmane.linux.kernel.autofs/6187 + # Fix regression in IPv6 name lookup regression + epatch "${FILESDIR}"/${P}-ipv6_name_lookup_regression.patch + + eautoreconf +} + +src_configure() { + # work around bug #355975 (mount modifies timestamp of /etc/mtab) + # with >=sys-apps/util-linux-2.19, + addpredict "/etc/mtab" + + # --with-confdir is for bug #361481 + econf \ + --with-confdir=/etc/conf.d \ + $(use_with ldap openldap) \ + $(use_with sasl) \ + $(use_with hesiod) \ + --enable-ignore-busy +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc README* CHANGELOG CREDITS COPYRIGHT INSTALL + + # kernel patches + docinto patches + dodoc patches/${PN}4-2.6.??{,.?{,?}}-v5-update-????????.patch + + newinitd "${FILESDIR}"/autofs5.initd autofs + insinto etc/autofs + newins "${FILESDIR}"/autofs5-auto.master auto.master +} + +pkg_postinst() { + if kernel_is -lt 2 6 30; then + elog "This version of ${PN} requires a kernel with autofs4 supporting" + elog "protocol version 5.00. Patches for kernels older than 2.6.30 have" + elog "been installed into" + elog "${EROOT}usr/share/doc/${P}/patches." + elog "For further instructions how to patch the kernel, please refer to" + elog "${EROOT}usr/share/doc/${P}/INSTALL." + elog + fi + elog "If you plan on using autofs for automounting remote NFS mounts," + elog "please check that both portmap (or rpcbind) and rpc.statd/lockd" + elog "are running." +} diff --git a/net-fs/autofs/files/autofs-5.0.6-ipv6_name_lookup_regression.patch b/net-fs/autofs/files/autofs-5.0.6-ipv6_name_lookup_regression.patch new file mode 100644 index 000000000000..7465a98a3993 --- /dev/null +++ b/net-fs/autofs/files/autofs-5.0.6-ipv6_name_lookup_regression.patch @@ -0,0 +1,49 @@ +--- modules/replicated.c ++++ modules/replicated.c +@@ -1111,7 +1111,8 @@ static int add_host_addrs(struct host **list, const char *host, + unsigned int weight, unsigned int options) + { + struct addrinfo hints, *ni, *this; +- char *name = strdup(host); ++ char *n_ptr; ++ char *name = n_ptr = strdup(host); + int len; + char buf[MAX_ERR_BUF]; + int rr = 0; +@@ -1125,15 +1126,17 @@ static int add_host_addrs(struct host **list, const char *host, + } + len = strlen(name); + +- if (name[0] == '[' && name[--len] == ']') ++ if (name[0] == '[' && name[--len] == ']') { + name[len] = '\0'; ++ name++; ++ } + + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_NUMERICHOST; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + +- ret = getaddrinfo(name + 1, NULL, &hints, &ni); ++ ret = getaddrinfo(name, NULL, &hints, &ni); + if (ret) + goto try_name; + +@@ -1153,7 +1156,7 @@ try_name: + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + +- ret = getaddrinfo(name + 1, NULL, &hints, &ni); ++ ret = getaddrinfo(name, NULL, &hints, &ni); + if (ret) { + error(LOGOPT_ANY, "hostname lookup failed: %s", + gai_strerror(ret)); +@@ -1172,7 +1175,7 @@ try_name: + } + freeaddrinfo(ni); + done: +- free(name); ++ free(n_ptr); + return ret; + } |