diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 33 | ||||
-rw-r--r-- | cros-container-guest-tools.install | 50 | ||||
-rw-r--r-- | cros-garcon-conditions.conf | 2 | ||||
-rw-r--r-- | cros-sftp-conditions.conf | 3 |
5 files changed, 52 insertions, 40 deletions
@@ -10,7 +10,11 @@ pkgbase = cros-container-guest-tools-git optdepends = xorg-apps: for XWayland functionality optdepends = wayland: for Wayland functionality source = git+https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools + source = cros-sftp-conditions.conf + source = cros-garcon-conditions.conf sha1sums = SKIP + sha1sums = 3a2c55ecb22349265f26cdd021a436f5e0353c3d + sha1sums = 6e42ce0d2c63593e7ec4765eb56fb17bc4dc3ada pkgname = cros-container-guest-tools-git @@ -1,7 +1,7 @@ _pkgname=cros-container-guest-tools pkgname=${_pkgname}-git pkgver=r44.45e9b92 -pkgrel=1 +pkgrel=2 pkgdesc="Guest tools for the Crostini containers on ChromeOS" arch=('any') license=('custom') @@ -13,8 +13,10 @@ optdepends=( ) install=cros-container-guest-tools.install url="https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools" -source=("git+${url}") -sha1sums=('SKIP') +source=("git+${url}" 'cros-sftp-conditions.conf' 'cros-garcon-conditions.conf') +sha1sums=('SKIP' + '3a2c55ecb22349265f26cdd021a436f5e0353c3d' + '6e42ce0d2c63593e7ec4765eb56fb17bc4dc3ada') pkgver() { cd ${srcdir}/${_pkgname} @@ -27,9 +29,13 @@ package() { install -m644 -D ${srcdir}/${_pkgname}/LICENSE \ ${pkgdir}/usr/share/licenses/cros-container-guest-tools/LICENSE + # Create required folder structure for systemd units + mkdir -p ${pkgdir}/usr/lib/systemd/user/default.target.wants + mkdir -p ${pkgdir}/usr/lib/systemd/system/multi-user.target.wants + ### cros-adapta -> included into cros-container-guest-tools.install -# After https://bugs.archlinux.org/task/58701 is fixed, will be done in PKGBUILD +# Uncomment after https://bugs.archlinux.org/task/58701 is fixed # # mkdir -p ${pkgdir}/usr/share/themes # ln -sf /opt/google/cros-containers/cros-adapta \ @@ -47,6 +53,10 @@ package() { ${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 + install -m644 -D ${srcdir}/cros-garcon-conditions.conf \ + ${pkgdir}/usr/lib/systemd/user/cros-garcon.service.d/cros-garcon-conditions.conf + ln -sf ../cros-garcon.service \ + ${pkgdir}/usr/lib/systemd/user/default.target.wants/cros-garcon.service ### cros-guest-tools -> not applicable @@ -54,9 +64,20 @@ package() { install -m644 -D ${srcdir}/${_pkgname}/cros-sftp/cros-sftp.service \ ${pkgdir}/usr/lib/systemd/system/cros-sftp.service + ln -sf ../cros-sftp.service \ + ${pkgdir}/usr/lib/systemd/system/multi-user.target.wants/cros-sftp.service + + # add drop-in for cros-sftp to check if required ssh artifacts were bind-mounted before starting + install -m644 -D ${srcdir}/cros-sftp-conditions.conf \ + ${pkgdir}/usr/lib/systemd/system/cros-sftp.service.d/cros-sftp-conditions.conf ### cros-sommelier +# Uncomment after https://bugs.archlinux.org/task/58701 is fixed + +# ln -sf /opt/google/cros-containers/bin/sommelier \ +# ${pkgdir}/usr/bin/sommelier + install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelierrc \ ${pkgdir}/etc/sommelierrc install -m644 -D ${srcdir}/${_pkgname}/cros-sommelier/sommelier.sh \ @@ -65,6 +86,10 @@ package() { ${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 + ln -sf ../sommelier@.service \ + ${pkgdir}/usr/lib/systemd/user/default.target.wants/sommelier@0.service + ln -sf ../sommelier-x@.service \ + ${pkgdir}/usr/lib/systemd/user/default.target.wants/sommelier-x@0.service ### cros-sommelier-config diff --git a/cros-container-guest-tools.install b/cros-container-guest-tools.install index eb71cb7c1700..ae81511055c0 100644 --- a/cros-container-guest-tools.install +++ b/cros-container-guest-tools.install @@ -8,14 +8,19 @@ post_install() { # 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 + # workaround for https://bugs.archlinux.org/task/58701, remove after fix + ln -sf /opt/google/cros-containers/cros-adapta /usr/share/themes/CrosAdapta + ln -sf /opt/google/cros-containers/bin/sommelier /usr/bin/sommelier # 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 + # TODO(crbug.com/835959): Remove this once we fix mesa. + mkdir -p /usr/lib64/dri + ln -sf /opt/google/cros-containers/lib/swrast_dri.so /usr/lib64/dri/swrast_dri.so + cat << EOF (!) This package is permanently work in progress until Crostini @@ -24,34 +29,6 @@ cat << EOF 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 } @@ -66,12 +43,13 @@ post_remove() { # unmask systemd-journald-audit.socket systemctl unmask systemd-journald-audit.socket - # workaround for https://bugs.archlinux.org/task/58701 - rm /usr/share/themes/CrosAdapta + # workaround for https://bugs.archlinux.org/task/58701, remove after fix + rm /usr/share/themes/CrosAdapta + rm /usr/bin/sommelier -cat << EOF - - Please remove /usr/share/themes/CrosAdapta symlink manually! + # TODO(crbug.com/835959): Remove this once we fix mesa. + rm /usr/lib64/dri/swrast_dri.so + rmdir /usr/lib64/dri 2>/dev/null + rmdir /usr/lib64 2>/dev/null -EOF } diff --git a/cros-garcon-conditions.conf b/cros-garcon-conditions.conf new file mode 100644 index 000000000000..9f119567907d --- /dev/null +++ b/cros-garcon-conditions.conf @@ -0,0 +1,2 @@ +[Unit] +ConditionPathExists=/dev/.container_token diff --git a/cros-sftp-conditions.conf b/cros-sftp-conditions.conf new file mode 100644 index 000000000000..3fe05961e6ea --- /dev/null +++ b/cros-sftp-conditions.conf @@ -0,0 +1,3 @@ +[Unit] +ConditionPathExists=/dev/.ssh/ssh_host_key +ConditionPathExists=/dev/.ssh/ssh_authorized_keys |