mirror of
https://aur.archlinux.org/snapd.git
synced 2025-11-27 20:00:30 +08:00
Upstream release. Cherry pick patch from https://github.com/canonical/snapd/pull/16131. Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com>
173 lines
5.3 KiB
Bash
173 lines
5.3 KiB
Bash
# Maintainer: aimileus <me at aimileus dot nl>
|
|
# Maintainer: Maciej Borzecki <maciek.borzecki@gmail.com>
|
|
# Contributor: Timothy Redaelli <timothy.redaelli@gmail.com>
|
|
# Contributor: Zygmunt Krynicki <me at zygoon dot pl>
|
|
|
|
pkgname=snapd
|
|
pkgdesc="Service and tools for management of snap packages."
|
|
depends=('squashfs-tools' 'libseccomp' 'libsystemd' 'libcap' 'apparmor')
|
|
optdepends=('bash-completion: bash completion support'
|
|
'xdg-desktop-portal: desktop integration')
|
|
pkgver=2.72
|
|
pkgrel=1
|
|
arch=('x86_64' 'i686' 'armv7h' 'aarch64')
|
|
url="https://github.com/snapcore/snapd"
|
|
license=('GPL3')
|
|
makedepends=('git' 'go' 'go-tools' 'libseccomp' 'libcap' 'systemd' 'xfsprogs' 'python-docutils' 'apparmor' 'autoconf-archive')
|
|
conflicts=('snap-confine')
|
|
options=('!strip' 'emptydirs' '!lto')
|
|
install=snapd.install
|
|
source=(
|
|
"$pkgname-$pkgver.tar.xz::https://github.com/snapcore/${pkgname}/releases/download/${pkgver}/${pkgname}_${pkgver}.vendor.tar.xz"
|
|
"0001-cmd-snap-confine-snap-confine-update-AppArmor-profil.patch"
|
|
)
|
|
|
|
sha256sums=('53d74e663527bae667a254da8a029aa4b0b8f559ca515d214da8dbb29dc6ccc7'
|
|
'3584cdfabde12d1739342bc1bd73705bb5d9d3aed4ab038a478657fd4ede7364')
|
|
|
|
|
|
prepare() {
|
|
cd "$pkgname-$pkgver"
|
|
|
|
for name in "${source[@]}"; do
|
|
if [[ "${name%.patch}" == "$name" ]]; then
|
|
# not a patch
|
|
continue
|
|
fi
|
|
msg2 "applying $name"
|
|
patch -p1 -i "$srcdir/$name"
|
|
done
|
|
}
|
|
|
|
build() {
|
|
cd "$pkgname-$pkgver"
|
|
|
|
unset GO111MODULE
|
|
|
|
export CGO_ENABLED="1"
|
|
export CGO_CFLAGS="${CFLAGS}"
|
|
export CGO_CPPFLAGS="${CPPFLAGS}"
|
|
export CGO_CXXFLAGS="${CXXFLAGS}"
|
|
export CGO_LDFLAGS="${LDFLAGS}"
|
|
|
|
# Generate snapd.defines.mk, this file is included by snapd.mk.
|
|
cat >"$srcdir/snapd.defines.mk" <<__DEFINES__
|
|
# This file is generated by snapd packaging
|
|
# Directory variables.
|
|
prefix = /usr
|
|
bindir = /usr/bin
|
|
sbindir = /usr/sbin
|
|
libexecdir = /usr/lib
|
|
mandir = /usr/share/man
|
|
datadir = /usr/share
|
|
localstatedir = /var
|
|
sharedstatedir = /var/lib
|
|
unitdir = /usr/lib/systemd/system
|
|
builddir = $srcdir/_go_build
|
|
# Build configuration
|
|
with_core_bits = 0
|
|
with_alt_snap_mount_dir = 1
|
|
with_apparmor = 1
|
|
with_testkeys = 0
|
|
EXTRA_GO_BUILD_FLAGS = -trimpath
|
|
EXTRA_GO_LDFLAGS = -w -s
|
|
__DEFINES__
|
|
|
|
./mkversion.sh $pkgver-$pkgrel
|
|
|
|
make -f packaging/snapd.mk \
|
|
SNAPD_DEFINES_DIR="$srcdir"
|
|
|
|
# Generate data files such as real systemd units, dbus service, environment
|
|
# setup helpers out of the available templates
|
|
make -C data \
|
|
BINDIR=/bin \
|
|
LIBEXECDIR=/usr/lib \
|
|
SYSTEMDSYSTEMUNITDIR=/usr/lib/systemd/system \
|
|
SNAP_MOUNT_DIR=/var/lib/snapd/snap \
|
|
SNAPD_ENVIRONMENT_FILE=/etc/default/snapd
|
|
|
|
cd cmd
|
|
autoreconf -i -f
|
|
./configure \
|
|
--prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--localstatedir=/var \
|
|
--libexecdir=/usr/lib/snapd \
|
|
--with-snap-mount-dir=/var/lib/snapd/snap \
|
|
--enable-apparmor \
|
|
--enable-nvidia-biarch \
|
|
--enable-merged-usr
|
|
make $MAKEFLAGS
|
|
}
|
|
|
|
check() {
|
|
cd "$pkgname-$pkgver"
|
|
|
|
# make sure the binaries that need to be built statically really are
|
|
for binary in snap-exec snap-update-ns snapctl; do
|
|
if ! LC_ALL=C ldd "$srcdir/_go_build/$binary" 2>&1 | grep -q 'not a dynamic executable'; then
|
|
echo "$binary is not a static binary"
|
|
exit 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
package() {
|
|
cd "$pkgname-$pkgver"
|
|
|
|
# Install bash completion
|
|
install -Dm644 data/completion/bash/snap \
|
|
"$pkgdir/usr/share/bash-completion/completions/snap"
|
|
install -Dm644 data/completion/bash/complete.sh \
|
|
"$pkgdir/usr/lib/snapd/complete.sh"
|
|
install -Dm644 data/completion/bash/etelpmoc.sh \
|
|
"$pkgdir/usr/lib/snapd/etelpmoc.sh"
|
|
# Install zsh completion
|
|
install -Dm644 data/completion/zsh/_snap \
|
|
"$pkgdir/usr/share/zsh/site-functions/_snap"
|
|
|
|
# Install systemd units, dbus services and a script for environment variables
|
|
make -C data/ install \
|
|
DBUSSERVICESDIR=/usr/share/dbus-1/services \
|
|
BINDIR=/usr/bin \
|
|
SYSTEMDSYSTEMUNITDIR=/usr/lib/systemd/system \
|
|
SNAP_MOUNT_DIR=/var/lib/snapd/snap \
|
|
DESTDIR="$pkgdir"
|
|
|
|
make -C cmd install DESTDIR="$pkgdir/"
|
|
|
|
make -f packaging/snapd.mk \
|
|
SNAPD_DEFINES_DIR="$srcdir" \
|
|
DESTDIR="$pkgdir" \
|
|
install
|
|
|
|
# Install the "info" data file with snapd version
|
|
install -m 644 -D "data/info" "$pkgdir/usr/lib/snapd/info"
|
|
|
|
# Install the news file
|
|
install -m 644 -D "NEWS.md" "$pkgdir/usr/share/doc/snapd/NEWS.md"
|
|
|
|
# these locations are created at runtime but were not part of the packaging
|
|
# previously, thus would trigger a file conflict on upgrade
|
|
rm -rfv "$pkgdir/var/cache/snapd"
|
|
rm -rfv "$pkgdir/var/lib/snapd/snap/README"
|
|
rm -rfv "$pkgdir/var/lib/snapd/state.json"
|
|
rm -rfv "$pkgdir/var/lib/snapd/system-key"
|
|
|
|
# Remove snappy core specific units
|
|
rm -fv "$pkgdir/usr/lib/snapd/snapd.core-fixup.sh"
|
|
rm -fv "$pkgdir/usr/bin/ubuntu-core-launcher"
|
|
rm -fv "$pkgdir/usr/lib/snapd/system-shutdown"
|
|
|
|
# drop the last remaining Ubuntu Core specific service
|
|
rm -fv "$pkgdir/usr/lib/systemd/system/snapd.failure.service"
|
|
|
|
# Remove prompt services
|
|
rm -fv "$pkgdir/usr/lib/systemd/system/snapd.aa-prompt-listener.service"
|
|
rm -fv "$pkgdir/usr/lib/systemd/user/snapd.aa-prompt-ui.service"
|
|
rm -fv "$pkgdir/usr/share/dbus-1/services/io.snapcraft.Prompt.service"
|
|
|
|
# Remove gpio-chardev ordering target
|
|
rm -fv "$pkgdir/usr/lib/systemd/system/snapd.gpio-chardev-setup.target"
|
|
}
|