Initial import to c9s from internal module

Resolves: RHEL-69789
This commit is contained in:
Tomas Popela 2024-12-18 09:17:35 +01:00
parent 643183e04b
commit a790571422
7 changed files with 298 additions and 0 deletions

2
distutils.cfg Normal file
View File

@ -0,0 +1,2 @@
[install]
prefix=/app

129
flatpak-rpm-macros.spec Normal file
View File

@ -0,0 +1,129 @@
Name: flatpak-rpm-macros
Version: 34
Release: 1%{?dist}
Summary: Macros for building RPMS for flatpaks
Source0: macros.flatpak
Source1: distutils.cfg
Source2: flatpak.xml
Source3: fontconfig-flatpak.prov
License: MIT
# Buildrequire these to satisfy Pyton byte-compilation hooks
BuildRequires: python3
%description
The macros in this package set up the RPM build environment so built
applications install in /app rather than /usr. This package is meant
only for installation in buildroots for modules that will be packaged
as Flatpaks.
%prep
%build
%install
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
install -t $RPM_BUILD_ROOT%{_sysconfdir}/rpm -p -m 644 %{SOURCE0}
for v in 3.9 ; do
mkdir -p $RPM_BUILD_ROOT%{_libdir}/python$v/distutils/
install -t $RPM_BUILD_ROOT%{_libdir}/python$v/distutils/ %{SOURCE1}
done
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xmvn/config.d
install -t $RPM_BUILD_ROOT%{_datadir}/xmvn/config.d -m 644 %{SOURCE2}
mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}
install -t $RPM_BUILD_ROOT%{_rpmconfigdir} -m 755 %{SOURCE3}
%files
# The location in sysconfdir contradicts
# https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_of_Additional_RPM_Macros
# but I believe is necessary to properly override macros that are otherwise set.
%{_sysconfdir}/rpm/
%{_libdir}/python*/distutils/distutils.cfg
%{_datadir}/xmvn/config.d/flatpak.xml
%{_rpmconfigdir}/fontconfig-flatpak.prov
%changelog
* Tue Jun 29 2021 Kalev Lember <klember@redhat.com> - 34-1
- Override RPM's fontconfig auto-provide to handle /app/share/fonts
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 33-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Sep 19 2020 Kalev Lember <klember@redhat.com> - 33-2
- Redefine __python2 macro to point to /app/bin/python2
* Mon Sep 14 2020 Kalev Lember <klember@redhat.com> - 33-1
- Update %%python_sitearch for python-3.9
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 32-4
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 32-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Mar 18 2020 Kalev Lember <klember@redhat.com> - 32-2
- Remove Python 2 support (#1805232)
* Wed Mar 18 2020 Stephan Bergmann <sbergman@redhat.com> - 32-1
- Let xmvn_install store artifacts under /app
* Thu Feb 06 2020 David King <amigadave@amigadave.com> - 29-12
- Update %%python_sitearch for python-3.8 (#1799346)
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 29-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 29-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jun 20 2019 Kalev Lember <klember@redhat.com> - 29-9
- Use optflags, rather than __global_compiler_flags
* Thu Apr 04 2019 Stephan Bergmann <sbergman@redhat.com> - 29-8
- Add CFLAGS and CXXFLAGS to macros.flatpak, to match LDFLAGS
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 29-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Sep 27 2018 Owen Taylor <otaylor@redhat.com> - 29-6
- Fix accidentally not installing the macro file
* Thu Sep 27 2018 Owen Taylor <otaylor@redhat.com> - 29-5
- Install a distutils.cfg to redirect installation of Python packages to /app
this makes the package no longer noarch because the file is in
/usr/lib or /usr/lib64.
* Tue Sep 25 2018 Owen Taylor <otaylor@redhat.com> - 29-4
- Remove space in -L <libdir>
* Thu Sep 20 2018 Owen Taylor <otaylor@redhat.com> - 29-3
- Extend set of overriden Python macros
* Wed Sep 19 2018 Owen Taylor <otaylor@redhat.com> - 29-2
- Improve LDFLAGS flags handling in macros.flatpak
* Sat Sep 8 2018 Owen Taylor <otaylor@redhat.com> - 29-1
- Instead of defining %%app to true, define %%flatpak to 1
- Update %%python_sitearch for python-3.7
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 27-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 27-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 27-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 27-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Jun 13 2017 Owen Taylor <otaylor@redhat.com> - 27-2
See https://bugzilla.redhat.com/show_bug.cgi?id=1460076
- Wrap description lines
- Own /etc/rpm, to avoid requiring rpm package
- Preserve timestamp on installation
* Wed May 31 2017 Owen Taylor <otaylor@redhat.com> - 27-1
- Initial version, based on work by Alex Larsson <alexl@redhat.com>

72
flatpak.xml Normal file
View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="US-ASCII"?>
<configuration xmlns="http://fedorahosted.org/xmvn/CONFIG/2.0.0">
<repositories>
<!-- Repositories flatpak-jar and flatpak-jni are copies of base-jar and
base-jni from /usr/share/xmvn/configuration.xml (javapackages-tools),
with "usr" replaced by "app": -->
<repository>
<id>flatpak-jar</id>
<type>jpp</type>
<properties>
<root>app/share/java</root>
</properties>
<filter>
<or>
<and>
<equals>
<extension/>
<string>jar</string>
</equals>
<not>
<equals>
<property>native</property>
<string>true</string>
</equals>
</not>
</and>
<!-- Maybe /app/share/java is not the best place to store
ZIP files, but packages are doing so anyways and
allowing ZIPs here simplifies packaging. TODO: find a
better location for ZIP files. -->
<equals>
<extension/>
<string>zip</string>
</equals>
</or>
</filter>
</repository>
<repository>
<id>flatpak-jni</id>
<type>jpp</type>
<properties>
<root>app/lib/java</root>
</properties>
<filter>
<and>
<equals>
<extension/>
<string>jar</string>
</equals>
<equals>
<property>native</property>
<string>true</string>
</equals>
</and>
</filter>
</repository>
<!-- Repository install overrides the repository of the same name from
/usr/share/xmvn/configuration.xml (javapackages-tools), prepending the
above flatpak-jar and flatpak-jni: -->
<repository>
<id>install</id>
<type>compound</type>
<configuration>
<repositories>
<repository>flatpak-jar</repository>
<repository>flatpak-jni</repository>
<repository>base-install</repository>
</repositories>
</configuration>
</repository>
</repositories>
</configuration>

24
fontconfig-flatpak.prov Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/bash
#
# Script to install in:
# /usr/lib/rpm/redhat/find-provides.d
#
# Transform font files into RPM provides
# Requires fontconfig >= 2.6.90
#
# Author: Behdad Esfahbod <behdad@redhat.com>
# Based on other provides scripts from RPM
#
fcquery=/usr/bin/fc-query
if [ ! -x $fcquery ]; then
cat > /dev/null
exit 0
fi
# filter out anything outside main fontconfig paths
grep '/\(usr\|app\)/share/fonts/' |
while read fn; do
$fcquery --format '%{=pkgkit}' "${fn}" 2> /dev/null
done

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

65
macros.flatpak Normal file
View File

@ -0,0 +1,65 @@
%flatpak 1
%_prefix /app
%_sysconfdir %{_prefix}/etc
%build_ldflags -Wl,-z,relro %{_ld_as_needed_flags} %{_ld_symbols_flags} %{_hardened_ldflags} %[ "%{toolchain}" == "clang" ? "%{?_lto_cflags}" : "" ] -L%{_libdir}
%python3_sitelib %{_prefix}/lib/python3.9/site-packages
%python3_sitearch %{_libdir}/python3.9/site-packages
%___build_pre \
RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
RPM_OPT_FLAGS=\"%{optflags}\"\
RPM_LD_FLAGS=\"%{?__global_ldflags}\"\
RPM_ARCH=\"%{_arch}\"\
RPM_OS=\"%{_os}\"\
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_LD_FLAGS RPM_ARCH RPM_OS\
RPM_DOC_DIR=\"%{_docdir}\"\
export RPM_DOC_DIR\
RPM_PACKAGE_NAME=\"%{name}\"\
RPM_PACKAGE_VERSION=\"%{version}\"\
RPM_PACKAGE_RELEASE=\"%{release}\"\
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
LANG=C\
export LANG\
unset CDPATH DISPLAY ||:\
%{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
export RPM_BUILD_ROOT}\
%{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\
export CLASSPATH}\
CONFIG_SITE=${CONFIG_SITE:-NONE}\
export CONFIG_SITE\
ACLOCAL_PATH="%{_datadir}/aclocal:%{_usr}/share/aclocal"\
export ACLOCAL_PATH\
CPATH="%{_prefix}/include"\
export CPATH\
CPLUS_INCLUDE_PATH="%{_prefix}/include"\
export CPLUS_INCLUDE_PATH\
C_INCLUDE_PATH="%{_prefix}/include"\
export C_INCLUDE_PATH\
GI_TYPELIB_PATH="%{_libdir}/girepository-1.0:%{_usr}/%{_lib}/girepository-1.0"\
export GI_TYPELIB_PATH\
INFOPATH="%{_datadir}/info"\
export INFOPATH\
MANPATH="%{_datadir}/man:"\
export MANPATH\
OBJC_INCLUDE_PATH="%{_prefix}/include"\
export OBJC_INCLUDE_PATH\
PATH="%{_bindir}:%{_usr}/local/sbin:%{_usr}/bin:/bin:%{_usr}/sbin:/sbin"\
PKG_CONFIG_GLADEUI_2_0_CATALOGDIR="%{_datadir}/glade/catalogs"\
export PKG_CONFIG_GLADEUI_2_0_CATALOGDIR\
PKG_CONFIG_PATH="%{_libdir}/pkgconfig:%{_datadir}/pkgconfig:%{_usr}/%{_lib}/pkgconfig:%{_usr}/share/pkgconfig"\
export PKG_CONFIG_PATH\
XDG_CONFIG_DIRS="%{_sysconfdir}/xdg:/etc/xdg"\
export XDG_CONFIG_DIRS\
XDG_DATA_DIRS="%{_datadir}:%{_usr}/local/share:%{_usr}/share"\
export XDG_DATA_DIRS\
GVFS_REMOTE_VOLUME_MONITOR_IGNORE="1"\
export GVFS_REMOTE_VOLUME_MONITOR_IGNORE\
\
%{verbose:set -x}%{!verbose:exec > /dev/null}\
umask 022\
cd \"%{u2p:%{_builddir}}\"\
# Override /usr/lib/rpm/fontconfig.prov with a version that also handles fonts
# in /app/share/fonts
%__font_provides %{_rpmconfigdir}/fontconfig-flatpak.prov

0
sources Normal file
View File