# $Id$ PNAME="opera" PVER="12.16" PBUILD="r1" # enable or disable gtk3 (0=false, 1=true) ENABLE_GTK3=0 # enable or disable qt4/kde4 (0=false, 1=true) ENABLE_KDE4=1 # export them, as they are used in postinstall SPECIAL_VARS="ENABLE_GTK3 ENABLE_KDE4" SPLIT_PACKAGES="opera opera-gtk2" if [[ ${ENABLE_GTK3} -eq 1 ]] then SPLIT_PACKAGES+=" opera-gtk3" fi if [[ ${ENABLE_KDE4} -eq 1 ]] then SPLIT_PACKAGES+=" opera-kde4" fi PCAT="net-www" HOMEPAGE="http://www.opera.com/" COMMON_DEPEND=">= x11-libs/libICE-1 >= x11-libs/libSM-1 >= x11-libs/libX11-1 >= x11-libs/libXau-1 >= x11-libs/libXdmcp-1 >= x11-libs/libXext-1 >= x11-libs/libXmu-1 >= x11-libs/libXrender-0.9 >= x11-libs/libXt-1 >= x11-libs/libXcomposite-0.4 >= x11-libs/libXcursor-1 >= x11-libs/libXdamage-1 >= x11-libs/libXfixes-4 >= x11-libs/libXi-1 >= x11-libs/libXrandr-1 >= media-libs/fontconfig-2.6 >= media-libs/freetype-2.3 >= media-libs/libpng-1.2 >= dev-libs/expat-2 >= media-libs/gstreamer0.10-0.10 >= media-libs/gstreamer0.10-plugins-base-0.10 >= sys-apps/util-linux-2.16 >= sys-libs/zlib-1.2.3 >= virtual/opengl" if [[ ${ENABLE_KDE4} -eq 1 ]] then KDE4_DEPEND=">= x11-libs/qt4-core-4.7 >= x11-libs/qt4-gui-4.7 >= x11-libs/qt4-dbus-4.7 >= x11-libs/qt4-svg-4.7 >= kde-base/kdelibs-4.6" fi GTK2_DEPEND="== net-www/opera-${PVER} >= dev-libs/glib2-2.28 >= dev-libs/atk-1.33 >= x11-libs/cairo-1.10 >= x11-libs/pango-1.28 >= x11-libs/gtk2+-2.24" if [[ ${ENABLE_GTK3} -eq 1 ]] then GTK3_DEPEND="== net-www/opera-${PVER} >= dev-libs/glib2-2.30 >= dev-libs/atk-2 >= x11-libs/cairo-1.10 >= x11-libs/pango-3 >= x11-libs/gtk3+-3" fi SDEPEND="${COMMON_DEPEND} ${KDE4_DEPEND} ${GTK2_DEPEND} >= virtual/sed" if [[ ${ENABLE_GTK3} -eq 1 ]] then SDEPEND="${SDEPEND} ${GTK3_DEPEND}" fi if [[ ${ENABLE_KDE4} -eq 1 ]] then SDEPEND="${SDEPEND} ${KDE4_DEPEND}" fi PROVIDE="virtual/webbrowser" # build version of opera BUILD="1860" # ftp://opera.ftp.fu-berlin.de/linux SRCFILE_x86="${PNAME}-${PVER}-${BUILD}.i386.linux.tar.xz" SRCFILE_x86_64="${PNAME}-${PVER}-${BUILD}.x86_64.linux.tar.xz" # decide between x86 and x86_64 arch SRCFILE="$(marchsrcfile)" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}-${BUILD}.${ARCH/i*86/i386}.linux" sminclude mtools xdg SRC_URI=( http://get.geo.opera.com/pub/opera/linux/${PVER/./}/${SRCFILE_x86} http://get.geo.opera.com/pub/opera/linux/${PVER/./}/${SRCFILE_x86_64} ftp://opera.ftp.fu-berlin.de/linux/${PVER/./}/${SRCFILE_x86} ftp://opera.ftp.fu-berlin.de/linux/${PVER/./}/${SRCFILE_x86_64} ftp://opera.ftp.fu-berlin.de/linux/${PVER/./}/final/en/i386/${SRCFILE_x86} ftp://opera.ftp.fu-berlin.de/linux/${PVER/./}/final/en/x86_64/${SRCFILE_x86_64} mirror://${PNAME}/${SRCFILE_x86} mirror://${PNAME}/${SRCFILE_x86_64} ) split_info_opera() { DESCRIPTION="Opera Web browser." DEPEND="${COMMON_DEPEND}" } if [[ ${ENABLE_KDE4} -eq 1 ]] then split_info_opera-kde4() { DESCRIPTION="Opera UI integration for KDE4." DEPEND="== net-www/opera-${PVER} ${KDE4_DEPEND}" } fi split_info_opera-gtk2() { DESCRIPTION="Opera UI integration for GTK2 and GNOME." DEPEND="== net-www/opera-${PVER} ${GTK2_DEPEND}" } if [[ ${ENABLE_GTK3} -eq 1 ]] then split_info_opera-gtk3() { DESCRIPTION="Opera UI integration for GTK3 and GNOME." DEPEND="== net-www/opera-${PVER} ${GTK3_DEPEND}" } fi src_prepare() { munpack ${SRCFILE} || die } src_install_opera() { cd ${SRCDIR} # fix install destination # (do it here, not in src_unpack to support split-packages) sed -i "s:/usr/local:${BINDIR}/opt/opera:g" install || die # prepare installation directories for opera's installer script minstalldir /opt/opera # run opera's native installer ./install --system --unattended || die # remove uninstaller mdelete /opt/opera/bin/uninstall-opera || die # fix ${BINDIR} everywhere sed -i "s:${BINDIR}::g" ${BINDIR}/opt/opera/bin/opera || die sed -i "s:${BINDIR}::g" ${BINDIR}/opt/opera/share/applications/opera-browser.desktop || die # sanity check if [[ ! -z $(grep -irl ${BINDIR} ${BINDIR}/opt/opera) ]] then die "${BINDIR} in installed /opt/opera files detected!" fi # fix permissions mchmod 0755 /opt/opera/bin/opera || die mchmod 0644 /opt/opera/share/applications/opera-browser.desktop || die # install the icons local i for i in 16x16 22x22 24x24 32x32 48x48 128x128 scalable do minstalldir /usr/share/icons/hicolor/${i}/apps || die if [[ -f share/icons/hicolor/${i}/apps/opera-browser.png ]] then minstallfile share/icons/hicolor/${i}/apps/opera-browser.png /usr/share/icons/hicolor/${i}/apps || die fi minstalldir /usr/share/icons/hicolor/${i}/mimetypes || die if [[ -f share/icons/hicolor/${i}/mimetypes/opera-extension.png ]] then minstallfile share/icons/hicolor/${i}/mimetypes/opera-extension.png /usr/share/icons/hicolor/${i}/mimetypes || die fi done # install a symlink /usr/bin/opera minstalldir /usr/bin || die mlink /opt/opera/bin/opera /usr/bin/opera || die for i in opera-browser do # fix exec pathes sed -i -e 's:@@{_\{,1\}SUFFIX}::g' -e 's:@@{PREFIX}:/usr:g' share/applications/${i}.desktop || die # install desktop icons minstallxdg --file share/applications/${i}.desktop || die done # cleanup if [[ ${ENABLE_KDE4} -eq 1 ]] then mdelete /opt/opera/lib/opera/liboperakde4.so || die fi mdelete /opt/opera/lib/opera/liboperagtk2.so || die if [[ ${ENABLE_GTK3} -eq 1 ]] then mdelete /opt/opera/lib/opera/liboperagtk3.so || die fi } if [[ ${ENABLE_KDE4} -eq 1 ]] then src_install_opera-kde4() { cd ${SRCDIR} minstalldir /opt/opera/lib/opera || die minstallexec lib/opera/liboperakde4.so /opt/opera/lib/opera/ || die } fi src_install_opera-gtk2() { cd ${SRCDIR} minstalldir /opt/opera/lib/opera || die minstallexec lib/opera/liboperagtk2.so /opt/opera/lib/opera/ || die } if [[ ${ENABLE_GTK3} -eq 1 ]] then src_install_opera-gtk3() { cd ${SRCDIR} minstalldir /opt/opera/lib/opera || die minstallexec lib/opera/liboperagtk3.so /opt/opera/lib/opera/ || die } fi postinstall_opera() { if [[ ${ENABLE_KDE4} -ne 1 ]] then if [[ ! -z $(magequery -n opera-kde4) ]] then echo "Opera was packaged without KDE4 support but an old KDE4 package was found." echo "Please uninstall 'net-www/opera-kde4' after this installation." fi fi if [[ ${ENABLE_GTK3} -ne 1 ]] then if [[ ! -z $(magequery -n opera-gtk3) ]] then echo "Opera was packaged without GTK3 support but an old GTK3 package was found." echo "Please uninstall 'net-www/opera-gtk3' after this installation." fi fi }