diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | PKGBUILD | 104 | ||||
-rw-r--r-- | cros-container-guest-tools.install | 77 |
3 files changed, 197 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..0bc56c99f0f9 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,16 @@ +pkgbase = cros-container-guest-tools-git + pkgdesc = Guest tools for the Crostini containers on ChromeOS + pkgver = r39.d6749f0 + pkgrel = 1 + url = https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools + install = cros-container-guest-tools.install + arch = any + license = custom + optdepends = xdg-utils: for setting default-web-browser to ChromeOS host via garcon bridge + optdepends = xorg-apps: for XWayland functionality + optdepends = wayland: for Wayland functionality + source = git+https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools + sha1sums = SKIP + +pkgname = cros-container-guest-tools-git + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..bb4152fc88a0 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,104 @@ +_pkgname=cros-container-guest-tools +pkgname=${_pkgname}-git +pkgver=r39.d6749f0 +pkgrel=1 +pkgdesc="Guest tools for the Crostini containers on ChromeOS" +arch=('any') +license=('custom') +depends=('') +optdepends=( + 'xdg-utils: for setting default-web-browser to ChromeOS host via garcon bridge' + 'xorg-apps: for XWayland functionality' + 'wayland: for Wayland functionality' +) +install=cros-container-guest-tools.install +url="https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools" +source=("git+${url}") +sha1sums=('SKIP') + +pkgver() { + cd ${srcdir}/${_pkgname} + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +package() { + + # License + install -m644 -D ${srcdir}/${_pkgname}/LICENSE \ + ${pkgdir}/usr/share/licenses/cros-container-guest-tools/LICENSE + + ### cros-adapta -> included into cros-container-guest-tools.install + +# After https://bugs.archlinux.org/task/58701 is fixed, will be done in PKGBUILD +# +# mkdir -p ${pkgdir}/usr/share/themes +# ln -sf /opt/google/cros-containers/cros-adapta \ +# ${pkgdir}/usr/share/themes/CrosAdapta + + ### cros-apt-config -> not applicable + + ### cros-garcon + + install -m755 -D ${srcdir}/${_pkgname}/cros-garcon/garcon-url-handler \ + ${pkgdir}/usr/bin/garcon-url-handler + install -m644 -D ${srcdir}/${_pkgname}/cros-garcon/garcon_host_browser.desktop \ + ${pkgdir}/usr/share/applications/garcon_host_browser.desktop + install -m644 -D ${srcdir}/${_pkgname}/cros-garcon/cros-garcon.service \ + ${pkgdir}/usr/lib/systemd/user/cros-garcon.service + install -m644 -D ${srcdir}/${_pkgname}/cros-garcon/cros-garcon-override.conf \ + ${pkgdir}/usr/lib/systemd/user/cros-garcon.service.d/cros-garcon-override.conf + + ### cros-guest-tools -> not applicable + + ### cros-sftp + + install -m644 -D ${srcdir}/${_pkgname}/cros-sftp/cros-sftp.service \ + ${pkgdir}/usr/lib/systemd/system/cros-sftp.service + + ### cros-sommelier + + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelierrc \ + ${pkgdir}/etc/sommelierrc + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelier.sh \ + ${pkgdir}/etc/profile.d/sommelier.sh + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelier@.service \ + ${pkgdir}/usr/lib/systemd/user/sommelier@.service + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelier-x@.service \ + ${pkgdir}/usr/lib/systemd/user/sommelier-x@.service + + ### cros-sommelier-config + + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier-config/cros-sommelier-override.conf \ + ${pkgdir}/usr/lib/systemd/user/sommelier@0.service.d/cros-sommelier-override.conf + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier-config/cros-sommelier-x-override.conf \ + ${pkgdir}/usr/lib/systemd/user/sommelier-x@0.service.d/cros-sommelier-x-override.conf + + ### cros-sudo-config + + install -m440 -D ${srcdir}/${_pkgname}/cros-sudo-config/10-cros-nopasswd \ + ${pkgdir}/etc/sudoers.d/10-cros-nopasswd + # replace sudo group with wheel group for no password sudo access + sed -i 's/%sudo/%wheel/1' ${pkgdir}/etc/sudoers.d/10-cros-nopasswd + + ### cros-systemd-overrides -> included into cros-container-guest-tools.install + + ### cross-ui-config + + install -m644 -D ${srcdir}/${_pkgname}/cros-ui-config/gtkrc \ + ${pkgdir}/etc/gtk-2.0/gtkrc + install -m644 -D ${srcdir}/${_pkgname}/cros-ui-config/settings.ini \ + ${pkgdir}/etc/gtk-3.0/settings.ini + install -m644 -D ${srcdir}/${_pkgname}/cros-ui-config/01-cros-ui \ + ${pkgdir}/etc/dconf/db/local.d/01-cros-ui + install -m644 -D ${srcdir}/${_pkgname}/cros-ui-config/user \ + ${pkgdir}/etc/dconf/profile/user + + ### cros-unattended-upgrades -> not applicable + + ### cros-wayland + + install -m644 -D ${srcdir}/${_pkgname}/cros-wayland/10-cros-virtwl.rules \ + ${pkgdir}/usr/lib/udev/rules.d/10-cros-virtwl.rules + install -m644 -D ${srcdir}/${_pkgname}/cros-wayland/skel.weston.ini \ + ${pkgdir}/etc/skel/.config/weston.ini +} diff --git a/cros-container-guest-tools.install b/cros-container-guest-tools.install new file mode 100644 index 000000000000..eb71cb7c1700 --- /dev/null +++ b/cros-container-guest-tools.install @@ -0,0 +1,77 @@ +post_install() { + + # update dconf after GTK+ theme installed + if hash dconf 2>/dev/null; then + dconf update + fi + + # mask systemd-journald-audit.socket, which failes inside unprivileged container + systemctl mask systemd-journald-audit.socket + + # workaround for https://bugs.archlinux.org/task/58701 + ln -sf /opt/google/cros-containers/cros-adapta /usr/share/themes/CrosAdapta + + # set default browser to the garcon_host_browser handler + if hash xdg-settings; then + xdg-settings set default-web-browser garcon_host_browser.desktop + fi + +cat << EOF + + (!) This package is permanently work in progress until Crostini + considered to be stable by Google! + + Developed and tested on Samsung Chromebook Plus, should work on + other Chromebooks with Crostini enabled. + + Please perform following manual steps after installation: + + 1. Create /usr/share/themes/CrosAdapta symlink pointing to /opt/google/cros-containers/cros-adapta: + + # ln -sf /opt/google/cros-containers/cros-adapta ${pkgdir}/usr/share/themes/CrosAdapta + + This will be done automatically after https://bugs.archlinux.org/task/58701 is fixed. + + 2. Enable sommelier@.service and sommelier-x@.service user services: + + # systemctl --user enable sommelier@0 + # systemctl --user enable sommelier-x@0 + + And start them: + + # systemctl --user start sommelier@0 + # systemctl --user start sommelier-x@0 + + (!) XWayland and sommelier-x aren't yet work on Chromebook Plus (as per 05/22). + + 3. Enable and start cros-sftp.service for SFTP access to the container file system: + + # systemctl enable cros-sftp + # systemctl start cros-sftp + + (!) Not yet working on Chromebook Plus, extra steps while starting container + required probably. + +EOF + +} + +post_remove() { + + # update dconf after GTK+ theme installed + if hash dconf 2>/dev/null; then + dconf update 2>/dev/null + fi + + # unmask systemd-journald-audit.socket + systemctl unmask systemd-journald-audit.socket + + # workaround for https://bugs.archlinux.org/task/58701 + rm /usr/share/themes/CrosAdapta + +cat << EOF + + Please remove /usr/share/themes/CrosAdapta symlink manually! + +EOF +} |