--- /usr/portage/www-client/firefox-bin/firefox-bin-21.0.ebuild 2013-05-15 07:31:32.000000000 -0600 +++ firefox-bin-21.0.ebuild 2013-06-26 14:59:47.608874309 -0600 @@ -21,13 +21,13 @@ # We don't use the http mirror because it deletes old tarballs. MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/mozilla.org/${MOZ_PN}/releases/" -inherit eutils multilib pax-utils fdo-mime gnome2-utils mozlinguas nsplugins +inherit eutils pax-utils fdo-mime gnome2-utils mozlinguas nsplugins multilib-minimal DESCRIPTION="Firefox Web Browser" MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/mozilla.org/${MOZ_PN}/releases" SRC_URI="${SRC_URI} - amd64? ( ${MOZ_FTP_URI}/${MOZ_PV}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) - x86? ( ${MOZ_FTP_URI}/${MOZ_PV}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" + abi_x86_64? ( ${MOZ_FTP_URI}/${MOZ_PV}/linux-x86_64/en-US/${MOZ_P}.tar.bz2 -> ${PN}_x86_64-${PV}.tar.bz2 ) + abi_x86_32? ( ${MOZ_FTP_URI}/${MOZ_PV}/linux-i686/en-US/${MOZ_P}.tar.bz2 -> ${PN}_i686-${PV}.tar.bz2 )" HOMEPAGE="http://www.mozilla.com/firefox" RESTRICT="strip mirror" @@ -47,36 +47,49 @@ >=media-libs/alsa-lib-1.0.16 !net-libs/libproxy[spidermonkey] + amd64? ( abi_x86_32? ( app-emulation/emul-linux-x86-gtklibs ) ) " QA_PREBUILT=" - opt/${MOZ_PN}/*.so - opt/${MOZ_PN}/${MOZ_PN} - opt/${MOZ_PN}/${PN} - opt/${MOZ_PN}/crashreporter - opt/${MOZ_PN}/webapprt-stub - opt/${MOZ_PN}/plugin-container - opt/${MOZ_PN}/mozilla-xremote-client - opt/${MOZ_PN}/updater + opt/${MOZ_PN}*/*.so + opt/${MOZ_PN}*/${MOZ_PN} + opt/${MOZ_PN}*/${PN} + opt/${MOZ_PN}*/crashreporter + opt/${MOZ_PN}*/webapprt-stub + opt/${MOZ_PN}*/plugin-container + opt/${MOZ_PN}*/mozilla-xremote-client + opt/${MOZ_PN}*/updater " -S="${WORKDIR}/${MOZ_PN}" +S="${WORKDIR}" +BUILD_DIR="${S}/${MOZ_PN}" src_unpack() { - unpack ${A} + local i + for i in ${A} ; do + [[ $i = *.xpi ]] && continue + unpack "${i}" + mv "${MOZ_PN}" "${MOZ_PN}-$([[ $i = *i686* ]] && echo x86 || echo amd64)" || die + done # Unpack language packs mozlinguas_src_unpack } -src_install() { - declare MOZILLA_FIVE_HOME=/opt/${MOZ_PN} +multilib_src_install() { + local abis=( $(multilib_get_enabled_abis) ) + local best_abi="${abis[$(( ${#abis[@]} - 1 ))]}" + local suffix= + [[ ${ABI} = ${best_abi} ]] || suffix="-${ABI}" + local MY_PN="${PN}${suffix}" + + declare MOZILLA_FIVE_HOME=/opt/${MOZ_PN}${suffix} local size sizes icon_path icon name sizes="16 32 48" - icon_path="${S}/browser/chrome/icons/default" - icon="${PN}" - name="Mozilla Firefox" + icon_path="${BUILD_DIR}/browser/chrome/icons/default" + icon="${PN}-icon" + name="Mozilla Firefox (bin/${ABI})" # Install icons and .desktop for menu entry for size in ${sizes}; do @@ -87,19 +100,21 @@ insinto "/usr/share/icons/hicolor/128x128/apps" newins "${icon_path}/../../../icons/mozicon128.png" "${icon}.png" || die # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs - newicon "${S}"/browser/chrome/icons/default/default48.png ${PN}-icon.png - domenu "${FILESDIR}"/${PN}.desktop - sed -i -e "s:@NAME@:${name}:" -e "s:@ICON@:${icon}:" \ - "${ED}/usr/share/applications/${PN}.desktop" || die + newicon "${BUILD_DIR}"/browser/chrome/icons/default/default48.png ${PN}-icon.png + newmenu "${FILESDIR}"/${PN}.desktop "${MY_PN}".desktop + sed -e "/^Name/s:=.*:=${name}:" \ + -e "/^Icon/s:=.*:=${icon}:" \ + -e "/^Exec/s:=.*:=/usr/bin/${MY_PN} %u:" \ + -i "${ED}/usr/share/applications/${MY_PN}.desktop" || die # Add StartupNotify=true bug 237317 if use startup-notification; then - echo "StartupNotify=true" >> "${D}"/usr/share/applications/${PN}.desktop + echo "StartupNotify=true" >> "${D}"/usr/share/applications/${MY_PN}.desktop fi # Install firefox in /opt dodir ${MOZILLA_FIVE_HOME%/*} - mv "${S}" "${D}"${MOZILLA_FIVE_HOME} || die + mv "${BUILD_DIR}" "${D}"${MOZILLA_FIVE_HOME} || die # Fix prefs that make no sense for a system-wide install insinto ${MOZILLA_FIVE_HOME}/defaults/pref/ @@ -120,18 +135,19 @@ # Create /usr/bin/firefox-bin dodir /usr/bin/ - cat <<-EOF >"${D}"/usr/bin/${PN} + cat <<-EOF >"${D}"/usr/bin/${MY_PN} #!/bin/sh unset LD_PRELOAD - LD_LIBRARY_PATH="/opt/firefox/" - GTK_PATH=/usr/lib/gtk-2.0/ - exec /opt/${MOZ_PN}/${MOZ_PN} "\$@" + LD_LIBRARY_PATH="${MOZILLA_FIVE_HOME}" + GTK_PATH=/usr/$(get_libdir)/gtk-2.0/ + exec /opt/${MOZ_PN}${suffix}/${MOZ_PN} "\$@" EOF - fperms 0755 /usr/bin/${PN} + fperms 0755 /usr/bin/${MY_PN} # revdep-rebuild entry insinto /etc/revdep-rebuild - doins "${FILESDIR}"/10${PN} || die + sed -e "s:${MOZ_PN}:&${suffix}:" "${FILESDIR}/10${PN}" > "${T}/10${MY_PN}" || die + doins "${T}"/10${MY_PN} || die # Plugins dir share_plugins_dir