summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-client/opera/opera-10.10.ebuild')
-rw-r--r--www-client/opera/opera-10.10.ebuild227
1 files changed, 227 insertions, 0 deletions
diff --git a/www-client/opera/opera-10.10.ebuild b/www-client/opera/opera-10.10.ebuild
new file mode 100644
index 000000000000..88a73b6258cc
--- /dev/null
+++ b/www-client/opera/opera-10.10.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-client/opera/opera-10.10.ebuild,v 1.1 2009/11/23 15:16:49 jer Exp $
+
+EAPI="2"
+
+GCONF_DEBUG="no"
+
+inherit eutils gnome2
+
+DESCRIPTION="A standards-compliant graphical Web browser"
+HOMEPAGE="http://www.opera.com/"
+
+SLOT="0"
+LICENSE="OPERA-10.00"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
+
+RESTRICT="mirror test"
+
+QA_DT_HASH="opt/${PN}/.*"
+QA_PRESTRIPPED="
+ opt/${PN}/lib/opera/${PV/_pre*}/missingsyms.so
+ opt/${PN}/lib/opera/${PV/_pre*}/spellcheck.so
+ opt/${PN}/lib/opera/${PV/_pre*}/opera
+ opt/${PN}/lib/opera/${PV/_pre*}/works
+ opt/${PN}/lib/opera/${PV/_pre*}/operaplugincleaner
+ opt/${PN}/lib/opera/${PV/_pre*}/operapluginwrapper
+"
+
+IUSE="elibc_FreeBSD gnome ia32 qt3 qt-static"
+MY_LINGUAS="be bg cs da de el en-GB es-ES es-LA et fi fr fr-CA fy hi hr hu id it ja ka ko lt mk nb nl nn pl pt pt-BR ro ru sk sr sv ta te tr uk zh-CN zh-HK zh-TW"
+
+for MY_LINGUA in ${MY_LINGUAS}; do
+ IUSE="${IUSE} linguas_${MY_LINGUA/-/_}"
+done
+
+O_U="mirror://opera/linux/1010/final/en/"
+
+SRC_URI="
+ amd64? (
+ !ia32? (
+ qt-static? ( ${O_U}x86_64/${P}.gcc4-bundled-qt4.x86_64.tar.bz2 )
+ !qt-static? (
+ qt3? ( ${O_U}x86_64/${P}.gcc4-shared-qt3.x86_64.tar.bz2 )
+ !qt3? ( ${O_U}x86_64/${P}.gcc4-qt4.x86_64.tar.bz2 )
+ )
+ )
+ ia32? (
+ qt-static? ( ${O_U}i386/${P}.gcc4-bundled-qt4.i386.tar.bz2 )
+ !qt-static? (
+ qt3? ( ${O_U}i386/shared/${P}.gcc4-shared-qt3.i386.tar.bz2 )
+ !qt3? ( ${O_U}i386/${P}.gcc4-qt4.i386.tar.bz2 )
+ )
+ )
+ )
+ ppc? ( ${O_U}ppc/shared/${P}.gcc4-shared-qt3.ppc.tar.bz2 )
+ x86? (
+ qt-static? ( ${O_U}i386/${P}.gcc4-bundled-qt4.i386.tar.bz2 )
+ !qt-static? (
+ qt3? ( ${O_U}i386/shared/${P}.gcc4-shared-qt3.i386.tar.bz2 )
+ !qt3? ( ${O_U}i386/${P}.gcc4-qt4.i386.tar.bz2 )
+ )
+ )
+ x86-fbsd? ( mirror://opera/unix/freebsd/1010/en/intel/shared/${P}-freebsd7-shared-qt3.i386.tar.bz2 )
+ "
+
+DEPEND=">=sys-apps/sed-4"
+
+RDEPEND="
+ media-libs/jpeg
+ media-libs/libexif
+ >=media-libs/fontconfig-2.1.94-r1
+ x11-libs/libXrandr
+ x11-libs/libXp
+ x11-libs/libXmu
+ x11-libs/libXi
+ x11-libs/libXft
+ x11-libs/libXext
+ x11-libs/libXcursor
+ x11-libs/libX11
+ x11-libs/libSM
+ x11-libs/libICE
+ amd64? (
+ ia32? (
+ qt-static? ( media-libs/nas )
+ !qt-static? (
+ qt3? ( =x11-libs/qt-3*[-immqt] )
+ !qt3? ( x11-libs/qt-core x11-libs/qt-gui )
+ )
+ )
+ !ia32? (
+ qt-static? ( media-libs/nas )
+ !qt-static? (
+ qt3? ( =x11-libs/qt-3*[-immqt] )
+ !qt3? ( x11-libs/qt-core x11-libs/qt-gui )
+ )
+ )
+ )
+ ppc? ( =x11-libs/qt-3*[-immqt] )
+ x86? (
+ qt-static? ( media-libs/nas )
+ !qt-static? (
+ qt3? ( =x11-libs/qt-3*[-immqt] )
+ !qt3? ( x11-libs/qt-core x11-libs/qt-gui )
+ )
+ )
+ x86-fbsd? ( =x11-libs/qt-3*[-immqt] )
+ "
+
+opera_linguas() {
+ # Remove unwanted LINGUAS:
+ local LINGUA
+ local LNGDIR="${D}/opt/opera/share/opera/locale"
+ einfo "Keeping these locales: ${LINGUAS}."
+ for LINGUA in ${MY_LINGUAS}; do
+ if ! use linguas_${LINGUA/-/_}; then
+ LINGUA=$(find "${LNGDIR}" -maxdepth 1 -type d -iname ${LINGUA/_/-})
+ rm -r "${LINGUA}"
+ fi
+ done
+}
+
+pkg_setup() {
+ elog "${WARN}If you seek support, please file a bug report at${NORMAL}"
+ elog "${WARN}https://bugs.gentoo.org and post the output of${NORMAL}"
+ elog "${WARN} \`emerge --info =${CATEGORY}/${P}'${NORMAL}"
+}
+
+src_unpack() {
+ unpack ${A}
+ if [[ ! -d ${S} ]]; then
+ cd "${WORKDIR}"/${PN}* || die "failed to enter work directory"
+ S="$(pwd)"
+ einfo "Setting WORKDIR to ${S}"
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-gentoo.patch"
+ epatch "${FILESDIR}/${PN}-simplify-desktop.patch"
+ epatch "${FILESDIR}/${PN}-freedesktop.patch"
+
+ # bug #181300:
+ if use elibc_FreeBSD; then
+ epatch "${FILESDIR}/${PN}-10.00-pluginpath-fbsd.patch"
+ else
+ epatch "${FILESDIR}/${PN}-10.00-pluginpath.patch"
+ fi
+
+ sed -i -e "s:config_dir=\"/etc\":config_dir=\"${D}/etc/\":g" \
+ -e "s:\(str_localdirplugin=\).*$:\1/opt/opera/lib/opera/plugins:" \
+ -e 's:#\(export LD_PRELOAD OPERA_FORCE_JAVA_ENABLED\):\1:' \
+ -e 's:#\(OPERA_FORCE_JAVA_ENABLED=\):\1:' \
+ install.sh || die "sed failed"
+}
+
+# These workarounds are sadly needed because gnome2.eclass doesn't check
+# whether a configure/Makefile script exists.
+src_configure() { :; }
+src_compile() { :; }
+
+src_install() {
+ # Prepare installation directories for Opera's installer script.
+ dodir /etc
+
+ # Opera's native installer.
+ ./install.sh --prefix="${D}"/opt/opera || die "install.sh failed"
+
+ einfo "It is safe to ignore warnings about failed checksums"
+ einfo "and about files that would be ignored ..."
+ einfo "Completing the installation where install.sh abandoned us ..."
+
+ # java workaround
+ sed -i -e 's:LD_PRELOAD="${OPERA_JAVA_DIR}/libawt.so":LD_PRELOAD="$LD_PRELOAD"\:"${OPERA_JAVA_DIR}/libawt.so":' "${D}"/opt/opera/bin/opera
+
+ dosed /opt/opera/bin/opera
+ dosed /opt/opera/share/opera/java/opera.policy
+
+ # Adapt desktop file to Gnome when needed
+ use gnome && sed -i -e s:"GenericName\[":"Comment\[": "${D}"/usr/share/applications/opera.desktop
+
+ # Install a symlink /usr/bin/opera
+ dodir /usr/bin
+ dosym /opt/opera/bin/opera /usr/bin/opera
+
+ dodir /etc/revdep-rebuild
+ echo 'SEARCH_DIRS_MASK="/opt/opera/lib/opera/plugins"' > "${D}"/etc/revdep-rebuild/90opera
+
+ # Change libz.so.3 to libz.so.1 for gentoo/freebsd
+ if use elibc_FreeBSD; then
+ scanelf -qR -N libz.so.3 -F "#N" "${D}"/opt/${PN}/ | \
+ while read i; do
+ if [[ $(strings "$i" | fgrep -c libz.so.3) -ne 1 ]];
+ then
+ export SANITY_CHECK_LIBZ_FAILED=1
+ break
+ fi
+ sed -i -e 's/libz\.so\.3/libz.so.1/g' "$i"
+ done
+ [[ "$SANITY_CHECK_LIBZ_FAILED" = "1" ]] && die "failed to change libz.so.3 to libz.so.1"
+ fi
+
+ # Add the Opera man dir to MANPATH:
+ insinto /etc/env.d
+ echo 'MANPATH="/opt/opera/share/man"' >> "${D}"/etc/env.d/90opera
+
+ [[ -z MY_LINGUAS ]] || opera_linguas
+}
+
+pkg_postinst() {
+ use gnome && gnome2_pkg_postinst
+
+ elog "To change the UI language, choose [Tools] -> [Preferences], open the"
+ elog "[General] tab, click on [Details...] then [Choose...] and point the"
+ elog "file chooser at /opt/opera/share/opera/locale/, then enter the"
+ elog "directory for the language you want and [Open] the .lng file."
+
+ if use elibc_FreeBSD; then
+ elog
+ elog "To improve shared memory usage please set:"
+ elog "$ sysctl kern.ipc.shm_allow_removed=1"
+ fi
+}
+
+pkg_postrm() {
+ use gnome && gnome2_pkg_postrm
+}