264 lines
9.4 KiB
RPMSpec
264 lines
9.4 KiB
RPMSpec
%define _gourl github.com/snapcore/snapd
|
|
Name: snapd
|
|
Version: 2.58
|
|
Release: 1mamba
|
|
Summary: Background service that manages and maintains installed snaps
|
|
Group: System/Management
|
|
Vendor: openmamba
|
|
Distribution: openmamba
|
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
|
URL: https://github.com/snapcore/snapd
|
|
Source: https://github.com/snapcore/snapd/releases/download/%{version}/%{name}_%{version}.vendor.tar.xz
|
|
Patch0: snapd-2.57.4-alternate-dir-add-openmamba.patch
|
|
License: GPL
|
|
## AUTOBUILDREQ-BEGIN
|
|
BuildRequires: glibc-devel
|
|
BuildRequires: libapparmor-devel
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libseccomp-devel
|
|
BuildRequires: libudev-devel
|
|
## AUTOBUILDREQ-END
|
|
Requires: apparmor
|
|
|
|
%description
|
|
snapd is the background service that manages and maintains installed snaps.
|
|
Snaps are app packages for desktop, cloud and IoT that update automatically, are easy to install, secure, cross-platform and dependency-free.
|
|
|
|
%debug_package
|
|
|
|
%prep
|
|
%setup -q
|
|
#-D -T
|
|
#:<< _EOF
|
|
%patch0 -p1
|
|
|
|
export GOPATH=${PWD}/go
|
|
mkdir -p ${GOPATH}
|
|
|
|
# Have snapd checkout appear in a place suitable for subsequent GOPATH. This
|
|
# way we don't have to go get it again and it is exactly what the tag/hash
|
|
# above describes.
|
|
mkdir -p ${GOPATH}/src/github.com/snapcore
|
|
ln --no-target-directory -fs ${PWD} ${GOPATH}/src/github.com/snapcore/snapd
|
|
|
|
# Fix source dir cleanup
|
|
chmod -R +w go
|
|
|
|
%build
|
|
#:<< _EOF
|
|
export GOPATH=${PWD}/go
|
|
|
|
# GOFLAGS may be modified by CI tools
|
|
# GOFLAGS are the go build flags for all binaries, GOFLAGS_SNAP are for snap
|
|
# build only.
|
|
GOFLAGS=""
|
|
GOFLAGS_SNAP="-tags nomanagers"
|
|
|
|
export CGO_ENABLED="1"
|
|
export CGO_CFLAGS="%{optflags}"
|
|
export CGO_CPPFLAGS="%{optflags}"
|
|
export CGO_CXXFLAGS="%{optflags}"
|
|
export CGO_LDFLAGS="${LDFLAGS}"
|
|
|
|
./mkversion.sh %{version}-%{release}
|
|
|
|
# Generate data files such as real systemd units, dbus service, environment
|
|
# setup helpers out of the available templates
|
|
make -C data \
|
|
BINDIR=%{_bindir} \
|
|
LIBEXECDIR=%{_prefix}/lib \
|
|
SYSTEMDSYSTEMUNITDIR=%{_unitdir} \
|
|
SNAP_MOUNT_DIR=/var/lib/snapd/snap \
|
|
SNAPD_ENVIRONMENT_FILE=%{_sysconfdir}/default/snapd
|
|
|
|
cd cmd
|
|
# Don't move autoreconf in prepare
|
|
autoreconf -f -i
|
|
%configure \
|
|
--libexecdir=%{_prefix}/lib/snapd \
|
|
--with-snap-mount-dir=/var/lib/snapd/snap \
|
|
--enable-apparmor \
|
|
--enable-nvidia-biarch \
|
|
--enable-merged-usr
|
|
|
|
%make
|
|
cd ..
|
|
|
|
# because argument expansion with quoting in bash is hard, and -ldflags=-extldflags='-foo'
|
|
# is not exactly the same as -ldflags "-extldflags '-foo'" use the array trick
|
|
# to pass exactly what we want
|
|
flags=(-buildmode=pie -ldflags "-w -s -linkmode external -extldflags '$LDFLAGS'" -trimpath -mod=vendor)
|
|
staticflags=(-buildmode=pie -ldflags "-w -s -linkmode external -extldflags '$LDFLAGS -static'" -trimpath -mod=vendor)
|
|
# Build/install snap and snapd
|
|
|
|
go build "${flags[@]}" -o ${GOPATH}/bin/snap $GOFLAGS_SNAP %{_gourl}/cmd/snap
|
|
go build "${flags[@]}" -o ${GOPATH}/bin/snapd $GOFLAGS %{_gourl}/cmd/snapd
|
|
go build "${flags[@]}" -o ${GOPATH}/bin/snap-seccomp $GOFLAGS %{_gourl}/cmd/snap-seccomp
|
|
go build "${flags[@]}" -o ${GOPATH}/bin/snap-failure $GOFLAGS %{_gourl}/cmd/snap-failure
|
|
go build "${flags[@]}" -o ${GOPATH}/bin/snapd-apparmor $GOFLAGS %{_gourl}/cmd/snapd-apparmor
|
|
# build snap-exec and snap-update-ns completely static for base snaps
|
|
go build "${staticflags[@]}" -o ${GOPATH}/bin/snap-update-ns $GOFLAGS %{_gourl}/cmd/snap-update-ns
|
|
go build "${staticflags[@]}" -o ${GOPATH}/bin/snap-exec $GOFLAGS %{_gourl}/cmd/snap-exec
|
|
go build "${staticflags[@]}" -o ${GOPATH}/bin/snapctl $GOFLAGS %{_gourl}/cmd/snapctl
|
|
|
|
%install
|
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
|
|
|
# Install bash completion
|
|
install -Dm644 data/completion/bash/snap \
|
|
%{buildroot}%{_datadir}/bash-completion/completions/snap
|
|
install -Dm644 data/completion/bash/complete.sh \
|
|
%{buildroot}%{_prefix}/lib/snapd/complete.sh
|
|
install -Dm644 data/completion/bash/etelpmoc.sh \
|
|
%{buildroot}%{_prefix}/lib/snapd/etelpmoc.sh
|
|
# Install zsh completion
|
|
install -Dm644 data/completion/zsh/_snap \
|
|
%{buildroot}%{_datadir}/zsh/site-functions/_snap
|
|
|
|
# Install systemd units, dbus services and a script for environment variables
|
|
%makeinstall -C data \
|
|
BINDIR=%{_bindir} \
|
|
DBUSSERVICESDIR=%{_datadir}/dbus-1/services \
|
|
SYSTEMDSYSTEMUNITDIR=%{_unitdir} \
|
|
SNAP_MOUNT_DIR=/var/lib/snapd/snap
|
|
|
|
# Install polkit policy
|
|
install -Dm644 data/polkit/io.snapcraft.snapd.policy \
|
|
%{buildroot}%{_datadir}/polkit-1/actions/io.snapcraft.snapd.policy
|
|
|
|
# Install executables
|
|
install -Dm755 go/bin/snap %{buildroot}%{_bindir}/snap
|
|
install -Dm755 go/bin/snapctl %{buildroot}%{_prefix}/lib/snapd/snapctl
|
|
install -Dm755 go/bin/snapd %{buildroot}%{_prefix}/lib/snapd/snapd
|
|
install -Dm755 go/bin/snap-seccomp %{buildroot}%{_prefix}/lib/snapd/snap-seccomp
|
|
install -Dm755 go/bin/snap-failure %{buildroot}%{_prefix}/lib/snapd/snap-failure
|
|
install -Dm755 go/bin/snapd-apparmor %{buildroot}%{_prefix}/lib/snapd/snapd-apparmor
|
|
install -Dm755 go/bin/snap-update-ns %{buildroot}%{_prefix}/lib/snapd/snap-update-ns
|
|
install -Dm755 go/bin/snap-exec %{buildroot}%{_prefix}/lib/snapd/snap-exec
|
|
# Ensure /usr/bin/snapctl is a symlink to /usr/libexec/snapd/snapctl
|
|
ln -s ../lib/snapd/snapctl %{buildroot}%{_bindir}/snapctl
|
|
|
|
# pre-create directories
|
|
install -dm755 %{buildroot}/var/lib/snapd/snap
|
|
install -dm755 %{buildroot}/var/cache/snapd
|
|
install -dm755 %{buildroot}/var/lib/snapd/{apparmor,assertions,dbus-1/services,dbus-1/system-services,desktop/applications}
|
|
install -dm755 %{buildroot}/var/lib/snapd/{device,hostfs,mount,seccomp/bpf,snap/bin,snaps,inhibit}
|
|
install -dm755 %{buildroot}/var/lib/snapd/lib/{gl,gl32,vulkan,glvnd}
|
|
# these dirs have special permissions
|
|
install -dm111 %{buildroot}/var/lib/snapd/void
|
|
install -dm700 %{buildroot}/var/lib/snapd/cookie
|
|
install -dm700 %{buildroot}/var/lib/snapd/cache
|
|
|
|
%makeinstall -C cmd
|
|
|
|
# Install man file
|
|
mkdir -p %{buildroot}%{_mandir}/man8
|
|
${PWD}/go/bin/snap help --man > %{buildroot}%{_mandir}/man8/snap.8
|
|
|
|
# Install the "info" data file with snapd version
|
|
install -m 644 -D go/src/%{_gourl}/data/info \
|
|
%{buildroot}%{_prefix}/lib/snapd/info
|
|
|
|
# Remove snappy core specific units
|
|
rm -fv %{buildroot}%{_unitdir}/snapd.system-shutdown.service
|
|
rm -fv %{buildroot}%{_unitdir}/snapd.autoimport.service
|
|
rm -fv %{buildroot}%{_unitdir}/snapd.recovery-chooser-trigger.service
|
|
rm -fv %{buildroot}%{_unitdir}/snapd.snap-repair.*
|
|
rm -fv %{buildroot}%{_unitdir}/snapd.core-fixup.*
|
|
# and scripts
|
|
rm -fv %{buildroot}%{_prefix}/lib/snapd/snapd.core-fixup.sh
|
|
rm -fv %{buildroot}%{_bindir}/ubuntu-core-launcher
|
|
rm -fv %{buildroot}%{_prefix}/lib/snapd/system-shutdown
|
|
|
|
%clean
|
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
|
|
|
%preun
|
|
%systemd_preun %{name}.socket
|
|
:
|
|
|
|
%post
|
|
%systemd_post %{name}.socket
|
|
:
|
|
|
|
%postun
|
|
%systemd_postun %{name}.socket
|
|
:
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%{_sysconfdir}/apparmor.d/usr.lib.snapd.snap-confine
|
|
%{_sysconfdir}/profile.d/snapd.sh
|
|
%{_sysconfdir}/xdg/autostart/snap-userd-autostart.desktop
|
|
%{_bindir}/snap
|
|
%{_bindir}/snapctl
|
|
%dir %{_prefix}/lib/snapd
|
|
%{_prefix}/lib/snapd/*
|
|
%{_prefix}/lib/environment.d/990-snapd.conf
|
|
%{_systemd_system_env_generator_dir}/snapd-env-generator
|
|
%{_systemdgeneratordir}/snapd-generator
|
|
%{_unitdir}/snapd.aa-prompt-listener.service
|
|
%{_unitdir}/snapd.apparmor.service
|
|
%{_unitdir}/snapd.failure.service
|
|
%{_unitdir}/snapd.seeded.service
|
|
%{_unitdir}/snapd.service
|
|
%{_unitdir}/snapd.socket
|
|
%{_unitdir}/snapd.mounts-pre.target
|
|
%{_unitdir}/snapd.mounts.target
|
|
%{_tmpfilesdir}/snapd.conf
|
|
%{_userunitdir}/snapd.aa-prompt-ui.service
|
|
%{_userunitdir}/snapd.session-agent.service
|
|
%{_userunitdir}/snapd.session-agent.socket
|
|
%{_datadir}/applications/io.snapcraft.SessionAgent.desktop
|
|
%{_datadir}/applications/snap-handle-link.desktop
|
|
%{_datadir}/bash-completion/completions/snap
|
|
%{_datadir}/dbus-1/services/io.snapcraft.*.service
|
|
%{_datadir}/dbus-1/session.d/snapd.session-services.conf
|
|
%{_datadir}/dbus-1/system.d/snapd.system-services.conf
|
|
%{_datadir}/polkit-1/actions/io.snapcraft.snapd.policy
|
|
%{_datadir}/fish/vendor_conf.d/snapd.fish
|
|
%{_datadir}/zsh/site-functions/_snap
|
|
%{_mandir}/man8/snap.8*
|
|
%{_mandir}/man8/snap-confine.8*
|
|
%{_mandir}/man8/snap-discard-ns.8*
|
|
%{_mandir}/man8/snapd-env-generator.8*
|
|
%dir /var/lib/snapd
|
|
%dir /var/lib/snapd/snap
|
|
%dir /var/cache/snapd
|
|
%dir /var/lib/snapd/apparmor
|
|
%dir /var/lib/snapd/assertions
|
|
%dir /var/lib/snapd/dbus-1/services
|
|
%dir /var/lib/snapd/dbus-1/system-services
|
|
%dir /var/lib/snapd/desktop/applications
|
|
%dir /var/lib/snapd/device
|
|
%dir /var/lib/snapd/hostfs
|
|
%dir /var/lib/snapd/mount
|
|
%dir /var/lib/snapd/seccomp/bpf
|
|
%dir /var/lib/snapd/snap/bin
|
|
%dir /var/lib/snapd/snaps
|
|
%dir /var/lib/snapd/inhibit
|
|
%dir /var/lib/snapd/lib/gl
|
|
%dir /var/lib/snapd/lib/gl32
|
|
%dir /var/lib/snapd/lib/vulkan
|
|
%dir /var/lib/snapd/lib/glvnd
|
|
%attr(0111,root,root) %dir /var/lib/snapd/void
|
|
%attr(0700,root,root) %dir /var/lib/snapd/cookie
|
|
%attr(0700,root,root) %dir /var/lib/snapd/cache
|
|
%doc COPYING
|
|
|
|
%changelog
|
|
* Sun Dec 04 2022 Automatic Build System <autodist@mambasoft.it> 2.58-1mamba
|
|
- automatic version update by autodist
|
|
|
|
* Thu Oct 27 2022 Automatic Build System <autodist@mambasoft.it> 2.57.5-1mamba
|
|
- automatic version update by autodist
|
|
|
|
* Tue Oct 04 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 2.57.4-3mamba
|
|
- add patch to support alternate SNAP_MOUNT_DIR in openmamba
|
|
|
|
* Sat Oct 01 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 2.57.4-2mamba
|
|
- fix libexec dir
|
|
|
|
* Fri Sep 30 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 2.57.4-1mamba
|
|
- package created using the webbuild interface
|