Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 328119 - =dev-libs/nspr-4.8.4-r1: migrate Gentoo Prefix modifications to gentoo-x86
Summary: =dev-libs/nspr-4.8.4-r1: migrate Gentoo Prefix modifications to gentoo-x86
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All Linux
: High enhancement
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: prefix-gx86 328127
  Show dependency tree
 
Reported: 2010-07-13 15:49 UTC by Jeremy Olexa (darkside) (RETIRED)
Modified: 2010-07-21 14:01 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
nspr-4.8.4-r1-prefix.patch (nspr-4.8.4-r1-prefix.patch,3.79 KB, patch)
2010-07-13 15:50 UTC, Jeremy Olexa (darkside) (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-13 15:49:00 UTC
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() {
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-13 15:50:41 UTC
Created attachment 238613 [details, diff]
nspr-4.8.4-r1-prefix.patch

same as in-line diff above
Comment 2 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-13 15:52:53 UTC
@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. :)
Comment 3 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-19 19:12:12 UTC
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 :)
Comment 4 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-19 19:51:22 UTC
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.
Comment 5 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-07-21 14:01:06 UTC
+  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