Hi, I see 4.8.5 in the moz overlay. I have not tested that but it would be convienient if that version entered the gentoo-x86 tree with the Gentoo Prefix mods (I expect it to work just fine). There are many patches that probably have not been posted upstream yet, sorry. In line diff: %% cvs di ? nspr-4.8.4-r00.1.ebuild Index: nspr-4.8.4-r1.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/dev-libs/nspr/nspr-4.8.4-r1.ebuild,v retrieving revision 1.1 diff -u -r1.1 nspr-4.8.4-r1.ebuild --- nspr-4.8.4-r1.ebuild 16 May 2010 18:39:14 -0000 1.1 +++ nspr-4.8.4-r1.ebuild 13 Jul 2010 15:47:41 -0000 @@ -2,6 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-libs/nspr/nspr-4.8.4-r1.ebuild,v 1.1 2010/05/16 18:39:14 anarchy Exp $ +EAPI=3 + inherit eutils multilib toolchain-funcs versionator MIN_PV="$(get_version_component_range 2)" @@ -12,41 +14,49 @@ LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" IUSE="debug" -src_unpack() { - unpack ${A} - cd "${S}" +src_prepare() { mkdir build inst epatch "${FILESDIR}"/${PN}-4.8-config.patch epatch "${FILESDIR}"/${PN}-4.6.1-config-1.patch epatch "${FILESDIR}"/${PN}-4.6.1-lang.patch epatch "${FILESDIR}"/${PN}-4.7.0-prtime.patch epatch "${FILESDIR}"/${PN}-4.8-pkgconfig-gentoo-3.patch + epatch "${FILESDIR}"/${PN}-4.7.1-solaris.patch + epatch "${FILESDIR}"/${PN}-4.7.4-solaris.patch + epatch "${FILESDIR}"/${PN}-4.8.3-aix-gcc.patch + epatch "${FILESDIR}"/${PN}-4.8.3-aix-soname.patch + epatch "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch + # make sure it won't find Perl out of Prefix + sed -i -e "s/perl5//g" mozilla/nsprpub/configure || die # Respect LDFLAGS sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ mozilla/nsprpub/config/rules.mk } -src_compile() { +src_configure() { cd "${S}"/build echo > "${T}"/test.c $(tc-getCC) -c "${T}"/test.c -o "${T}"/test.o case $(file "${T}"/test.o) in - *64-bit*) myconf="${myconf} --enable-64bit";; - *32-bit*) ;; + *64-bit*|*ppc64*|*x86_64*) myconf="${myconf} --enable-64bit";; + *32-bit*|*ppc*|*i386*|*"RISC System/6000"*) ;; *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; esac - myconf="${myconf} --libdir=/usr/$(get_libdir)" + myconf="${myconf} --libdir=${EPREFIX}/usr/$(get_libdir)" ECONF_SOURCE="../mozilla/nsprpub" econf \ $(use_enable debug) \ $(use_enable !debug optimize) \ ${myconf} || die "econf failed" +} + +src_compile() { emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" || die "failed to build" } @@ -56,15 +66,22 @@ cd "${S}"/build emake DESTDIR="${D}" install || die "emake install failed" - cd "${D}"/usr/$(get_libdir) + cd "${ED}"/usr/$(get_libdir) for file in *.a; do einfo "removing static libraries as upstream has requested!" rm -f ${file} || die "failed to remove staic libraries." done - for file in *.so; do - mv ${file} ${file}.${MINOR_VERSION} || die "failed to mv files around" - ln -s ${file}.${MINOR_VERSION} ${file} || die "failed to symlink files." + local n= + # aix-soname.patch does this already + [[ ${CHOST} == *-aix* ]] || + for file in *$(get_libname); do + n=${file%$(get_libname)}$(get_libname ${MINOR_VERSION}) + mv ${file} ${n} || die "failed to mv files around" + ln -s ${n} ${file} || die "failed to symlink files." + if [[ ${CHOST} == *-darwin* ]]; then + install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/${n}" ${n} || die + fi done # install nspr-config @@ -75,7 +92,7 @@ doins "${S}"/build/config/nspr.pc || die "failed to insall nspr pkg-config file" # Remove stupid files in /usr/bin - rm -f "${D}"/usr/bin/prerr.properties || die "failed to cleanup unneeded files" + rm -f "${ED}"/usr/bin/prerr.properties || die "failed to cleanup unneeded files" } pkg_postinst() {
Created attachment 238613 [details, diff] nspr-4.8.4-r1-prefix.patch same as in-line diff above
@mozilla team: This bug is for reference. We can discuss in IRC or here, doesn't matter. You can find the referenced patches here: http://overlays.gentoo.org/proj/alt/browser/trunk/prefix-overlay/dev-libs/nspr/files Thanks for looking. :)
The mozilla team requests upstream references for the patches. I didn't write any of them myself so I'm not sure of the status. It would be real, real nice to get these in gentoo-x86 because of the frequent security bumps for firefox :)
New developments: 14:46 <@Anarchy> darkside_, I have rechecked the nspr changes go ahead with them as well. 14:47 <@darkside_> are you sure? 14:49 <@Anarchy> yup 14:50 <@darkside_> ok, thx. i'm abit busy at work now but I will do it in a few days.
+ 21 Jul 2010; Jeremy Olexa <darkside@gentoo.org> + +files/nspr-4.7.1-solaris.patch, +files/nspr-4.7.4-solaris.patch, + +files/nspr-4.8.3-aix-gcc.patch, +files/nspr-4.8.3-aix-soname.patch, + nspr-4.8.4-r1.ebuild, +files/nspr-4.8.4-darwin-install_name.patch: + Migrate changes from Gentoo Prefix overlay. Convert to EAPI3, add patches, + etc. Approved by mozilla team in IRC, reference bug 328119 Thanks again, Anarchy