#
# spec file for package rpm-config-SUSE
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2018 Neal Gompa <ngompa13@gmail.com>.
#
# 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/
#


# ignore the explicit bash requires from the kernel mod scripts
%define __requires_exclude ^/bin/bash$
Name:           rpm-config-SUSE
Version:        20241031
Release:        1.2
Summary:        SUSE specific RPM configuration files
License:        GPL-2.0-or-later
Group:          System/Packages
URL:            https://github.com/openSUSE/rpm-config-SUSE
Source:         %{name}-%{version}.tar.zst
BuildRequires:  zstd
#!BuildIgnore:  rpm-config-SUSE
# RPM owns the directories we need
Requires:       rpm
BuildArch:      noarch

%description
This package contains the RPM configuration data for the SUSE and
openSUSE distribution families.

%prep
%setup -q

%build
# Set up the SUSE Linux version macros
sed -e 's/@suse_version@/%{?suse_version}%{!?suse_version:0}/' \
    -e 's/@sles_version@/%{?sles_version}%{!?sles_version:0}/' \
    -e 's/@ul_version@/%{?ul_version}%{!?ul_version:0}/' \
    -e '/@is_opensuse@%{?is_opensuse:nomatch}/d' \
    -e 's/@is_opensuse@/%{?is_opensuse}%{!?is_opensuse:0}/' \
%if 0%{?is_opensuse}
    -e '/@sle_version@%{?sle_version:nomatch}/d' \
    -e 's/@sle_version@/%{?sle_version}%{!?sle_version:0}/' \
%else
    -e '/@sle_version@/d' \
%endif
  < suse_macros.in > suse_macros

%if 0%{?is_opensuse}
# use latest build date of BuildRequires as reference and go to January 1st three years back - the + 6 * 3600 is to match exactly the previous value of 2020-01-01 00:00 as leap-years cause some hours of offset
trimdate=$(rpm -qa --qf %{BUILDTIME}\\n |sort -n|tail -1)
trimdate=$(( (trimdate / 31557600 - 3) * 31557600 + 6 * 3600 ))
cat <<EOF > macros.d/macros.opensuse
# trim binary changelogs to include roughly 3 years
# maxnum,cuttime,minnum
%%_binarychangelogtrim 0,$trimdate,10
EOF
%endif

%install
# Install SUSE vendor macros and rpmrc
mkdir -p %{buildroot}%{_rpmconfigdir}/suse
cp -a suse_macros %{buildroot}%{_rpmconfigdir}/suse/macros

# Install vendor dependency generators
cp -a fileattrs %{buildroot}%{_rpmconfigdir}
cp -a scripts/* %{buildroot}%{_rpmconfigdir}
cp -a macros.d %{buildroot}%{_rpmconfigdir}

%files
%license COPYING
%doc README.md
%{_rpmconfigdir}/suse/
%{_rpmconfigdir}/macros.d/macros.*
%{_rpmconfigdir}/fileattrs/*
%{_rpmconfigdir}/brp-suse
%{_rpmconfigdir}/firmware.prov
%{_rpmconfigdir}/sysvinitdeps.sh
%{_rpmconfigdir}/locale.prov
# kmod deps
%{_rpmconfigdir}/find-provides.ksyms
%{_rpmconfigdir}/find-requires.ksyms
%{_rpmconfigdir}/find-supplements.ksyms

%changelog
* Thu Oct 31 2024 dmueller@suse.com
- Update to version 20241031:
  * Merge in changes that already happened in the package
* Thu Oct 31 2024 dmueller@suse.com
- Update to version 20241031:
  * Drop {set,verify}_permissions macros
  * Strip the explicit /bin/bash dependency for ksym macros
  * locale.prov: handle glibc-locale-base (boo#1221250)
  * lang_package: Add 'basename' option
  * %%requires_eq|ge(): Report error if package version cannot be determined
* Thu Aug  8 2024 Bernhard Wiedemann <bwiedemann@suse.com>
- Use a deterministic binarychangelogtrim
  based on build times of BuildRequires (boo#1047218)
* Wed Feb 14 2024 valentin.lefebvre@suse.com
- Update to version 20240214:
  * set_permissions: handle chkstat failure more grateful (bsc#1219736)
* Thu Jan 18 2024 lnussel@suse.com
- Update to version 20240118:
  * find-provides.ksyms: Fix ksym provides on Tumbleweed/ALP
* Mon Jan 15 2024 lnussel@suse.com
- Update to version 20240115:
  * macros.initrd: %%regenerate_initrd_post: don't fail if mkdir is unavailable
  * scripts: Do full ksyms dependencies on Tumbleweed (bsc#1215015)
* Wed Jul 12 2023 lnussel@suse.de
- Update to version 20230712:
  * Add more prjconf macros
  * update comment about _lto_cflags
  * drop %%usrmerged macro (boo#1206798)
  * Fix SLE sbat macros used on Leap (bsc#1198458)
* Mon Sep 26 2022 lnussel@suse.de
- Update to version 20220926:
  * Revert macros.debuginfo and prefer a direct rpm patch
  * Fix kernel builds after #59
  * Redefine %%__debug_install_post to simplify debuginfo setup
  * Fix bug not using custom name for summary and description in language packages (boo#1137381)
* Thu Apr 21 2022 dmueller@suse.com
- Update to version 20220421:
  * Automatically trim opensuse changelogs to the last 3 years
  * use zstd for tarball compression
* Thu Apr 14 2022 lnussel@suse.de
- Update to version 20220414:
  * add SBAT values (boo#1193282)
  * Explain that rpm-config-SUSE covers also openSUSE
* Fri Mar 18 2022 dmueller@suse.com
- Update to version 20220317:
  * set buildshell to use bash
* Sun Feb  6 2022 dmueller@suse.com
- Update to version 0.g96:
  * changes
  * Avoid bash specific construct
* Wed Jan 19 2022 lnussel@suse.de
- Update to version 0.g93:
  * locale.attr: Match all files inside LC_MESSAGES (boo#1194865)
  * remove leap_version as it's obsolete
* Thu Oct 21 2021 lnussel@suse.de
- Update to version 0.g89:
  * find-provides.ksyms: Do not set IFS - it is not needed for anything.
  * find-provides.ksyms: Fix compressed modules.
  * Allow locale directory to be named "locales" too
* Fri Jun 25 2021 lnussel@suse.de
- Update to version 0.g83:
  * Find kernel modules also in /usr/lib/modules
* Wed Jun 23 2021 gmbr3@opensuse.org
- Update to version 0.g81:
  * Support ZSTD compressed kernel modules
  * Fix a typo: povides -> provides
  * Quote %%buildroot in makeinstall macros
* Fri Mar  5 2021 lnussel@suse.de
- Update to version 0.g76:
  * Prepare usrmerge (boo#1029961)
  * scripts/find-provides.ksyms: Handle XZ compressed kernel (boo#1179251).
  * find-requires.ksyms: use "if kernel" conditional for modules-load.d
  * find-requires.ksyms: actually generate modules-load.d dependencies
  * find-requires.ksyms: Silence the awk warning
  * find-provides.ksyms: Fix kernel version test
  * find-provides.ksyms: Fix ksym-provides test
* Mon Oct 26 2020 lnussel@suse.de
- Update to version 0.g64:
  * Define a global %%_firmwaredir
  * macros.obs: remove unused macros
* Mon Aug 31 2020 lnussel@suse.de
- Update to version 0.g60:
  * Add VPATH macros from RH/Fedora to make upstream Meson macros work
  * Don't limit locale match to /usr/share/locale
* Sun Mar 22 2020 kukuk@suse.com
- Update to version 0.g56:
  * Remove grep and diffutils from fillup_prereq, replace coreutils with file requires
  * Avoid overwriting files that didn't actually change on disk
* Thu Jan 30 2020 dimstar@opensuse.org
- Update to version 0.g52:
  * Make deprecated %%install_info not fail when used within if/fi construct
* Fri Dec 27 2019 opensuse-packaging@opensuse.org
- Update to version 0.g50:
  * Add missing changelog entries and fix authors
  * Add ldconfig_scriptlets macros for RH/Fedora compatibility
  * move %%install_info to file triggers (boo#1152105)
* Wed Nov  6 2019 opensuse-packaging@opensuse.org
- Update to version 0.g45:
  * Use -flto=auto for _lto_cflags for now
* Tue Oct 29 2019 opensuse-packaging@opensuse.org
- Update to version 0.g44:
  * Sync specfile changes
  * Add _lto_cflags to suse_macros for now
* Wed Oct 16 2019 opensuse-packaging@opensuse.org
- Update to version 0.g42:
  * Add __perl macro until the perl package provides it
  * Add requires_eq and requires_ge macros
* Wed Sep 25 2019 lnussel@suse.de
- Update to version 0.g40:
  * locale.prov: also work with -locale packages
  * locale.prov: discard input in error case
* Thu Sep 19 2019 lnussel@suse.de
- Update to version 0.g37:
  * Add macros for locale provides
* Wed Aug 28 2019 opensuse-packaging@opensuse.org
- Update to version 0.g35:
  * Add _distconfdir as /usr/etc
  * find-provides.ksyms, find-requires.ksyms: cleanup kernel version handling (bsc#1145601).
  * find-requires.ksyms: fix matching of uninstalled files (bsc#1145601).
  * add changes
* Thu Aug 15 2019 msuchanek@suse.de
- Update to version 0.g32:
  * find-provides.ksyms, find-requires.ksyms: cleanup kernel version handling (bsc#1145601).
  * find-requires.ksyms: fix matching of uninstalled files (bsc#1145601).
* Wed Aug 14 2019 dimstar@opensuse.org
- Update to version 0.g29:
  * find-requires.ksyms: Move modinfo and modprobe before the ksym dependency code.
* Tue Jun 18 2019 Takashi Iwai <tiwai@suse.de>
- Add support for compressed firmware files
- Add support for compressed kernel modules
* Fri May 17 2019 Martin Wilck <mwilck@suse.com>
- macros: avoid emitting bashisms into scriptlets
* Thu Apr 25 2019 Michal Suchanek <msuchanek@suse.de>
- Provide/require modules with .ko suffix (jsc#SLE-3853)
* Wed Apr 10 2019 kukuk@suse.de
- Don't use bash syntax in %%install_info macro [bsc#1131957]
* Tue Mar  5 2019 Michal Suchanek <msuchanek@suse.de>
- Add automatic kernel module requires for module-load.d files
  (FATE#326579).
* Wed Jan 30 2019 mls@suse.de
- Added macros.d/macros.initrd
* Tue Dec 18 2018 Michal Suchanek <msuchanek@suse.de>
- Add kmod(module) provides to kernel and KMPs (FATE#326579).
* Wed Oct 24 2018 msuchanek@suse.de
- Fix superfluous TOC. dependency (bsc#1113100)
* Fri Oct 12 2018 Jan Engelhardt <jengelh@inai.de>
- Update to new snapshot 0.g8
  * %%lang_package: fix "empty Requires:" being emitted
  * %%user_group_add: do not ignore errors from useradd
* Wed Sep  5 2018 Jan Engelhardt <jengelh@inai.de>
- Update to new snapshot 0.g5
  * Modified %%lang_package to not inject -n when -r is given.
* Sat Aug 18 2018 schwab@suse.de
- Break build cycle with rpm
* Mon Feb 26 2018 Neal Gompa <ngompa13@gmail.com>
- Initial split of RPM vendor configuration from rpm package