Dominique Leuenberger
a3f8112ba6
- When SLE uses GNOME desktop environment, GNOME Software is automatically started to provide key update features. During the startup, it setups flatpak repository so that related features can function properly. In a system environment of no flatpak repository has ever been setup before, this triggers "org.freedesktop.Flatpak.modify-repo" polkit action. Therefore in systems which use a restrictive security policy (eg. SLES) for the aforementioned policy action, a polkit authentication dialog will pop up without any user interaction for the first time login. This is not user friendly. This submission creates /var/lib/flatpak/repo at package installation to avoid such a confusing authentication pop-up, at nearly 0 cost of security compromise (bsc#1171822). OBS-URL: https://build.opensuse.org/request/show/807123 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/flatpak?expand=0&rev=107
275 lines
9.1 KiB
RPMSpec
275 lines
9.1 KiB
RPMSpec
#
|
|
# spec file for package flatpak
|
|
#
|
|
# Copyright (c) 2020 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
# dbus only used config files in /etc until 1.9.18
|
|
%if %{pkg_vcmp dbus-1 < 1.9.18}
|
|
%define _dbusconfigdir %{_sysconfdir}/dbus-1/system.d
|
|
%else
|
|
%define _dbusconfigdir %{_datadir}/dbus-1/system.d
|
|
%endif
|
|
|
|
# systemd only supports environment generators since version 233
|
|
%if %{pkg_vcmp systemd < 233}
|
|
%define support_environment_generators 0
|
|
%else
|
|
%define support_environment_generators 1
|
|
%endif
|
|
|
|
%define libname libflatpak0
|
|
Name: flatpak
|
|
Version: 1.6.3
|
|
Release: 0
|
|
Summary: OSTree based application bundles management
|
|
License: LGPL-2.1-or-later
|
|
Group: System/Packages
|
|
URL: https://flatpak.github.io/
|
|
Source0: %{name}-%{version}.tar.xz
|
|
Source1: system-user-flatpak.conf
|
|
Patch0: polkit_rules_usability.patch
|
|
BuildRequires: bison
|
|
BuildRequires: bubblewrap >= 0.4.1
|
|
BuildRequires: docbook-xsl-stylesheets
|
|
BuildRequires: gtk-doc
|
|
BuildRequires: intltool >= 0.35.0
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libdwarf-devel
|
|
BuildRequires: libgpgme-devel >= 1.1.8
|
|
BuildRequires: libtool
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: sysuser-tools
|
|
BuildRequires: xdg-dbus-proxy >= 0.1.0
|
|
BuildRequires: xsltproc
|
|
BuildRequires: pkgconfig(appstream-glib)
|
|
BuildRequires: pkgconfig(dconf)
|
|
BuildRequires: pkgconfig(fuse)
|
|
BuildRequires: pkgconfig(gio-2.0)
|
|
BuildRequires: pkgconfig(gio-unix-2.0)
|
|
BuildRequires: pkgconfig(glib-2.0) >= 2.44
|
|
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.40.0
|
|
BuildRequires: pkgconfig(gobject-introspection-no-export-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(libseccomp)
|
|
BuildRequires: pkgconfig(libsoup-2.4)
|
|
BuildRequires: pkgconfig(libsystemd)
|
|
BuildRequires: pkgconfig(ostree-1) >= 2018.9
|
|
BuildRequires: pkgconfig(polkit-gobject-1)
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(xau)
|
|
Requires: %{libname} = %{version}
|
|
Requires: bubblewrap >= 0.4.1
|
|
Requires: ostree >= 2018.9
|
|
Requires: xdg-dbus-proxy >= 0.1.0
|
|
Requires: xdg-desktop-portal >= 0.10
|
|
Requires: user(flatpak)
|
|
# Remove after openSUSE Leap 42 is out of scope
|
|
Provides: xdg-app = %{version}
|
|
Obsoletes: xdg-app < %{version}
|
|
|
|
%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 -n system-user-flatpak
|
|
Summary: System user for the flatpak system helper
|
|
Group: System/Base
|
|
%sysusers_requires
|
|
|
|
%description -n system-user-flatpak
|
|
System user for the flatpak system helper.
|
|
|
|
|
|
%package -n %{libname}
|
|
Summary: OSTree based application bundle management library
|
|
Group: System/Libraries
|
|
|
|
%description -n %{libname}
|
|
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 -n typelib-1_0-Flatpak-1_0
|
|
Summary: Introspection bindings for the flatpak library
|
|
Group: System/Libraries
|
|
|
|
%description -n typelib-1_0-Flatpak-1_0
|
|
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 zsh-completion
|
|
Summary: Zsh tab-completion for flatpak
|
|
Group: System/Shells
|
|
Supplements: packageand(%{name}:%(rpm -q --qf '%%{NAME}' --whatprovides zsh))
|
|
|
|
%description zsh-completion
|
|
flatpak is a system for building, distributing and running sandboxed desktop
|
|
applications on Linux. See https://wiki.gnome.org/Projects/SandboxedApps for
|
|
more information.
|
|
|
|
This package provides zsh tab-completion for flatpak.
|
|
|
|
%package devel
|
|
Summary: Development files for the flatpak library
|
|
Group: Development/Languages/C and C++
|
|
Requires: %{libname} = %{version}
|
|
Requires: %{name} = %{version}
|
|
Requires: typelib-1_0-Flatpak-1_0 = %{version}
|
|
|
|
%description devel
|
|
flatpak is a system for building, distributing and running sandboxed desktop
|
|
applications on Linux. See https://wiki.gnome.org/Projects/SandboxedApps for
|
|
more information.
|
|
|
|
%lang_package
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
sed -i -e '1s,#!%{_bindir}/env python3,#!%{_bindir}/python3,' scripts/flatpak-*
|
|
|
|
%build
|
|
%define _lto_cflags %{nil}
|
|
NOCONFIGURE=1 ./autogen.sh
|
|
%configure \
|
|
--disable-silent-rules \
|
|
--enable-gtk-doc \
|
|
--disable-document-portal \
|
|
--with-system-bubblewrap \
|
|
--with-priv-mode=none \
|
|
--with-dbus-config-dir=%{_dbusconfigdir} \
|
|
--with-system-dbus-proxy=%{_bindir}/xdg-dbus-proxy \
|
|
%{nil}
|
|
%make_build
|
|
%sysusers_generate_pre %{SOURCE1} system-user-flatpak
|
|
|
|
%install
|
|
%make_install
|
|
find %{buildroot} -type f -name "*.la" -delete -print
|
|
mkdir -p %{buildroot}%{_sbindir}
|
|
ln -s service %{buildroot}%{_sbindir}/rcflatpak-system-helper
|
|
# add a 60- prefix to the rules file, otherwise it is not effective, because
|
|
# /etc/polkit-1/rules.d/90-default-privs.rules is executed first and if no
|
|
# polkit-default-privs rule grants access then an explicit reject is the
|
|
# result. This should fix bsc#984817, granting members of group wheel access
|
|
# w/o password entry.
|
|
mv %{buildroot}/%{_datadir}/polkit-1/rules.d/{,60-}org.freedesktop.Flatpak.rules
|
|
|
|
mkdir -p %{buildroot}%{_sysusersdir}
|
|
install -m 644 %{SOURCE1} %{buildroot}%{_sysusersdir}/system-user-flatpak.conf
|
|
|
|
%if !%{support_environment_generators}
|
|
rm -Rf %{buildroot}%{_libexecdir}/systemd/user-environment-generators/
|
|
%endif
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/flatpak/remotes.d
|
|
mkdir -p %{buildroot}%{_localstatedir}/lib/flatpak/repo
|
|
|
|
%find_lang %{name}
|
|
|
|
%pre -n system-user-flatpak -f system-user-flatpak.pre
|
|
|
|
%post -n %{libname} -p /sbin/ldconfig
|
|
%postun -n %{libname} -p /sbin/ldconfig
|
|
%pre
|
|
%service_add_pre flatpak-system-helper.service
|
|
|
|
%preun
|
|
%service_del_preun flatpak-system-helper.service
|
|
|
|
%post
|
|
%service_add_post flatpak-system-helper.service
|
|
|
|
%postun
|
|
%service_del_postun flatpak-system-helper.service
|
|
|
|
%files -f %{name}.lang
|
|
%license COPYING
|
|
%{_bindir}/flatpak
|
|
%{_bindir}/flatpak-bisect
|
|
%{_bindir}/flatpak-coredumpctl
|
|
%{_libexecdir}/flatpak-portal
|
|
%{_libexecdir}/flatpak-session-helper
|
|
%{_libexecdir}/flatpak-system-helper
|
|
%{_libexecdir}/flatpak-validate-icon
|
|
%{_libexecdir}/revokefs-fuse
|
|
%{_datadir}/bash-completion/completions/flatpak
|
|
# # Own dirs so we don't have to depend on dbus for building.
|
|
%dir %{_datadir}/dbus-1
|
|
%dir %{_datadir}/dbus-1/interfaces
|
|
%dir %{_datadir}/dbus-1/services
|
|
%{_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
|
|
%{_dbusconfigdir}/org.freedesktop.Flatpak.SystemHelper.conf
|
|
# policykit rules
|
|
%{_datadir}/polkit-1/actions/org.freedesktop.Flatpak.policy
|
|
%{_datadir}/polkit-1/rules.d/60-org.freedesktop.Flatpak.rules
|
|
%{_mandir}/man1/%{name}*.1%{ext_man}
|
|
%{_mandir}/man5/flatpak-metadata.5%{ext_man}
|
|
%{_mandir}/man5/flatpak-flatpakref.5%{ext_man}
|
|
%{_mandir}/man5/flatpak-flatpakrepo.5%{ext_man}
|
|
%{_mandir}/man5/flatpak-installation.5%{ext_man}
|
|
%{_mandir}/man5/flatpak-remote.5%{ext_man}
|
|
%{_datadir}/%{name}/
|
|
%config %{_sysconfdir}/profile.d/flatpak.sh
|
|
%{_sysconfdir}/flatpak
|
|
# Own dirs so we don't have to depend on gdm for building.
|
|
%dir %{_datadir}/gdm/
|
|
%dir %{_datadir}/gdm/env.d/
|
|
%{_datadir}/gdm/env.d/flatpak.env
|
|
%{_unitdir}/flatpak-system-helper.service
|
|
%{_sbindir}/rcflatpak-system-helper
|
|
%{_userunitdir}/flatpak-session-helper.service
|
|
%{_userunitdir}/flatpak-portal.service
|
|
%dir %{_localstatedir}/lib/flatpak
|
|
%dir %{_localstatedir}/lib/flatpak/repo
|
|
%if %{support_environment_generators}
|
|
%dir %{_libexecdir}/systemd/user-environment-generators
|
|
%{_libexecdir}/systemd/user-environment-generators/60-flatpak
|
|
%endif
|
|
%{_libexecdir}/flatpak-oci-authenticator
|
|
%{_userunitdir}/flatpak-oci-authenticator.service
|
|
%{_datadir}/dbus-1/interfaces/org.freedesktop.Flatpak.Authenticator.xml
|
|
%{_datadir}/dbus-1/services/org.flatpak.Authenticator.Oci.service
|
|
|
|
%files -n system-user-flatpak
|
|
%{_sysusersdir}/system-user-flatpak.conf
|
|
|
|
%files -n %{libname}
|
|
%{_libdir}/libflatpak.so.*
|
|
|
|
%files -n typelib-1_0-Flatpak-1_0
|
|
%{_libdir}/girepository-1.0/Flatpak-1.0.typelib
|
|
|
|
%files zsh-completion
|
|
%dir %{_datadir}/zsh/site-functions
|
|
%{_datadir}/zsh/site-functions/_flatpak
|
|
|
|
%files devel
|
|
%{_libdir}/pkgconfig/flatpak.pc
|
|
%{_datadir}/gtk-doc/
|
|
%{_includedir}/%{name}/
|
|
%{_libdir}/libflatpak.so
|
|
%{_datadir}/gir-1.0/Flatpak-1.0.gir
|
|
|
|
%changelog
|