diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | PKGBUILD | 80 | ||||
-rw-r--r-- | chromiumos-ui.install | 22 | ||||
-rw-r--r-- | chromiumos-ui.sh | 84 |
4 files changed, 127 insertions, 75 deletions
@@ -1,28 +1,32 @@ pkgbase = chromiumos-ui-bin pkgdesc = Chromium OS user interface (prebuilt binary) - pkgver = LKGR - pkgrel = 3 + pkgver = 325086 + pkgrel = 1 url = http://www.chromium.org/chromium-os install = chromiumos-ui.install arch = x86_64 license = BSD - depends = chromium + depends = google-chrome depends = libudev.so.0 + depends = jq optdepends = chromiumos-ui-tts: ChromeVox text-to-speech, with accessibility support + optdepends = chromium-pepper-flash: Flash support provides = chromiumos-ui conflicts = chromiumos-ui options = !strip backup = etc/chromiumos-ui/default - source = chrome-linux-252451.zip::http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS/252451/chrome-linux.zip + source = chrome-linux-325086.zip::http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS_Full/325086/chrome-linux.zip + source = https://chromium.googlesource.com/chromium/src/+/lkgr/LICENSE.chromium_os source = chromiumos-ui.default source = chromiumos-ui.desktop source = chromiumos-ui.sh source = chromiumos-ui-lastuser.desktop source = chromiumos-ui-login.desktop - md5sums = SKIP + md5sums = ffd1aac3e73fcdd05b8532289cba2140 + md5sums = fbe99aed473ffb9dc08ec871b1403314 md5sums = 001a472621cace5c2e140df95c632af1 md5sums = 0aa55e3947e85e3774bba3da274e09f8 - md5sums = 806bd9b2c2f8d80ddf74c49f8a778853 + md5sums = 9140be97f48a9d0147f605930b3d2e2e md5sums = bfd688d7d6e340df8e9296c8c40eb3a5 md5sums = 3c1772e39cdd805fe3052e4938371afe @@ -1,67 +1,69 @@ # Maintainer: Alain Kalker <a.c.kalker@gmail.com> _pkgbase=chromiumos-ui pkgname=$_pkgbase-bin -pkgver=LKGR -_pkgver=$(curl -s http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS/LAST_CHANGE) -pkgrel=3 +pkgver=325086 +# Uncomment line below and comment line below that to build latest version +#_pkgver=$(curl -s http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS_Full/LAST_CHANGE) +_pkgver=325086 +pkgrel=1 pkgdesc="Chromium OS user interface (prebuilt binary)" arch=('x86_64') url="http://www.chromium.org/chromium-os" license=('BSD') -depends=('chromium' 'libudev.so.0') # for chrome-sandbox -optdepends=('chromiumos-ui-tts: ChromeVox text-to-speech, with accessibility support') +depends=('google-chrome' 'libudev.so.0' 'jq') +optdepends=('chromiumos-ui-tts: ChromeVox text-to-speech, with accessibility support' + 'chromium-pepper-flash: Flash support') provides=("$_pkgbase") conflicts=("$_pkgbase") backup=("etc/$_pkgbase/default") options=('!strip') install=$_pkgbase.install _srcname=chrome-linux -source=($_srcname-$_pkgver.zip::http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS/${_pkgver}/$_srcname.zip - #https://chromium.googlesource.com/chromium/src/+/lkgr/LICENSE.chromium_os - $_pkgbase.default - $_pkgbase.desktop - $_pkgbase.sh - $_pkgbase-lastuser.desktop - $_pkgbase-login.desktop) -noextract=() -md5sums=('SKIP' -#md5sums=('d5cc7c62fb8f8b4944685f220e252bbb' - #'c1f986c9d625a1d64d2f6f2130ff7b51' +source=($_srcname-$_pkgver.zip::http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_ChromiumOS_Full/${_pkgver}/$_srcname.zip + https://chromium.googlesource.com/chromium/src/+/lkgr/LICENSE.chromium_os + $_pkgbase.default + $_pkgbase.desktop + $_pkgbase.sh + $_pkgbase-lastuser.desktop + $_pkgbase-login.desktop) +md5sums=('ffd1aac3e73fcdd05b8532289cba2140' + 'fbe99aed473ffb9dc08ec871b1403314' '001a472621cace5c2e140df95c632af1' '0aa55e3947e85e3774bba3da274e09f8' - '806bd9b2c2f8d80ddf74c49f8a778853' + '9140be97f48a9d0147f605930b3d2e2e' 'bfd688d7d6e340df8e9296c8c40eb3a5' '3c1772e39cdd805fe3052e4938371afe') +noextract=() pkgver() { - echo $_pkgver + echo $_pkgver } package() { - cd "$srcdir/$_srcname" + cd "$srcdir/$_srcname" - install -d "$pkgdir/usr/lib/$_pkgbase" - cp -a * "$pkgdir/usr/lib/$_pkgbase/" + install -d "$pkgdir/usr/lib/$_pkgbase" + cp -a * "$pkgdir/usr/lib/$_pkgbase/" - # Fix permissions - find "$pkgdir/usr/lib/$_pkgbase" -type d -exec chmod 755 {} ';' - find "$pkgdir/usr/lib/$_pkgbase" -type f -exec chmod 644 {} ';' - chmod 755 "$pkgdir/usr/lib/$_pkgbase"/chrome{,-*} - chmod 755 "$pkgdir/usr/lib/$_pkgbase"/nacl* - chmod 755 "$pkgdir/usr/lib/$_pkgbase"/xdg-settings - chmod 755 "$pkgdir/usr/lib/$_pkgbase"/xdg-mime + # Fix permissions + find "$pkgdir/usr/lib/$_pkgbase" -type d -exec chmod 755 {} ';' + find "$pkgdir/usr/lib/$_pkgbase" -type f -exec chmod 644 {} ';' + chmod 755 "$pkgdir/usr/lib/$_pkgbase"/chrome{,-*} + chmod 755 "$pkgdir/usr/lib/$_pkgbase"/nacl* + chmod 755 "$pkgdir/usr/lib/$_pkgbase"/xdg-settings + chmod 755 "$pkgdir/usr/lib/$_pkgbase"/xdg-mime - # Allow users to override command-line options - install -Dm644 "$srcdir/$_pkgbase.default" "$pkgdir/etc/$_pkgbase/default" + # Allow users to override command-line options + install -Dm644 "$srcdir/$_pkgbase.default" "$pkgdir/etc/$_pkgbase/default" - install -D "$srcdir/$_pkgbase.sh" \ - "$pkgdir/usr/bin/$_pkgbase" - install -Dm644 "$srcdir/$_pkgbase.desktop" \ - "$pkgdir/usr/share/applications/$_pkgbase.desktop" - install -Dm644 "$srcdir/$_pkgbase-login.desktop" \ - "$pkgdir/usr/share/applications/$_pkgbase-login.desktop" - install -Dm644 "$srcdir/$_pkgbase-lastuser.desktop" \ - "$pkgdir/usr/share/applications/$_pkgbase-lastuser.desktop" + install -D "$srcdir/$_pkgbase.sh" \ + "$pkgdir/usr/bin/$_pkgbase" + install -Dm644 "$srcdir/$_pkgbase.desktop" \ + "$pkgdir/usr/share/applications/$_pkgbase.desktop" + install -Dm644 "$srcdir/$_pkgbase-login.desktop" \ + "$pkgdir/usr/share/applications/$_pkgbase-login.desktop" + install -Dm644 "$srcdir/$_pkgbase-lastuser.desktop" \ + "$pkgdir/usr/share/applications/$_pkgbase-lastuser.desktop" - #install -Dm644 "$srcdir/LICENSE.chromium_os" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.chromium_os" + install -Dm644 "$srcdir/LICENSE.chromium_os" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.chromium_os" } diff --git a/chromiumos-ui.install b/chromiumos-ui.install index 416311ff0eb1..fb961a8022a1 100644 --- a/chromiumos-ui.install +++ b/chromiumos-ui.install @@ -1,7 +1,20 @@ post_install() { - # chrome-sandbox isn't included in the prebuilt package, so symlink - # it from an existing Chromium installation - ln -sf /usr/lib/chromium/chrome-sandbox /usr/lib/chromiumos-ui/ + update-desktop-database -q + # chrome-sandbox and icudtl.dat aren't included in the prebuilt package, + # so symlink them from an existing Chrome installation + ln -sf /opt/google/chrome/{chrome-sandbox,icudtl.dat} /usr/lib/chromiumos-ui/ + cat <<MSG +>>> To use some of the features of the Chromium OS UI, Google API keys + are required. These keys cannot be redistributed and must be created + by the user. + For help on generating these keys, see: + https://www.chromium.org/developers/how-tos/api-keys + To use the Google API keys with Chromium OS UI, create a file named + .googleapikeys + in your home directory. + For information about the format of this file, see: + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/building-chromium-browser/chrome-api-keys-in-the-chroot +MSG } post_upgrade() { @@ -9,5 +22,6 @@ post_upgrade() { } post_remove() { - rm -f /usr/lib/chromiumos-ui/chrome-sandbox + update-desktop-database -q + rm -f /usr/lib/chromiumos-ui/{chrome-sandbox,icudtl.dat} } diff --git a/chromiumos-ui.sh b/chromiumos-ui.sh index 5b27d18a0394..5467bb6cd067 100644 --- a/chromiumos-ui.sh +++ b/chromiumos-ui.sh @@ -1,11 +1,29 @@ #!/bin/bash USER_DATA_DIR=$HOME/.config/chromiumos-ui +FLASH_DIR=/usr/lib/PepperFlash +FLASH_LIB=$FLASH_DIR/libpepflashplayer.so +FLASH_MANIFEST=$FLASH_DIR/manifest.json +GOOGLE_KEYFILE=$HOME/.googleapikeys +GOOGLE_KEYNAMES=(google_{api_key,default_client_{id,secret}}) + +json2vars() { + local IFS=, + jq -r "{$*}"' | to_entries | map("\(.key)=\(.value | @sh)") | .[]' +} + +keys2json() { + echo '{' + sed -e "s/\"/\\\\\"/g;s/'/\"/g" | \ + tr "\n" " " | \ + sed -e "s/,[[:space:]]*$//" + echo '}' +} # Allow users to override command-line options # Based on Gentoo's chromium package (and by extension, Debian's) if [[ -f /etc/chromiumos-ui/default ]]; then - . /etc/chromiumos-ui/default + . /etc/chromiumos-ui/default fi # Prefer user defined CHROMIUM_USER_FLAGS (from env) over system @@ -14,35 +32,49 @@ CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-$CHROMIUM_FLAGS} # Use separate profile for Google logins if [[ "$1" == "--login" ]]; then - shift - use_login_manager=yes - use_login_profile=yes + shift + use_login_manager=yes + use_login_profile=yes fi # Auto-login last user if requested if [[ "$1" == "--lastuser" ]]; then - shift - # Check if user has ever logged into Google account before - if [[ -d "$USER_DATA_DIR/user" ]]; then - # Get last logged-in user - user=$(sed -nr \ - -e 's/^\s*"LastLoggedInRegularUser": "([^"]*)",/\1/p' \ - "$USER_DATA_DIR/Local State") - # Check for stub user - if [[ "$user" == "stub-user@example.com" ]]; then - # Fallback to using the login manager - user= - else - # Auto login user - use_login_manager= - fi - fi + shift + # Check if user has ever logged into Google account before + if [[ -d "$USER_DATA_DIR/user" ]]; then + # Get last logged-in user + user=$(sed -nr \ + -e 's/^\s*"LastLoggedInRegularUser": "([^"]*)",/\1/p' \ + "$USER_DATA_DIR/Local State") + # Check for stub user + if [[ "$user" == "stub-user@example.com" ]]; then + # Fallback to using the login manager + user= + else + # Auto login user + use_login_manager= + fi + fi +fi + +# Auto-detect Flash player support +if [ -f $FLASH_LIB ]; then + eval $(json2vars version < $FLASH_MANIFEST) + CHROMIUM_FLAGS="$CHROMIUM_FLAGS --ppapi-flash-path=$FLASH_LIB --ppapi-flash-version=$version" +fi + +# Use Google API keys if available +if [ -f $GOOGLE_KEYFILE ]; then + eval $(keys2json < $GOOGLE_KEYFILE | json2vars ${GOOGLE_KEYNAMES[@]}) + for var in ${GOOGLE_KEYNAMES[@]}; do + eval export ${var^^}="\$$var" + done fi exec /usr/lib/chromiumos-ui/chrome \ - $CHROMIUM_FLAGS \ - --user-data-dir=$USER_DATA_DIR \ - ${use_login_profile:+--login-profile=user} \ - ${use_login_manager:+--login-manager} \ - ${user:+--login-user=}$user \ - "$@" + $CHROMIUM_FLAGS \ + --user-data-dir=$USER_DATA_DIR \ + ${use_login_profile:+--login-profile=user} \ + ${use_login_manager:+--login-manager} \ + ${user:+--login-user=}$user \ + "$@" |