diff options
author | Nirbheek Chauhan <nirbheek@gentoo.org> | 2009-06-24 15:56:40 +0000 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@gentoo.org> | 2009-06-24 15:56:40 +0000 |
commit | 76d6388584fe3f6b8ed8681db79670f7b01917e0 (patch) | |
tree | 07b09583d8dc9efd9ef1b8a21e42897934f98b13 /dev-libs/nss | |
parent | arm/ia64/sh/sparc/x86 stable (diff) | |
download | gentoo-2-76d6388584fe3f6b8ed8681db79670f7b01917e0.tar.gz gentoo-2-76d6388584fe3f6b8ed8681db79670f7b01917e0.tar.bz2 gentoo-2-76d6388584fe3f6b8ed8681db79670f7b01917e0.zip |
Fix bug 266343 (executable stack) and all bugs depending on it
(Portage version: 2.2_rc33/cvs/Linux i686)
Diffstat (limited to 'dev-libs/nss')
-rw-r--r-- | dev-libs/nss/ChangeLog | 10 | ||||
-rw-r--r-- | dev-libs/nss/files/nss-3.12.3-executable-stacks.patch | 15 | ||||
-rw-r--r-- | dev-libs/nss/nss-3.12.3-r1.ebuild | 131 |
3 files changed, 154 insertions, 2 deletions
diff --git a/dev-libs/nss/ChangeLog b/dev-libs/nss/ChangeLog index 19e4d7d43cab..41b5a30064a5 100644 --- a/dev-libs/nss/ChangeLog +++ b/dev-libs/nss/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-libs/nss -# Copyright 2000-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/nss/ChangeLog,v 1.144 2009/04/15 15:33:49 armin76 Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/nss/ChangeLog,v 1.145 2009/06/24 15:56:40 nirbheek Exp $ + +*nss-3.12.3-r1 (24 Jun 2009) + + 24 Jun 2009; <nirbheek@gentoo.org> +nss-3.12.3-r1.ebuild, + +files/nss-3.12.3-executable-stacks.patch: + Fix bug 266343 (executable stack) and all bugs depending on it 15 Apr 2009; Raúl Porcel <armin76@gentoo.org> +files/nss-3.12-config.patch: diff --git a/dev-libs/nss/files/nss-3.12.3-executable-stacks.patch b/dev-libs/nss/files/nss-3.12.3-executable-stacks.patch new file mode 100644 index 000000000000..aedbebf7fdad --- /dev/null +++ b/dev-libs/nss/files/nss-3.12.3-executable-stacks.patch @@ -0,0 +1,15 @@ +--- mozilla/security/nss/lib/freebl/intel-aes.s-old 2009-06-21 14:20:10.491641710 -0500 ++++ mozilla/security/nss/lib/freebl/intel-aes.s 2009-06-21 14:21:33.846655888 -0500 +@@ -1633,4 +1633,10 @@ + + xor %eax, %eax + ret +- .size intel_aes_decrypt_cbc_256, .-intel_aes_decrypt_cbc_256 ++ .size intel_aes_decrypt_cbc_256, .-intel_aes_decrypt_cbc_256 ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif ++ ++ + diff --git a/dev-libs/nss/nss-3.12.3-r1.ebuild b/dev-libs/nss/nss-3.12.3-r1.ebuild new file mode 100644 index 000000000000..4dc6f0d52ef8 --- /dev/null +++ b/dev-libs/nss/nss-3.12.3-r1.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/nss/nss-3.12.3-r1.ebuild,v 1.1 2009/06/24 15:56:40 nirbheek Exp $ + +inherit eutils flag-o-matic multilib toolchain-funcs + +NSPR_VER="4.7.4" +RTM_NAME="NSS_${PV//./_}_RTM" +DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" +HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/" +SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${RTM_NAME}/src/${P}.tar.bz2" +#SRC_URI="http://dev.gentoo.org/~armin76/dist/${P}.tar.bz2 +# mirror://gentoo/${P}.tar.bz2" + +LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="utils" + +DEPEND=">=dev-libs/nspr-${NSPR_VER} + >=dev-db/sqlite-3.5" +RDEPEND="${DEPEND}" + +src_unpack() { + unpack ${A} + + cd "${S}"/mozilla/security/coreconf + # hack nspr paths + echo 'INCLUDES += -I/usr/include/nspr -I$(DIST)/include/dbm' \ + >> headers.mk || die "failed to append include" + + # cope with nspr being in /usr/$(get_libdir)/nspr + sed -e 's:$(DIST)/lib:/usr/'"$(get_libdir)"/nspr':' \ + -i location.mk + + # modify install path + sed -e 's:SOURCE_PREFIX = $(CORE_DEPTH)/\.\./dist:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \ + -i source.mk + + # Respect LDFLAGS + sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk + + cd "${S}" + epatch "${FILESDIR}"/${PN}-3.12-config.patch + epatch "${FILESDIR}"/${PN}-3.12-config-1.patch + epatch "${FILESDIR}"/${PN}-mips64-2.patch + epatch "${FILESDIR}"/${P}-executable-stacks.patch +} + +src_compile() { + strip-flags + + echo > "${T}"/test.c + $(tc-getCC) -c "${T}"/test.c -o "${T}"/test.o + case $(file "${T}"/test.o) in + *64-bit*) export USE_64=1;; + *32-bit*) ;; + *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; + esac + + export NSDISTMODE=copy + export NSS_USE_SYSTEM_SQLITE=1 + export NSS_ENABLE_ECC=1 + cd "${S}"/mozilla/security/coreconf + emake -j1 BUILD_OPT=1 XCFLAGS="${CFLAGS}" CC="$(tc-getCC)" || die "coreconf make failed" + cd "${S}"/mozilla/security/dbm + emake -j1 BUILD_OPT=1 XCFLAGS="${CFLAGS}" CC="$(tc-getCC)" || die "dbm make failed" + cd "${S}"/mozilla/security/nss + emake -j1 BUILD_OPT=1 XCFLAGS="${CFLAGS}" CC="$(tc-getCC)" || die "nss make failed" +} + +src_install () { + MINOR_VERSION=12 + cd "${S}"/mozilla/security/dist + + # put all *.a files in /usr/lib/nss (because some have conflicting names + # with existing libraries) + dodir /usr/$(get_libdir)/nss + cp -L */lib/*.so "${D}"/usr/$(get_libdir)/nss || die "copying shared libs failed" + cp -L */lib/*.chk "${D}"/usr/$(get_libdir)/nss || die "copying chk files failed" + cp -L */lib/*.a "${D}"/usr/$(get_libdir)/nss || die "copying libs failed" + + # all the include files + insinto /usr/include/nss + doins private/nss/*.h + doins public/nss/*.h + cd "${D}"/usr/$(get_libdir)/nss + for file in *.so; do + mv ${file} ${file}.${MINOR_VERSION} + ln -s ${file}.${MINOR_VERSION} ${file} + done + + # coping with nss being in a different path. We move up priority to + # ensure that nss/nspr are used specifically before searching elsewhere. + dodir /etc/env.d + echo "LDPATH=/usr/$(get_libdir)/nss" > "${D}"/etc/env.d/08nss + + dodir /usr/bin + dodir /usr/$(get_libdir)/pkgconfig + cp "${FILESDIR}"/3.12-nss-config.in "${D}"/usr/bin/nss-config + cp "${FILESDIR}"/3.12-nss.pc.in "${D}"/usr/$(get_libdir)/pkgconfig/nss.pc + NSS_VMAJOR=`cat ${S}/mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VMAJOR" | awk '{print $3}'` + NSS_VMINOR=`cat ${S}/mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VMINOR" | awk '{print $3}'` + NSS_VPATCH=`cat ${S}/mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VPATCH" | awk '{print $3}'` + + sed -e "s,@libdir@,/usr/"$(get_libdir)"/nss,g" \ + -e "s,@prefix@,/usr,g" \ + -e "s,@exec_prefix@,\$\{prefix},g" \ + -e "s,@includedir@,\$\{prefix}/include/nss,g" \ + -e "s,@MOD_MAJOR_VERSION@,$NSS_VMAJOR,g" \ + -e "s,@MOD_MINOR_VERSION@,$NSS_VMINOR,g" \ + -e "s,@MOD_PATCH_VERSION@,$NSS_VPATCH,g" \ + -i "${D}"/usr/bin/nss-config + chmod 755 "${D}"/usr/bin/nss-config + + sed -e "s,@libdir@,/usr/"$(get_libdir)"/nss,g" \ + -e "s,@prefix@,/usr,g" \ + -e "s,@exec_prefix@,\$\{prefix},g" \ + -e "s,@includedir@,\$\{prefix}/include/nss," \ + -e "s,@NSPR_VERSION@,`nspr-config --version`,g" \ + -e "s,@NSS_VERSION@,$NSS_VMAJOR.$NSS_VMINOR.$NSS_VPATCH,g" \ + -i "${D}"/usr/$(get_libdir)/pkgconfig/nss.pc + chmod 644 "${D}"/usr/$(get_libdir)/pkgconfig/nss.pc + + if use utils; then + cd "${S}"/mozilla/security/dist/*/bin/ + for f in *; do + newbin ${f} nss${f} + done + fi +} |