summaryrefslogtreecommitdiff
diff options
authorNeal Gompa <ngompa13@gmail.com>2017-11-09 09:01:16 -0500
committerMichael Vogt <mvo@ubuntu.com>2017-11-09 20:32:20 +0100
commit4248ded5a1356052558683d2eb4828af4ff22412 (patch)
tree3d32190aca1b342b60a6cd2f15ec0f554b887531
parentb366dfd1c3dca47deea7a2d9757da5c90480c6ae (diff)
packaging/fedora: Merge changes from Fedora Dist-Git2.29.3.1
Fedora Dist-Git carries changes that should be merged back into the snapd reference packaging files. This also contains the beginnings for Red Hat Enterprise Linux/CentOS 7 support. However, the packaging is still broken, so it isn't going to be enabled yet. Signed-off-by: Neal Gompa <ngompa13@gmail.com>
-rw-r--r--packaging/fedora/snapd.spec107
1 files changed, 85 insertions, 22 deletions
diff --git a/packaging/fedora/snapd.spec b/packaging/fedora/snapd.spec
index 1dd3b710c8..07f8767592 100644
--- a/packaging/fedora/snapd.spec
+++ b/packaging/fedora/snapd.spec
@@ -47,6 +47,23 @@
%global snappy_svcs snapd.service snapd.socket snapd.autoimport.service snapd.refresh.timer snapd.refresh.service
+# Until we have a way to add more extldflags to gobuild macro...
+%if 0%{?fedora} >= 26
+%define gobuild_static(o:) go build -buildmode pie -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags -static'" -a -v -x %{?**};
+%endif
+%if 0%{?fedora} == 25
+%define gobuild_static(o:) go build -compiler gc -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-static'" -a -v -x %{?**};
+%endif
+%if 0%{?rhel} == 7
+%define gobuild_static(o:) go build -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags -static'" -a -v -x %{?**};
+%endif
+
+# These macros are not defined in RHEL 7
+%if 0%{?rhel} == 7
+%define gobuild(o:) go build -compiler gc -tags=rpm_crashtraceback -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags'" -a -v -x %{?**};
+%define gotest() go test -compiler gc -ldflags "${LDFLAGS:-}" %{?**};
+%endif
+
Name: snapd
Version: 2.29.3
Release: 0%{?dist}
@@ -54,10 +71,9 @@ Summary: A transactional software package manager
Group: System Environment/Base
License: GPLv3
URL: https://%{provider_prefix}
-%if ! 0%{?with_bundled}
Source0: https://%{provider_prefix}/archive/%{version}/%{name}-%{version}.tar.gz
-%else
-Source0: https://%{provider_prefix}/releases/download/%{version}/%{name}_%{version}.vendor.orig.tar.xz
+%if 0%{?with_bundled}
+Source1: https://%{provider_prefix}/releases/download/%{version}/%{name}_%{version}.only-vendor.tar.xz
%endif
%if 0%{?with_goarches}
@@ -75,8 +91,11 @@ BuildRequires: systemd
Requires: snap-confine%{?_isa} = %{version}-%{release}
Requires: squashfs-tools
-# we need squashfs.ko loaded
-Requires: kmod(squashfs.ko)
+# snapd will use this in the event that squashfs.ko isn't available (cloud instances, containers, etc.)
+# FIXME: Use rich deps for this once Bodhi is switched to using pungi
+Requires: squashfuse
+Requires: fuse
+
# bash-completion owns /usr/share/bash-completion/completions
Requires: bash-completion
@@ -130,7 +149,9 @@ BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(udev)
BuildRequires: xfsprogs-devel
BuildRequires: glibc-static
+%if ! 0%{?rhel}
BuildRequires: libseccomp-static
+%endif
BuildRequires: valgrind
BuildRequires: %{_bindir}/rst2man
%if 0%{?fedora} >= 25
@@ -231,6 +252,7 @@ Provides: golang(%{import_path}/boot) = %{version}-%{release}
Provides: golang(%{import_path}/boot/boottest) = %{version}-%{release}
Provides: golang(%{import_path}/client) = %{version}-%{release}
Provides: golang(%{import_path}/cmd) = %{version}-%{release}
+Provides: golang(%{import_path}/corecfg) = %{version}-%{release}
Provides: golang(%{import_path}/daemon) = %{version}-%{release}
Provides: golang(%{import_path}/dirs) = %{version}-%{release}
Provides: golang(%{import_path}/errtracker) = %{version}-%{release}
@@ -249,6 +271,7 @@ Provides: golang(%{import_path}/interfaces/policy) = %{version}-%{release}
Provides: golang(%{import_path}/interfaces/seccomp) = %{version}-%{release}
Provides: golang(%{import_path}/interfaces/systemd) = %{version}-%{release}
Provides: golang(%{import_path}/interfaces/udev) = %{version}-%{release}
+Provides: golang(%{import_path}/jsonutil) = %{version}-%{release}
Provides: golang(%{import_path}/logger) = %{version}-%{release}
Provides: golang(%{import_path}/osutil) = %{version}-%{release}
Provides: golang(%{import_path}/overlord) = %{version}-%{release}
@@ -263,21 +286,28 @@ Provides: golang(%{import_path}/overlord/hookstate/ctlcmd) = %{version}-%{r
Provides: golang(%{import_path}/overlord/hookstate/hooktest) = %{version}-%{release}
Provides: golang(%{import_path}/overlord/ifacestate) = %{version}-%{release}
Provides: golang(%{import_path}/overlord/patch) = %{version}-%{release}
+Provides: golang(%{import_path}/overlord/servicestate) = %{version}-%{release}
Provides: golang(%{import_path}/overlord/snapstate) = %{version}-%{release}
Provides: golang(%{import_path}/overlord/snapstate/backend) = %{version}-%{release}
Provides: golang(%{import_path}/overlord/state) = %{version}-%{release}
+Provides: golang(%{import_path}/overlord/storestate) = %{version}-%{release}
Provides: golang(%{import_path}/partition) = %{version}-%{release}
Provides: golang(%{import_path}/partition/androidbootenv) = %{version}-%{release}
Provides: golang(%{import_path}/partition/grubenv) = %{version}-%{release}
Provides: golang(%{import_path}/partition/ubootenv) = %{version}-%{release}
+Provides: golang(%{import_path}/polkit) = %{version}-%{release}
Provides: golang(%{import_path}/progress) = %{version}-%{release}
+Provides: golang(%{import_path}/progress/progresstest) = %{version}-%{release}
Provides: golang(%{import_path}/release) = %{version}-%{release}
Provides: golang(%{import_path}/snap) = %{version}-%{release}
+Provides: golang(%{import_path}/snap/pack) = %{version}-%{release}
Provides: golang(%{import_path}/snap/snapdir) = %{version}-%{release}
Provides: golang(%{import_path}/snap/snapenv) = %{version}-%{release}
Provides: golang(%{import_path}/snap/snaptest) = %{version}-%{release}
Provides: golang(%{import_path}/snap/squashfs) = %{version}-%{release}
+Provides: golang(%{import_path}/spdx) = %{version}-%{release}
Provides: golang(%{import_path}/store) = %{version}-%{release}
+Provides: golang(%{import_path}/store/storetest) = %{version}-%{release}
Provides: golang(%{import_path}/strutil) = %{version}-%{release}
Provides: golang(%{import_path}/systemd) = %{version}-%{release}
Provides: golang(%{import_path}/tests/lib/fakestore/refresh) = %{version}-%{release}
@@ -285,6 +315,7 @@ Provides: golang(%{import_path}/tests/lib/fakestore/store) = %{version}-%{r
Provides: golang(%{import_path}/testutil) = %{version}-%{release}
Provides: golang(%{import_path}/timeout) = %{version}-%{release}
Provides: golang(%{import_path}/timeutil) = %{version}-%{release}
+Provides: golang(%{import_path}/userd) = %{version}-%{release}
Provides: golang(%{import_path}/wrappers) = %{version}-%{release}
Provides: golang(%{import_path}/x11) = %{version}-%{release}
@@ -338,6 +369,9 @@ rm -rf vendor/*
mkdir -p vendor/gopkg.in/cheggaaa
ln -s %{gopath}/src/github.com/cheggaaa/pb vendor/gopkg.in/cheggaaa/pb.v1
+%else
+# Unpack the vendor tarball too...
+%setup -q -T -D -b 1
%endif
%build
@@ -365,12 +399,20 @@ GOFLAGS="$GOFLAGS -tags withtestkeys"
%gobuild -o bin/snapd $GOFLAGS %{import_path}/cmd/snapd
%gobuild -o bin/snap $GOFLAGS %{import_path}/cmd/snap
%gobuild -o bin/snapctl $GOFLAGS %{import_path}/cmd/snapctl
-# build snap-exec and snap-update-ns completely static for base snaps
-CGO_ENABLED=0 %gobuild -o bin/snap-exec $GOFLAGS %{import_path}/cmd/snap-exec
-%gobuild -o bin/snap-update-ns --ldflags '-extldflags "-static"' $GOFLAGS %{import_path}/cmd/snap-update-ns
+# To ensure things work correctly with base snaps,
+# snap-exec and snap-update-ns need to be built statically
+%gobuild_static -o bin/snap-exec $GOFLAGS %{import_path}/cmd/snap-exec
+%gobuild_static -o bin/snap-update-ns $GOFLAGS %{import_path}/cmd/snap-update-ns
+
+%if ! 0%{?with_bundled}
# We don't need mvo5 fork for seccomp, as we have seccomp 2.3.x
sed -e "s:github.com/mvo5/libseccomp-golang:github.com/seccomp/libseccomp-golang:g" -i cmd/snap-seccomp/*.go
+%endif
+%if 0%{?rhel}
+# There's no static link library for libseccomp in RHEL/CentOS...
+sed -e "s/-Bstatic -lseccomp/-Bstatic/g" -i cmd/snap-seccomp/*.go
+%endif
%gobuild -o bin/snap-seccomp $GOFLAGS %{import_path}/cmd/snap-seccomp
# Build SELinux module
@@ -399,17 +441,14 @@ autoreconf --force --install --verbose
%make_build
popd
-# Build systemd units
-pushd ./data/
+# Build systemd and dbus units, and env files
+pushd ./data
make BINDIR="%{_bindir}" LIBEXECDIR="%{_libexecdir}" \
SYSTEMDSYSTEMUNITDIR="%{_unitdir}" \
SNAP_MOUNT_DIR="%{_sharedstatedir}/snapd/snap" \
SNAPD_ENVIRONMENT_FILE="%{_sysconfdir}/sysconfig/snapd"
popd
-# Build environ-tweaking snippet
-make -C data/env SNAP_MOUNT_DIR="%{_sharedstatedir}/snapd/snap"
-
%install
install -d -p %{buildroot}%{_bindir}
install -d -p %{buildroot}%{_libexecdir}/snapd
@@ -464,8 +503,8 @@ rm -rfv %{buildroot}%{_sysconfdir}/apparmor.d
rm -fv %{buildroot}%{_bindir}/ubuntu-core-launcher
popd
-# Install all systemd units
-pushd ./data/
+# Install all systemd and dbus units, and env files
+pushd ./data
%make_install SYSTEMDSYSTEMUNITDIR="%{_unitdir}" BINDIR="%{_bindir}" LIBEXECDIR="%{_libexecdir}"
# Remove snappy core specific units
rm -fv %{buildroot}%{_unitdir}/snapd.system-shutdown.service
@@ -476,11 +515,6 @@ popd
# Remove snappy core specific scripts
rm %{buildroot}%{_libexecdir}/snapd/snapd.core-fixup.sh
-# Install environ-tweaking snippet
-pushd ./data/env
-%make_install
-popd
-
# Disable re-exec by default
echo 'SNAP_REEXEC=0' > %{buildroot}%{_sysconfdir}/sysconfig/snapd
@@ -562,6 +596,7 @@ popd
%{_unitdir}/snapd.autoimport.service
%{_unitdir}/snapd.refresh.service
%{_unitdir}/snapd.refresh.timer
+%{_datadir}/dbus-1/services/io.snapcraft.Launcher.service
%config(noreplace) %{_sysconfdir}/sysconfig/snapd
%dir %{_sharedstatedir}/snapd
%dir %{_sharedstatedir}/snapd/assertions
@@ -574,11 +609,10 @@ popd
%dir %{_sharedstatedir}/snapd/seccomp/bpf
%dir %{_sharedstatedir}/snapd/snaps
%dir %{_sharedstatedir}/snapd/snap
-%dir /var/cache/snapd
%ghost %dir %{_sharedstatedir}/snapd/snap/bin
+%dir %{_localstatedir}/cache/snapd
%dir %{_localstatedir}/snap
%ghost %{_sharedstatedir}/snapd/state.json
-%{_datadir}/dbus-1/services/io.snapcraft.Launcher.service
%files -n snap-confine
%doc cmd/snap-confine/PORTING
@@ -651,6 +685,9 @@ fi
%selinux_modules_install %{_datadir}/selinux/packages/snappy.pp.bz2
%selinux_relabel_post
+%posttrans selinux
+%selinux_relabel_post
+
%postun selinux
%selinux_modules_uninstall snappy
if [ $1 -eq 0 ]; then
@@ -885,6 +922,14 @@ fi
- docs: use abolute path in PULL_REQUEST_TEMPLATE.md
- store: move device auth endpoint uris to config (#3831)
+* Sat Oct 14 2017 Neal Gompa <ngompa13@gmail.com> - 2.28.5-2
+- Properly fix the build for Fedora 25
+- Incorporate misc build fixes
+
+* Sat Oct 14 2017 Neal Gompa <ngompa13@gmail.com> - 2.28.5-1
+- Release 2.28.5 to Fedora (RH#1502186)
+- Build snap-exec and snap-update-ns statically to support base snaps
+
* Fri Oct 13 2017 Michael Vogt <mvo@ubuntu.com>
- New upstream release 2.28.5
- snap-confine: cleanup broken nvidia udev tags
@@ -895,6 +940,10 @@ fi
- snap-confine: add support for handling /dev/nvidia-modeset
- interfaces/network-control: remove incorrect rules for tun
+* Thu Oct 12 2017 Neal Gompa <ngompa13@gmail.com> - 2.28.4-1
+- Release 2.28.4 to Fedora (RH#1501141)
+- Drop distro check backport patches (released with 2.28.2)
+
* Wed Oct 11 2017 Michael Vogt <mvo@ubuntu.com>
- New upstream release 2.28.4
- interfaces/opengl: don't udev tag nvidia devices and use snap-
@@ -912,6 +961,13 @@ fi
- release,cmd,dirs: Redo the distro checks to take into account
distribution families
+* Sun Oct 08 2017 Neal Gompa <ngompa13@gmail.com> - 2.28.1-1
+- Release 2.28.1 to Fedora (RH#1495852)
+- Drop userd backport patches, they are part of 2.28 release
+- Backport changes to rework distro checks to fix derivative distro usage of snapd
+- Revert import path change for cheggaaa/pb as it breaks build on Fedora
+- Add a posttrans relabel to snapd-selinux to ensure everything is labeled correctly
+
* Wed Sep 27 2017 Michael Vogt <mvo@ubuntu.com>
- New upstream release 2.28.1
- snap-confine: update apparmor rules for fedora based basesnaps
@@ -1186,12 +1242,19 @@ fi
- store: configurable base api
- tests: fix how package lists are updated for opensuse and fedora
+* Sun Sep 10 2017 Neal Gompa <ngompa13@gmail.com> - 2.27.6-1
+- Release 2.27.6 to Fedora (RH#1489437)
+
* Thu Sep 07 2017 Michael Vogt <mvo@ubuntu.com>
- New upstream release 2.27.6
- interfaces: add udev netlink support to hardware-observe
- interfaces/network-{control,observe}: allow receiving
kobject_uevent() messages
+* Mon Sep 04 2017 Neal Gompa <ngompa13@gmail.com> - 2.27.5-1
+- Release 2.27.5 to Fedora (RH#1483177)
+- Backport userd from upstream to support xdg-open
+
* Wed Aug 30 2017 Michael Vogt <mvo@ubuntu.com>
- New upstream release 2.27.5
- interfaces: fix network-manager plug regression