summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO16
-rw-r--r--PKGBUILD104
-rw-r--r--cros-container-guest-tools.install77
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
+}