common-chromium-browser.sh 3.85 KB
Newer Older
1 2 3 4 5 6 7 8 9
#!/bin/sh

# common functions for repack chromium based browsers
# used BUILDROOT, SPEC, PRODUCT, PRODUCTCUR and PRODUCTDIR variables
# example
# PRODUCT=mybrowser
# PRODUCTCUR=mybrowser-nightly
# PRODUCTDIR=/opt/my/browser

10 11
. $(dirname $0)/common.sh

12 13 14 15
set_alt_alternatives()
{
    local priority="$1"
    # needed alternatives
Vitaly Lipatov's avatar
Vitaly Lipatov committed
16
    subst '1iProvides: webclient' $SPEC
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

    subst "s|%files|%files\n/etc/alternatives/packages.d/$PRODUCT|" $SPEC
    mkdir -p $BUILDROOT/etc/alternatives/packages.d/
    cat <<EOF >$BUILDROOT/etc/alternatives/packages.d/$PRODUCT
/usr/bin/xbrowser	/usr/bin/$PRODUCT	$priority
/usr/bin/x-www-browser	/usr/bin/$PRODUCT	$priority
EOF
}


copy_icons_to_share()
{
    local iconname=$PRODUCT

    # try get icon name from desktopfile
    local desktopfile=$BUILDROOT/usr/share/applications/$PRODUCT.desktop
    [ -r $desktopfile ] || desktopfile=$BUILDROOT/usr/share/applications/$PRODUCTCUR.desktop
    if [ -r $desktopfile ] ; then
        iconname="$(cat $desktopfile | grep "^Icon" | head -n1 | sed -e 's|Icon=||')"
    fi

    for i in 16 24 32 48 64 128 256 ; do
        [ -r $BUILDROOT/$PRODUCTDIR/product_logo_$i*.png ] || continue
        mkdir -p $BUILDROOT/usr/share/icons/hicolor/${i}x${i}/apps/
        cp $BUILDROOT/$PRODUCTDIR/product_logo_$i*.png $BUILDROOT/usr/share/icons/hicolor/${i}x${i}/apps/$iconname.png
    done

    subst "s|%files|%files\n/usr/share/icons/hicolor/*x*/apps/$iconname.png|" $SPEC
}


cleanup()
{
    # remove cron update
Vitaly Lipatov's avatar
Vitaly Lipatov committed
51 52
    remove_file /etc/cron.daily/$PRODUCTCUR
    remove_file /etc/cron.daily/$PRODUCT
53 54

    # remove unsupported file
Vitaly Lipatov's avatar
Vitaly Lipatov committed
55
    remove_file /usr/share/menu/$PRODUCT.menu
56
    remove_file /usr/share/menu/$PRODUCTCUR.menu
57 58
}

59
# TODO: remove in favour of add_libs_requires
60
add_chromium_deps()
61
{
62
    add_unirequires "file grep sed which xdg-utils"
63 64
    add_unirequires "libpthread.so.0 libstdc++.so.6"
    add_unirequires "libatk-bridge-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libatk-1.0.so.0 libatspi.so.0"
65
    add_unirequires "libasound.so.2 libcairo.so.2 libcups.so.2 libdbus-1.so.3 libdrm.so.2 libexpat.so.1 libgbm.so.1 libgdk_pixbuf-2.0.so.0"
66
    add_unirequires "libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpangoxft-1.0.so.0"
67 68
    add_unirequires "libgio-2.0.so.0 libgdk-3.so.0 libgtk-3.so.0"
    add_unirequires "libnspr4.so libplc4.so libplds4.so libfreebl3.so libfreeblpriv3.so libnss3.so libsmime3.so libsoftokn3.so libssl3.so libsecret-1.so.0"
69 70 71 72 73
    add_unirequires "libX11.so.6 libxcb.so.1 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXtst.so.6"

    #[ "$(epm print info -s)" = "alt" ] || return
    #add_requires at-spi2-atk file GConf glib2 grep libatk libat-spi2-core libalsa libcairo libcups libdbus libdrm libexpat libgbm libgdk-pixbuf libgio libgtk+3 libnspr libnss libpango
    #add_requires libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender libXtst sed which xdg-utils xprop libsecret
74 75 76
}


77
# FIXME: too many heruistic due https://bugzilla.altlinux.org/42189
78 79
add_bin_commands()
{
80
    mkdir -p $BUILDROOT/usr/bin/
81

82 83 84 85 86 87 88 89 90 91 92 93
    if [ -L $BUILDROOT/usr/bin/$PRODUCTCUR ] ; then
        rm -fv $BUILDROOT/usr/bin/$PRODUCTCUR
    else
        subst "s|%files|%files\n/usr/bin/$PRODUCTCUR|" $SPEC
    fi

    if [ -r $BUILDROOT$PRODUCTDIR/$PRODUCTCUR ] ; then
        ln -rs $BUILDROOT$PRODUCTDIR/$PRODUCTCUR $BUILDROOT/usr/bin/$PRODUCTCUR
    else
        ln -rs $BUILDROOT$PRODUCTDIR/$PRODUCT $BUILDROOT/usr/bin/$PRODUCTCUR
    fi

94
    # fix links in $PRODUCTDIR (may be broken due https://bugzilla.altlinux.org/42189)
95 96 97 98 99 100
    if [ ! -r $BUILDROOT$(readlink $BUILDROOT$PRODUCTDIR/$PRODUCT) ] ; then
        rm -fv $BUILDROOT$PRODUCTDIR/$PRODUCT
        ln -s $PRODUCTCUR $BUILDROOT$PRODUCTDIR/$PRODUCT
    fi

    # short command for run
101
    add_bin_link_command $PRODUCT $PRODUCTCUR
102
}
103