Sync from SUSE:SLFO:Main ulp-macros revision 03776afb8e915a54f8f93531f38b7033

This commit is contained in:
Adrian Schröter 2024-08-07 17:08:09 +02:00
commit fd5d12dd2c
4 changed files with 101 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

9
ulp-macros.changes Normal file
View File

@ -0,0 +1,9 @@
-------------------------------------------------------------------
Mon Jul 22 15:55:53 UTC 2024 - Giuliano Belinassi <giuliano.belinassi@suse.com>
- Fix FIXME and warnings.
-------------------------------------------------------------------
Wed Jun 14 15:37:23 UTC 2023 - Giuliano Belinassi <giuliano.belinassi@suse.com>
- First release.

44
ulp-macros.spec Normal file
View File

@ -0,0 +1,44 @@
#
# spec file for package ulp-macros
#
# Copyright (c) 2023 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/
#
Name: ulp-macros
Version: 1.0
Release: 0
Summary: Macros for enabling Userspace Live Patching into processes
URL: https://github.com/SUSE/libpulp
License: LGPL-2.1-or-later
Group: Development
Source1: ulp.macros
BuildArch: noarch
%description
This package contain macros for enabling Userspace Live Patching into packages
%prep
%build
%install
install -D -m 0644 %{S:1} %{buildroot}%{_rpmmacrodir}/macros.ulp
%files
%{_rpmmacrodir}/macros.ulp
%check
%changelog

25
ulp.macros Normal file
View File

@ -0,0 +1,25 @@
# Do the necessary checks in order to enable livepatching support.
# Enable livepatching support for SLE15-SP4 onwards. It requires
# compiler support introduced there.
# Currently only supported on x86_64.
# Expand to the necessary livepatching compilation flags if the macro
# livepatching is defined in the spec file.
%cflags_livepatching %{lua: if rpm.expand("%livepatchable") == "1" then if rpm.expand("%_arch") == "x86_64" then print("-fpatchable-function-entry=16,14 -fdump-ipa-clones") end end}
%tar_lp_basename %{name}-livepatch-%{version}-%{release}
%tar_lp_package_name %{tar_lp_basename}.%{_arch}.tar.xz
%clones_dest_dir %{tar_lp_basename}/%{_arch}
# Ipa-clones are files generated by gcc which logs changes made across
# functions, and we need to know such changes to build livepatches
# correctly. These files are intended to be used by the livepatch
# developers and may be retrieved by using `osc getbinaries`.
%pack_ipa_dumps \
%if 0%{?livepatchable} && "%{_arch}" == "x86_64" \
mkdir -p ipa-clones/%{clones_dest_dir} \
find . -name "*.ipa-clones" ! -empty -exec cp -t ipa-clones/%{clones_dest_dir} --parents {} + \
tar -cJf %{tar_lp_package_name} -C ipa-clones --owner root --group root --sort name %{tar_lp_basename} \
cp %{tar_lp_package_name} %{_topdir}/OTHER \
%endif