commit fd5d12dd2c3020fa4539feb83369e491fb4e4c57be00571ef46b7b82f5e82515 Author: Adrian Schröter Date: Wed Aug 7 17:08:09 2024 +0200 Sync from SUSE:SLFO:Main ulp-macros revision 03776afb8e915a54f8f93531f38b7033 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/ulp-macros.changes b/ulp-macros.changes new file mode 100644 index 0000000..30df3fe --- /dev/null +++ b/ulp-macros.changes @@ -0,0 +1,9 @@ +------------------------------------------------------------------- +Mon Jul 22 15:55:53 UTC 2024 - Giuliano Belinassi + +- Fix FIXME and warnings. + +------------------------------------------------------------------- +Wed Jun 14 15:37:23 UTC 2023 - Giuliano Belinassi + +- First release. diff --git a/ulp-macros.spec b/ulp-macros.spec new file mode 100644 index 0000000..833c500 --- /dev/null +++ b/ulp-macros.spec @@ -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 diff --git a/ulp.macros b/ulp.macros new file mode 100644 index 0000000..427682a --- /dev/null +++ b/ulp.macros @@ -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