# $Id$ PNAME="opera" PVER="11.52" PBUILD="r1" PCATEGORIE="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/gstreamer-0.10.25 >= media-libs/gst-plugins-base-0.10.25 >= sys-apps/util-linux-2.16 >= sys-libs/zlib-1.2.3 >= virtual/opengl" 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/kdelibs4-4.6" 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" SDEPEND="${COMMON_DEPEND} ${KDE4_DEPEND} ${GTK2_DEPEND} >= sys-apps/sed-4" # .6 uses newer glibc and qt versions BUILD="1100" # ftp://opera.ftp.fu-berlin.de/linux SRCFILE_x86="${PNAME}-${PVER}-${BUILD}.i386.linux.tar.bz2" SRCFILE_x86_64="${PNAME}-${PVER}-${BUILD}.x86_64.linux.tar.bz2" # decide between x86 and x86_64 arch SRCFILE="$(eval echo \$SRCFILE_${ARCH/i*86/x86})" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}-${BUILD}.${ARCH/i*86/i386}.linux" SPLIT_PACKAGES="opera opera-kde4 opera-gtk2" sminclude mtools xdg SRC_URI=( 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}" } split_info_opera-kde4() { DESCRIPTION="Opera UI integration for KDE4." DEPEND="== net-www/opera-${PVER} ${KDE4_DEPEND}" } split_info_opera-gtk2() { DESCRIPTION="Opera UI integration for GTK2 and GNOME." DEPEND="== net-www/opera-${PVER} ${GTK2_DEPEND}" } 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 rm ${BINDIR}/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/bin/opera-widget-manager || die sed -i "s:${BINDIR}::g" ${BINDIR}/opt/opera/share/applications/opera-widget-manager.desktop || die sed -i "s:${BINDIR}::g" ${BINDIR}/opt/opera/share/applications/opera-browser.desktop || die sed -i "s:${BINDIR}::g" ${BINDIR}/opt/opera/share/applications/opera-widget-installer.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 0755 /opt/opera/bin/opera-widget-manager || die mchmod 0644 /opt/opera/share/applications/opera-widget-manager.desktop || die mchmod 0644 /opt/opera/share/applications/opera-browser.desktop || die mchmod 0644 /opt/opera/share/applications/opera-widget-installer.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 if [[ -f share/icons/hicolor/${i}/apps/opera-widget-manager.png ]] then minstallfile share/icons/hicolor/${i}/apps/opera-widget-manager.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-widget.png ]] then minstallfile share/icons/hicolor/${i}/mimetypes/opera-widget.png /usr/share/icons/hicolor/${i}/mimetypes || die fi if [[ -f share/icons/hicolor/${i}/mimetypes/opera-unite-application.png ]] then minstallfile share/icons/hicolor/${i}/mimetypes/opera-unite-application.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 mlink /opt/opera/bin/opera-widget-manager /usr/bin/opera-widget-manager || die # install desktop icons symlinks minstallxdg /opt/opera/share/applications/opera-widget-manager.desktop || die minstallxdg /opt/opera/share/applications/opera-browser.desktop || die minstallxdg /opt/opera/share/applications/opera-widget-installer.desktop || die # cleanup rm ${BINDIR}/opt/opera/lib/opera/liboperakde4.so || die rm ${BINDIR}/opt/opera/lib/opera/liboperagtk.so || die } src_install_opera-kde4() { cd ${SRCDIR} minstalldir /opt/opera/lib/opera || die minstallexec lib/opera/liboperakde4.so /opt/opera/lib/opera/ || die } src_install_opera-gtk2() { cd ${SRCDIR} minstalldir /opt/opera/lib/opera || die minstallexec lib/opera/liboperagtk.so /opt/opera/lib/opera/ || die }