blob: 1ff979c591e5a5482050cc0d58dcab9077c65b6e [file] [log] [blame]
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-client/opera/opera-10.50_pre6242.ebuild,v 1.1 2010/03/06 15:34:18 jer Exp $
EAPI="2"
OPREFIX="/usr/lib"
inherit eutils
DESCRIPTION="A standards-compliant graphical Web browser"
HOMEPAGE="http://www.opera.com/"
SLOT="0"
LICENSE="OPERA-10.10 LGPL-2"
KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
RESTRICT="mirror test"
QA_DT_HASH="${OPREFIX}/${PN}/.*"
QA_PRESTRIPPED="${OPREFIX}/${PN}/.*"
IUSE="elibc_FreeBSD"
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="http://snapshot.opera.com/unix/snapshot-${PV/*_pre}/"
O_P="${P/_pre/-}"
SRC_URI="
amd64? ( ${O_U}${O_P}.x86_64.linux.tar.bz2 )
ppc? ( ${O_U}${O_P}.ppc.linux.tar.bz2 )
x86? ( ${O_U}${O_P}.i386.linux.tar.bz2 )
x86-fbsd? ( ${O_U}${O_P}.i386.freebsd.tar.bz2 )
"
DEPEND=">=sys-apps/sed-4"
RDEPEND="
=x11-libs/gtk+-2*
dev-libs/atk
dev-libs/expat
dev-libs/glib
media-libs/fontconfig
media-libs/freetype
media-libs/glitz
media-plugins/gst-plugins-meta
media-libs/libpng
sys-apps/util-linux
sys-libs/zlib
virtual/opengl
x11-libs/cairo
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXdmcp
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libXmu
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXt
x11-libs/libxcb
x11-libs/pango
x11-libs/pixman
x11-libs/xcb-util
"
opera_linguas() {
# Remove unwanted LINGUAS:
local LINGUA
local LNGDIR="${D}usr/share/${PN}/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() {
echo -e \
" ${GOOD}****************************************************${NORMAL}"
elog "If you seek support, please file a bug report at"
elog "https://bugs.gentoo.org and post the output of"
elog " \`emerge --info =${CATEGORY}/${P}'"
echo -e \
" ${GOOD}****************************************************${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() {
sed -i opera \
-e 's|=usr/lib/opera|=/usr/lib/opera|g' \
-e '6a\OPERA_DIR=/usr/share/opera' \
|| die "sed opera script failed"
epatch "${FILESDIR}"/${PN}-10.50-paths.patch
}
src_install() {
# This alpha build hardcodes /usr as prefix
mv etc/ usr/ "${D}"/ || die "mv etc/ usr/ failed"
make_desktop_entry ${PN} Opera ${PN} # TODO
# Install startup script
dobin ${PN} || die "dobin failed"
# Stop revdep-rebuild from checking opera binaries
dodir /etc/revdep-rebuild
echo "SEARCH_DIRS_MASK=\"${OPREFIX}/${PN}\"" > "${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}"${OPREFIX}/${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
[[ -z MY_LINGUAS ]] || opera_linguas
}
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 ${OPREFIX}/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
}