diff --git a/SOURCES/flatpak-ostree-bundle.patch b/SOURCES/flatpak-ostree-bundle.patch new file mode 100644 index 0000000..96102ff --- /dev/null +++ b/SOURCES/flatpak-ostree-bundle.patch @@ -0,0 +1,26 @@ +Make sure rpath gets added for ostree libs + +We bundle ostree in the package, so we need to make sure an rpath +gets set pointing to our bundled library. + +The Makefiles are missing the OSTREE_LIBS (and so the -Wl,-rpath), +so add them in. +--- flatpak-1.0.1/session-helper/Makefile.am.inc.old 2018-08-08 16:56:20.000000000 +0200 ++++ flatpak-1.0.1/session-helper/Makefile.am.inc 2018-09-12 13:23:08.304959872 +0200 +@@ -12,5 +12,5 @@ + session-helper/flatpak-session-helper.c \ + $(NULL) + +-flatpak_session_helper_LDADD = $(AM_LDADD) $(BASE_LIBS) libflatpak-common.la ++flatpak_session_helper_LDADD = $(AM_LDADD) $(BASE_LIBS) $(OSTREE_LIBS) libflatpak-common.la + flatpak_session_helper_CFLAGS = $(AM_CFLAGS) $(BASE_CFLAGS) $(SOUP_CFLAGS) $(OSTREE_CFLAGS) $(GSYSTEM_CFLAGS) $(JSON_CFLAGS) -DFLATPAK_COMPILATION +--- flatpak-1.0.1/portal/Makefile.am.inc.old 2018-08-08 16:56:20.000000000 +0200 ++++ flatpak-1.0.1/portal/Makefile.am.inc 2018-09-12 13:23:54.795014399 +0200 +@@ -34,6 +34,6 @@ + BUILT_SOURCES += $(nodist_flatpak_portal_SOURCES) + CLEANFILES += $(nodist_flatpak_portal_SOURCES) + +-flatpak_portal_LDADD = $(AM_LDADD) $(BASE_LIBS) ++flatpak_portal_LDADD = $(AM_LDADD) $(BASE_LIBS) $(OSTREE_LIBS) + flatpak_portal_CFLAGS = $(AM_CFLAGS) $(BASE_CFLAGS) -DFLATPAK_COMPILATION + flatpak_portal_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/portal diff --git a/SOURCES/no-user-systemd.patch b/SOURCES/no-user-systemd.patch new file mode 100644 index 0000000..add73d3 --- /dev/null +++ b/SOURCES/no-user-systemd.patch @@ -0,0 +1,23 @@ +Drop the SystemdService line in dbus service files + +I don't think we can dbus activate systemd services on +the session bus (we don't have a user bus, and I'm +pretty sure we don't have systemd --user) + +This commit just drops the lines, so dbus can activate on +its own. +diff -up flatpak-0.8.8/session-helper/org.freedesktop.Flatpak.service.in.no-user-systemd flatpak-0.8.8/session-helper/org.freedesktop.Flatpak.service.in +--- flatpak-0.8.8/session-helper/org.freedesktop.Flatpak.service.in.no-user-systemd 2017-11-08 16:33:21.045226761 -0500 ++++ flatpak-0.8.8/session-helper/org.freedesktop.Flatpak.service.in 2017-11-08 16:33:38.361037649 -0500 +@@ -1,4 +1,3 @@ + [D-BUS Service] + Name=org.freedesktop.Flatpak + Exec=@libexecdir@/flatpak-session-helper +-SystemdService=flatpak-session-helper.service +--- flatpak-1.0.1/portal/org.freedesktop.portal.Flatpak.service.in.no-user-systemd 2018-05-30 14:58:57.000000000 +0200 ++++ flatpak-1.0.1/portal/org.freedesktop.portal.Flatpak.service.in 2018-09-12 12:11:27.428215430 +0200 +@@ -1,4 +1,3 @@ + [D-BUS Service] + Name=org.freedesktop.portal.Flatpak + Exec=@libexecdir@/flatpak-portal +-SystemdService=flatpak-portal.service diff --git a/SPECS/flatpak.spec b/SPECS/flatpak.spec new file mode 100644 index 0000000..7fec546 --- /dev/null +++ b/SPECS/flatpak.spec @@ -0,0 +1,427 @@ +%global flatpak_version 1.0.2 +%global flatpak_builder_version 1.0.0 +%global ostree_version 2018.8 + +Name: flatpak +Version: %{flatpak_version} +Release: 2%{?dist} +Summary: Application deployment framework for desktop apps + +License: LGPLv2+ +URL: http://flatpak.org/ +Source0: https://github.com/flatpak/flatpak/releases/download/%{version}/%{name}-%{version}.tar.xz +Source1: https://github.com/ostreedev/ostree/releases/download/v%{ostree_version}/libostree-%{ostree_version}.tar.xz +Source2: https://github.com/flatpak/flatpak-builder/releases/download/%{flatpak_builder_version}/flatpak-builder-%{flatpak_builder_version}.tar.xz + +# Avoid dbus activating systemd services on the session bus (we don't have a +# user bus, and I'm pretty sure we don't have systemd --user) +Patch0: no-user-systemd.patch +# Make sure our resulting binaries always have the rpath set to the bundled +# ostree directory +Patch1: flatpak-ostree-bundle.patch + +BuildRequires: pkgconfig(appstream-glib) +BuildRequires: pkgconfig(fuse) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.40.0 +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(libarchive) >= 2.8.0 +BuildRequires: pkgconfig(libelf) >= 0.8.12 +BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libxml-2.0) >= 2.4 +BuildRequires: pkgconfig(polkit-gobject-1) +BuildRequires: pkgconfig(libseccomp) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(yaml-0.1) +BuildRequires: pkgconfig(xau) +BuildRequires: pkgconfig(e2p) +BuildRequires: automake, autoconf, libtool, gettext-devel, gtk-doc +BuildRequires: bison +BuildRequires: docbook-dtds +BuildRequires: docbook-style-xsl +BuildRequires: intltool +BuildRequires: libattr-devel +BuildRequires: libcap-devel +BuildRequires: libdwarf-devel +BuildRequires: gpgme-devel +BuildRequires: systemd +BuildRequires: /usr/bin/eu-strip +BuildRequires: /usr/bin/xmlto +BuildRequires: /usr/bin/xsltproc +# Bundled ostree BRs: +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(libcurl) +BuildRequires: openssl-devel +BuildRequires: pkgconfig(mount) +BuildRequires: pkgconfig(libsystemd) + +# libostree bundling +# https://fedoraproject.org/wiki/EPEL:Packaging_Autoprovides_and_Requires_Filtering +# We're using RPATH to pick up our bundled version +%filter_from_requires /libostree-1/d + +# And ensure we don't add a Provides +%{?filter_setup: +%filter_provides_in %{_libdir}/%{name}/.* +%filter_setup +} +# And for now we manually inject this dep; surprisingly the +# command line doesn't currently link to the public libflatpak +# library. +Requires: %{name}-libs = %{version}-%{release} + +# Make sure the document portal is installed +%if 0%{?fedora} || 0%{?rhel} > 7 +Recommends: xdg-desktop-portal > 0.10 +# Remove in F30. +Conflicts: xdg-desktop-portal < 0.10 +%else +Requires: xdg-desktop-portal > 0.10 +%endif + +%description +flatpak is a system for building, distributing and running sandboxed desktop +applications on Linux. See https://wiki.gnome.org/Projects/SandboxedApps for +more information. + +%package builder +# Override to the version of the bundled flatpak-builder. +Version: %{flatpak_builder_version} +Summary: Build helper for %{name} +License: LGPLv2+ +# Overridden, as the macro expands to the version of this subpackage. +Requires: %{name}%{?_isa} = %{flatpak_version}-%{release} +Requires: /usr/bin/bzip2 +Requires: /usr/bin/bzr +Requires: /usr/bin/git +Requires: /usr/bin/patch +Requires: /usr/bin/strip +Requires: /usr/bin/svn +Requires: /usr/bin/tar +Requires: /usr/bin/unzip + +%description builder +flatpak-builder is a tool that makes it easy to build applications and their +dependencies by automating the configure && make && make install steps. + +%package devel +# Overriden, to reset the version macro back to that of the base package. +Version: %{flatpak_version} +Summary: Development files for %{name} +License: LGPLv2+ +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +This package contains the pkg-config file and development headers for %{name}. + +%package libs +Summary: Libraries for %{name} +License: LGPLv2+ +# Drop if using an external ostree-libs. +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description libs +This package contains libflatpak. + + +%prep +%setup -q -a 1 -a 2 +%patch0 -p1 +%patch1 -p1 + + +%build +cd libostree-%{ostree_version} + %configure \ + --disable-silent-rules \ + --disable-gtk-doc \ + --disable-man \ + --disable-rofiles-fuse \ + --without-libmount \ + --disable-introspection \ + --without-selinux \ + --without-dracut \ + LIBS=-lgpg-error \ + CPPFLAGS="$CPPFLAGS -DDISABLE_OTMPFILE" +%make_build V=1 +cd .. + +mkdir -p root/lib/pkgconfig +ROOT=`pwd`/root + +mv libostree-%{ostree_version}/.libs/libostree-1.so* root/lib +ls -al root/lib/libostree* +ln -s `pwd`/libostree-%{ostree_version}/src/libostree root/include + +cat > root/lib/pkgconfig/ostree-1.pc < flatpak < /dev/null || : + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + + +%files -f %{name}.lang +%license COPYING +# Comply with the packaging guidelines about not mixing relative and absolute +# paths in doc. +%doc %{_pkgdocdir} +%{_bindir}/flatpak +%{_datadir}/bash-completion +%{_datadir}/dbus-1/interfaces/org.freedesktop.Flatpak.xml +%{_datadir}/dbus-1/interfaces/org.freedesktop.portal.Flatpak.xml +%{_datadir}/dbus-1/services/org.freedesktop.Flatpak.service +%{_datadir}/dbus-1/services/org.freedesktop.portal.Flatpak.service +%{_datadir}/dbus-1/system-services/org.freedesktop.Flatpak.SystemHelper.service +# Co-own directory. +%{_datadir}/gdm/env.d +%{_datadir}/%{name} +%{_datadir}/polkit-1/actions/org.freedesktop.Flatpak.policy +%{_datadir}/polkit-1/rules.d/org.freedesktop.Flatpak.rules +%{_datadir}/zsh/site-functions +%{_libexecdir}/flatpak-dbus-proxy +%{_libexecdir}/flatpak-portal +%{_libexecdir}/flatpak-session-helper +%{_libexecdir}/flatpak-system-helper +%attr(04755,root,root) %{_libexecdir}/flatpak-bwrap + +%dir %{_localstatedir}/lib/flatpak +%{_mandir}/man1/%{name}*.1* +%{_mandir}/man5/%{name}-metadata.5* +%{_mandir}/man5/flatpak-flatpakref.5* +%{_mandir}/man5/flatpak-flatpakrepo.5* +%{_mandir}/man5/flatpak-installation.5* +%{_mandir}/man5/flatpak-remote.5* +%exclude %{_mandir}/man1/flatpak-builder.1* +%{_sysconfdir}/dbus-1/system.d/org.freedesktop.Flatpak.SystemHelper.conf +%{_sysconfdir}/flatpak/remotes.d +%{_sysconfdir}/profile.d/flatpak.sh +%{_unitdir}/flatpak-system-helper.service +%{_userunitdir}/flatpak-portal.service +%{_userunitdir}/flatpak-session-helper.service +# Co-own directory. +%{_userunitdir}/dbus.service.d + +%files builder +%doc %{_docdir}/flatpak-builder +%{_bindir}/flatpak-builder +%{_mandir}/man1/flatpak-builder.1* +%{_mandir}/man5/flatpak-manifest.5* + +%files devel +%{_datadir}/gtk-doc/ +%{_includedir}/%{name}/ +%{_libdir}/libflatpak.so +%{_libdir}/pkgconfig/%{name}.pc + +%files libs +%license COPYING +%{_libdir}/flatpak/libostree-1.so* +%{_libdir}/libflatpak.so.* + + +%changelog +* Thu Sep 13 2018 Kalev Lember - 1.0.2-2 +- Update to 1.0.2 (#1570030) + +* Wed Sep 12 2018 Kalev Lember - 1.0.1-1 +- Update to 1.0.1 (#1570030) + +* Mon Jun 04 2018 David King - 0.10.4-2 +- Fix subpackage versions (#1585604) + +* Fri Jun 01 2018 David King - 0.10.4-1 +- Rebase to 0.10.4 (#1570030) + +* Mon Dec 11 2017 David King - 0.8.8-3 +- Disable O_TMPFILE in libglnx (#1520311) + +* Fri Nov 10 2017 Ray Strode - 0.8.8-2 +- Fix crasher in xdg-desktop-portal + Resolves: #1503579 +- Tweak spec file so it still builds even though we need to + autoreconf. + +* Wed Nov 01 2017 David King - 0.8.8-1 +- Update to 0.8.8 (#1500800) + +* Tue Aug 01 2017 Colin Walters - 0.8.7-3 +- Fix libostree bundling: + Ensure we do not Provide or Require libostree. + Move the shared library into flatpak-libs so flatpak always + depends on it. + Keep the shared library filename as libostree, but put it + under a private directory. Renaming the file on disk did not + really do much since the dynamic linker and RPM work from the + soname. + Resolves: #1476905 + +* Tue Aug 01 2017 Colin Walters - 0.8.7-2 +- Tweak build to work both with and without BZ#1392354 + +* Tue Jun 20 2017 Kalev Lember - 0.8.7-1 +- Update to 0.8.7 +- Resolves: #1391018 + +* Tue Apr 4 2017 Alexander Larsson - 0.8.5-2 +- Add libostree use-after-free patch +- Resolves: #1391018 + +* Mon Apr 03 2017 Kalev Lember - 0.8.5-1 +- Update to 0.8.5 +- Resolves: #1391018 + +* Fri Mar 10 2017 David King - 0.8.4-2 +- Sync bzip2 dependency with Fedora package +- Make the libs subpackage depend on the base package for libostree +- Fix multilib issues with XML-based documentation + +* Fri Mar 10 2017 Kalev Lember - 0.8.4-1 +- Update to 0.8.4 +- Resolves: #1391018 + +* Wed Feb 22 2017 Kalev Lember - 0.8.3-4 +- Remove ExcludeArch ppc now that we have libseccomp there +- Resolves: #1391018 + +* Fri Feb 17 2017 Alexander Larsson - 0.8.3-3 +- ExcludeArch 32bit ppc which doesn't have libseccomp +- Resolves: #1391018 + +* Fri Feb 17 2017 Alexander Larsson - 0.8.3-2 +- Added pkgconfig(e2p) build dependency +- Resolves: #1391018 + +* Fri Feb 17 2017 Alexander Larsson - 0.8.3-1 +- Bundle ostree and bubblewrap +- Resolves: #1391018 + +* Tue Feb 14 2017 Kalev Lember - 0.8.3-1 +- Update to 0.8.3 + +* Fri Jan 27 2017 Kalev Lember - 0.8.2-1 +- Update to 0.8.2 + +* Wed Jan 18 2017 David King - 0.8.1-1 +- Update to 0.8.1 + +* Tue Dec 20 2016 Kalev Lember - 0.8.0-1 +- Update to 0.8.0 + +* Tue Nov 29 2016 David King - 0.6.14-2 +- Add a patch to fix a GNOME Software crash +- Silence repository listing during post + +* Tue Nov 29 2016 Kalev Lember - 0.6.14-1 +- Update to 0.6.14 + +* Wed Oct 26 2016 David King - 0.6.13-2 +- Add empty /etc/flatpak/remotes.d + +* Tue Oct 25 2016 David King - 0.6.13-1 +- Update to 0.6.13 + +* Thu Oct 06 2016 David King - 0.6.12-1 +- Update to 0.6.12 + +* Tue Sep 20 2016 Kalev Lember - 0.6.11-1 +- Update to 0.6.11 +- Set minimum ostree and bubblewrap versions + +* Mon Sep 12 2016 David King - 0.6.10-1 +- Update to 0.6.10 + +* Tue Sep 06 2016 David King - 0.6.9-2 +- Look for bwrap in PATH + +* Thu Aug 25 2016 David King - 0.6.9-1 +- Update to 0.6.9 + +* Mon Aug 01 2016 David King - 0.6.8-1 +- Update to 0.6.8 (#1361823) + +* Thu Jul 21 2016 David King - 0.6.7-2 +- Use system bubblewrap + +* Fri Jul 01 2016 David King - 0.6.7-1 +- Update to 0.6.7 + +* Thu Jun 23 2016 David King - 0.6.6-1 +- Update to 0.6.6 + +* Fri Jun 10 2016 David King - 0.6.5-1 +- Update to 0.6.5 + +* Wed Jun 01 2016 David King - 0.6.4-1 +- Update to 0.6.4 + +* Tue May 31 2016 David King - 0.6.3-1 +- Update to 0.6.3 +- Move bwrap to main package + +* Tue May 24 2016 David King - 0.6.2-1 +- Rename from xdg-app to flatpak (#1337434)