summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD33
-rw-r--r--cros-container-guest-tools.install50
-rw-r--r--cros-garcon-conditions.conf2
-rw-r--r--cros-sftp-conditions.conf3
5 files changed, 52 insertions, 40 deletions
diff --git a/.SRCINFO b/.SRCINFO
index eac84e98fb10..8fedbcdec266 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 532ecb517073..1fc815c3e8fa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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