From 8003850389a45e42c8b9d9c56171e2be3de2000c Mon Sep 17 00:00:00 2001 From: Pawel Winogrodzki Date: Thu, 2 Jan 2025 18:30:07 +0100 Subject: [PATCH 001/163] Bumped `gcr` to 3.38.1 to fix a build break. (#11738) --- SPECS-EXTENDED/gcr/gcr.signatures.json | 2 +- SPECS-EXTENDED/gcr/gcr.spec | 11 ++++++++--- cgmanifest.json | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/SPECS-EXTENDED/gcr/gcr.signatures.json b/SPECS-EXTENDED/gcr/gcr.signatures.json index 2037a1936f2..2476dbba579 100644 --- a/SPECS-EXTENDED/gcr/gcr.signatures.json +++ b/SPECS-EXTENDED/gcr/gcr.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "gcr-3.36.0.tar.xz": "aaf9bed017a2263c6145c89a1a84178f9f40f238426463e4ae486694ef5f6601" + "gcr-3.38.1.tar.xz": "17fcaf9c4a93a65fb1c72b82643bb102c13344084687d5886ea66313868d9ec9" } } diff --git a/SPECS-EXTENDED/gcr/gcr.spec b/SPECS-EXTENDED/gcr/gcr.spec index 264a850cb41..9c5e1a6117f 100644 --- a/SPECS-EXTENDED/gcr/gcr.spec +++ b/SPECS-EXTENDED/gcr/gcr.spec @@ -1,3 +1,5 @@ +%define majmin %(echo %{version} | cut -d. -f1-2) + Vendor: Microsoft Corporation Distribution: Azure Linux %ifarch %{valgrind_arches} @@ -5,13 +7,13 @@ Distribution: Azure Linux %endif Name: gcr -Version: 3.36.0 -Release: 3%{?dist} +Version: 3.38.1 +Release: 1%{?dist} Summary: A library for bits of crypto UI and parsing License: GPLv2 URL: https://wiki.gnome.org/Projects/CryptoGlue -Source0: https://download.gnome.org/sources/%{name}/3.36/%{name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/%{name}/%{majmin}/%{name}-%{version}.tar.xz BuildRequires: gettext BuildRequires: gtk-doc @@ -113,6 +115,9 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/gcr-viewer.desktop %{_libdir}/libgcr-base-3.so.* %changelog +* Mon Dec 30 2024 Pawel Winogrodzki - 3.38.1-1 +- Bump to 3.38.1 to fix missing OID header bug (GCR issue #48). + * Mon Mar 21 2022 Pawel Winogrodzki - 3.36.0-3 - Adding BR on "python3-pygments". - License verified. diff --git a/cgmanifest.json b/cgmanifest.json index e724680b882..0118e391adc 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -4100,8 +4100,8 @@ "type": "other", "other": { "name": "gcr", - "version": "3.36.0", - "downloadUrl": "https://download.gnome.org/sources/gcr/3.36/gcr-3.36.0.tar.xz" + "version": "3.38.1", + "downloadUrl": "https://download.gnome.org/sources/gcr/3.38/gcr-3.38.1.tar.xz" } } }, From 2f3f2f94e89eeff809114115bd18a8c3bd211ba6 Mon Sep 17 00:00:00 2001 From: microsoft-golang-bot <81265916+microsoft-golang-bot@users.noreply.github.com> Date: Mon, 6 Jan 2025 10:42:53 -0800 Subject: [PATCH 002/163] golang: bump Go version to 1.22.10-1 (#11312) --- SPECS/golang/golang-1.22.signatures.json | 2 +- SPECS/golang/golang-1.22.spec | 9 ++++++--- cgmanifest.json | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/SPECS/golang/golang-1.22.signatures.json b/SPECS/golang/golang-1.22.signatures.json index 0c259155811..9172f212331 100644 --- a/SPECS/golang/golang-1.22.signatures.json +++ b/SPECS/golang/golang-1.22.signatures.json @@ -2,7 +2,7 @@ "Signatures": { "go.20230802.5.src.tar.gz": "56b9e0e0c3c13ca95d5efa6de4e7d49a9d190eca77919beff99d33cd3fa74e95", "go.20240206.2.src.tar.gz": "7982e0011aa9ab95fd0530404060410af4ba57326d26818690f334fdcb6451cd", - "go1.22.9-20241202.5.src.tar.gz": "e7a4e32e0690878fd5d64c4c133134d5a4bdbcbc508a93624ce69a0642eedbd4", + "go1.22.10-20241203.4.src.tar.gz": "3a6318a0ff28798a1b1797b8d22c4f9604cae2088000c39a6875b2598ec4ab22", "go1.4-bootstrap-20171003.tar.gz": "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" } } diff --git a/SPECS/golang/golang-1.22.spec b/SPECS/golang/golang-1.22.spec index 1daa78acf6c..e854d24b5ba 100644 --- a/SPECS/golang/golang-1.22.spec +++ b/SPECS/golang/golang-1.22.spec @@ -1,7 +1,7 @@ %global goroot %{_libdir}/golang %global gopath %{_datadir}/gocode -%global ms_go_filename go1.22.9-20241202.5.src.tar.gz -%global ms_go_revision 2 +%global ms_go_filename go1.22.10-20241203.4.src.tar.gz +%global ms_go_revision 1 %global go_priority %(echo %{version}.%{ms_go_revision} | tr -d .) %ifarch aarch64 %global gohostarch arm64 @@ -15,7 +15,7 @@ %define __find_requires %{nil} Summary: Go Name: golang -Version: 1.22.9 +Version: 1.22.10 Release: 1%{?dist} License: BSD-3-Clause Vendor: Microsoft Corporation @@ -162,6 +162,9 @@ fi %{_bindir}/* %changelog +* Wed Dec 04 2024 Microsoft Golang Bot - 1.22.10-1 +- Bump version to 1.22.10-1 + * Tue Dec 03 2024 Microsoft Golang Bot - 1.22.9-1 - Bump version to 1.22.9-2 diff --git a/cgmanifest.json b/cgmanifest.json index 0118e391adc..baa0bcbf1aa 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -4600,8 +4600,8 @@ "type": "other", "other": { "name": "golang", - "version": "1.22.9", - "downloadUrl": "https://github.com/microsoft/go/releases/download/v1.22.9-2/go1.22.9-20241202.5.src.tar.gz" + "version": "1.22.10", + "downloadUrl": "https://github.com/microsoft/go/releases/download/v1.22.10-1/go1.22.10-20241203.4.src.tar.gz" } } }, From 2e7669c3f5c4c93e9100a6b1a86865e7f6b48f41 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Tue, 7 Jan 2025 15:06:53 -0800 Subject: [PATCH 003/163] [AUTO-CHERRYPICK] Fixing RPM macros check. - branch 3.0-dev (#11797) Co-authored-by: Pawel Winogrodzki --- .github/workflows/check-manifests.yml | 4 +++- .github/workflows/check-package-cgmanifest.yml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-manifests.yml b/.github/workflows/check-manifests.yml index a18ed1824bd..e2d4aafa507 100644 --- a/.github/workflows/check-manifests.yml +++ b/.github/workflows/check-manifests.yml @@ -21,7 +21,9 @@ jobs: # This PR runner uses an older Ubuntu with rpm version 4.17, which doesn't understand some newer macros like %bcond - name: Define missing rpm macros run: | - [[ -n $(rpm --eval '%bcond test 1') ]] && echo '%bcond() %[ (%{2}) ? "%{expand:%%bcond_without %{1}}" : "%{expand:%%bcond_with %{1}}" ]' > ~/.rpmmacros + if [[ -n $(rpm --eval '%bcond test 1') ]]; then + echo '%bcond() %[ (%{2}) ? "%{expand:%%bcond_without %{1}}" : "%{expand:%%bcond_with %{1}}" ]' > ~/.rpmmacros + fi - name: Check x86_64 manifests run: | diff --git a/.github/workflows/check-package-cgmanifest.yml b/.github/workflows/check-package-cgmanifest.yml index 59b72371c38..98e7cf1fdf5 100644 --- a/.github/workflows/check-package-cgmanifest.yml +++ b/.github/workflows/check-package-cgmanifest.yml @@ -22,7 +22,9 @@ jobs: # This PR runner uses an older Ubuntu with rpm version 4.17, which doesn't understand some newer macros like %bcond - name: Define missing rpm macros run: | - [[ -n $(rpm --eval '%bcond test 1') ]] && echo '%bcond() %[ (%{2}) ? "%{expand:%%bcond_without %{1}}" : "%{expand:%%bcond_with %{1}}" ]' > ~/.rpmmacros + if [[ -n $(rpm --eval '%bcond test 1') ]]; then + echo '%bcond() %[ (%{2}) ? "%{expand:%%bcond_without %{1}}" : "%{expand:%%bcond_with %{1}}" ]' > ~/.rpmmacros + fi - name: Get base commit for PRs if: ${{ github.event_name == 'pull_request' }} From f4e2c8011d09720ad2dca4082ef9f442023fbd9c Mon Sep 17 00:00:00 2001 From: Sandeep Karambelkar Date: Wed, 8 Jan 2025 14:05:50 +0530 Subject: [PATCH 004/163] Fix "certmonger" extended package to make it available for linkedin - P0 work item 52967653 (#11351) --- SPECS-EXTENDED/certmonger/certmonger.signatures.json | 4 ++-- SPECS-EXTENDED/certmonger/certmonger.spec | 11 +++++++---- cgmanifest.json | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/SPECS-EXTENDED/certmonger/certmonger.signatures.json b/SPECS-EXTENDED/certmonger/certmonger.signatures.json index 5f909aff2f6..ffc7373888e 100644 --- a/SPECS-EXTENDED/certmonger/certmonger.signatures.json +++ b/SPECS-EXTENDED/certmonger/certmonger.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "certmonger-0.79.13.tar.gz": "70cdfb266ef51a0bc9ea4f84dcc9cea1f8869d8f7eb846208489b3782bb53d75" + "certmonger-0.79.20.tar.gz": "23645a5c1b284d73df448dbb97366c1b6e639223fc9465e7834fa5c5fef3f01e" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/certmonger/certmonger.spec b/SPECS-EXTENDED/certmonger/certmonger.spec index 89c30199e7b..99c90f09e7d 100644 --- a/SPECS-EXTENDED/certmonger/certmonger.spec +++ b/SPECS-EXTENDED/certmonger/certmonger.spec @@ -12,13 +12,13 @@ Distribution: Azure Linux %bcond_with xmlrpc Name: certmonger -Version: 0.79.13 -Release: 2%{?dist} +Version: 0.79.20 +Release: 1%{?dist} Summary: Certificate status monitor and PKI enrollment client -License: GPLv3+ +License: GPLv3 or later (with an exception that it can be linked with OpenSSL). URL: http://pagure.io/certmonger/ -Source0: http://releases.pagure.org/certmonger/certmonger-%{version}.tar.gz +Source0: https://pagure.io/certmonger/archive/%{version}/certmonger-%{version}.tar.gz #Source1: http://releases.pagure.org/certmonger/certmonger-%%{version}.tar.gz.sig BuildRequires: autoconf @@ -238,6 +238,9 @@ exit 0 %endif %changelog +* Mon Dec 10 2024 Sandeep Karambelkar - 0.79.15-1 +- Update to upstream 0.79.20 to fix build issues with certmonger. Verified license. + * Tue Jun 22 2021 Thomas Crain - 0.79.13-2 - Initial CBL-Mariner import from Fedora 32 (license: MIT). - Add build-time requirement on systemd-devel for systemd pkgconfig files diff --git a/cgmanifest.json b/cgmanifest.json index baa0bcbf1aa..a89ce2a4c56 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -1567,8 +1567,8 @@ "type": "other", "other": { "name": "certmonger", - "version": "0.79.13", - "downloadUrl": "http://releases.pagure.org/certmonger/certmonger-0.79.13.tar.gz" + "version": "0.79.20", + "downloadUrl": "https://pagure.io/certmonger/archive/0.79.20/certmonger-0.79.20.tar.gz" } } }, From be5bb3f242a8be8601ecb7b4b7e517b689382b12 Mon Sep 17 00:00:00 2001 From: Kevin Lockwood <57274670+kevin-b-lockwood@users.noreply.github.com> Date: Wed, 8 Jan 2025 00:44:11 -0800 Subject: [PATCH 005/163] Remove authselect package from SPECS-EXTENDED (#11575) --- .../authselect/authselect.signatures.json | 5 - SPECS-EXTENDED/authselect/authselect.spec | 380 ------------------ 2 files changed, 385 deletions(-) delete mode 100644 SPECS-EXTENDED/authselect/authselect.signatures.json delete mode 100644 SPECS-EXTENDED/authselect/authselect.spec diff --git a/SPECS-EXTENDED/authselect/authselect.signatures.json b/SPECS-EXTENDED/authselect/authselect.signatures.json deleted file mode 100644 index a73398ad519..00000000000 --- a/SPECS-EXTENDED/authselect/authselect.signatures.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Signatures": { - "authselect-1.2.1.tar.gz": "6f58c36d8b405da836dc9d1f44c1a22660c60f9e7ece327138d1b2492cb57749" - } -} diff --git a/SPECS-EXTENDED/authselect/authselect.spec b/SPECS-EXTENDED/authselect/authselect.spec deleted file mode 100644 index a8444aca235..00000000000 --- a/SPECS-EXTENDED/authselect/authselect.spec +++ /dev/null @@ -1,380 +0,0 @@ -# Do not terminate build if language files are empty. -%define _empty_manifest_terminate_build 0 - -Name: authselect -Version: 1.2.1 -Release: 2%{?dist} -Summary: Configures authentication and identity sources from supported profiles -Vendor: Microsoft Corporation -Distribution: Azure Linux -URL: https://github.com/authselect/authselect - -License: GPLv3+ -Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -%if 0%{?rhel} -Source1: translations.tar.gz -%endif - -%global makedir %{_builddir}/%{name}-%{version} - -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: findutils -BuildRequires: libtool -BuildRequires: m4 -BuildRequires: gcc -BuildRequires: pkgconfig -BuildRequires: pkgconfig(popt) -BuildRequires: gettext-devel -BuildRequires: po4a -BuildRequires: %{_bindir}/a2x -BuildRequires: libcmocka-devel >= 1.0.0 -BuildRequires: libselinux-devel -Requires: authselect-libs%{?_isa} = %{version}-%{release} -Suggests: sssd -Suggests: samba-winbind -Suggests: fprintd-pam -Suggests: oddjob-mkhomedir - -%description -Authselect is designed to be a replacement for authconfig but it takes -a different approach to configure the system. Instead of letting -the administrator build the PAM stack with a tool (which may potentially -end up with a broken configuration), it would ship several tested stacks -(profiles) that solve a use-case and are well tested and supported. -At the same time, some obsolete features of authconfig are not -supported by authselect. - -%package libs -Summary: Utility library used by the authselect tool -# Required by scriptlets -Requires: coreutils -Requires: findutils -Requires: gawk -Requires: grep -Requires: sed -Requires: systemd -Requires: pam >= 1.3.1-23 - -%description libs -Common library files for authselect. This package is used by the authselect -command line tool and any other potential front-ends. - -%package compat -Summary: Tool to provide minimum backwards compatibility with authconfig -Obsoletes: authconfig < 7.0.1-6 -Provides: authconfig -BuildRequires: python3-devel -Requires: authselect%{?_isa} = %{version}-%{release} -Recommends: oddjob-mkhomedir -Suggests: sssd -Suggests: realmd -Suggests: samba-winbind -# Required by scriptlets -Requires: sed - -%description compat -This package will replace %{_sbindir}/authconfig with a tool that will -translate some of the authconfig calls into authselect calls. It provides -only minimum backward compatibility and users are encouraged to migrate -to authselect completely. - -%package devel -Summary: Development libraries and headers for authselect -Requires: authselect-libs%{?_isa} = %{version}-%{release} - -%description devel -System header files and development libraries for authselect. Useful if -you develop a front-end for the authselect library. - - -%prep -%setup -q - -for p in %patches ; do - %__patch -p1 -i $p -done - -# Install RHEL translations -# It is not possible to use wildcards here so we need to use 'find' -%if 0%{?rhel} -find "%{makedir}/po" "%{makedir}/src/man/po" -name "*.po" -delete -%__rm "%{makedir}/po/LINGUAS" -%setup -T -D -a 1 -%endif - -%build -autoreconf -if -%configure --with-pythonbin="%{__python3}" -%make_build - -%check -%make_build check - -%install -%make_install - -# Find translations -%find_lang %{name} -%find_lang %{name} %{name}.8.lang --with-man -%find_lang %{name}-migration %{name}-migration.7.lang --with-man -%find_lang %{name}-profiles %{name}-profiles.5.lang --with-man - -# We want this file to contain only manual page translations -%__sed -i '/LC_MESSAGES/d' %{name}.8.lang - -# Remove .la and .a files created by libtool -find $RPM_BUILD_ROOT -name "*.la" -exec %__rm -f {} \; -find $RPM_BUILD_ROOT -name "*.a" -exec %__rm -f {} \; - -%ldconfig_scriptlets libs - -%files libs -f %{name}.lang -f %{name}-profiles.5.lang -%dir %{_sysconfdir}/authselect -%dir %{_sysconfdir}/authselect/custom -%dir %{_localstatedir}/lib/authselect -%ghost %attr(0755,root,root) %{_localstatedir}/lib/authselect/backups/ -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/dconf-db -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/dconf-locks -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/fingerprint-auth -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/nsswitch.conf -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/password-auth -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/postlogin -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/smartcard-auth -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/system-auth -%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/user-nsswitch-created -%dir %{_datadir}/authselect -%dir %{_datadir}/authselect/vendor -%dir %{_datadir}/authselect/default -%dir %{_datadir}/authselect/default/minimal/ -%dir %{_datadir}/authselect/default/nis/ -%dir %{_datadir}/authselect/default/sssd/ -%dir %{_datadir}/authselect/default/winbind/ -%{_datadir}/authselect/default/minimal/nsswitch.conf -%{_datadir}/authselect/default/minimal/password-auth -%{_datadir}/authselect/default/minimal/postlogin -%{_datadir}/authselect/default/minimal/README -%{_datadir}/authselect/default/minimal/REQUIREMENTS -%{_datadir}/authselect/default/minimal/system-auth -%{_datadir}/authselect/default/nis/dconf-db -%{_datadir}/authselect/default/nis/dconf-locks -%{_datadir}/authselect/default/nis/fingerprint-auth -%{_datadir}/authselect/default/nis/nsswitch.conf -%{_datadir}/authselect/default/nis/password-auth -%{_datadir}/authselect/default/nis/postlogin -%{_datadir}/authselect/default/nis/README -%{_datadir}/authselect/default/nis/REQUIREMENTS -%{_datadir}/authselect/default/nis/system-auth -%{_datadir}/authselect/default/sssd/dconf-db -%{_datadir}/authselect/default/sssd/dconf-locks -%{_datadir}/authselect/default/sssd/fingerprint-auth -%{_datadir}/authselect/default/sssd/nsswitch.conf -%{_datadir}/authselect/default/sssd/password-auth -%{_datadir}/authselect/default/sssd/postlogin -%{_datadir}/authselect/default/sssd/README -%{_datadir}/authselect/default/sssd/REQUIREMENTS -%{_datadir}/authselect/default/sssd/smartcard-auth -%{_datadir}/authselect/default/sssd/system-auth -%{_datadir}/authselect/default/winbind/dconf-db -%{_datadir}/authselect/default/winbind/dconf-locks -%{_datadir}/authselect/default/winbind/fingerprint-auth -%{_datadir}/authselect/default/winbind/nsswitch.conf -%{_datadir}/authselect/default/winbind/password-auth -%{_datadir}/authselect/default/winbind/postlogin -%{_datadir}/authselect/default/winbind/README -%{_datadir}/authselect/default/winbind/REQUIREMENTS -%{_datadir}/authselect/default/winbind/system-auth -%{_libdir}/libauthselect.so.* -%{_mandir}/man5/authselect-profiles.5* -%{_datadir}/doc/authselect/COPYING -%{_datadir}/doc/authselect/README.md -%license COPYING -%doc README.md - -%files compat -%{_sbindir}/authconfig -%{python3_sitelib}/authselect/ - -%files devel -%{_includedir}/authselect.h -%{_libdir}/libauthselect.so -%{_libdir}/pkgconfig/authselect.pc - -%files -f %{name}.8.lang -f %{name}-migration.7.lang -%{_bindir}/authselect -%{_mandir}/man8/authselect.8* -%{_mandir}/man7/authselect-migration.7* -%{_sysconfdir}/bash_completion.d/authselect-completion.sh - -%global validfile %{_localstatedir}/lib/rpm-state/%{name}.config-valid - -%pre libs -%__rm -f %{validfile} -if [ $1 -gt 1 ] ; then - # Remember if the current configuration is valid - %{_bindir}/authselect check &> /dev/null - if [ $? -eq 0 ]; then - touch %{validfile} - fi -fi - -exit 0 - -%posttrans libs -# Copy nsswitch.conf to user-nsswitch.conf if it was not yet created -if [ ! -f %{_localstatedir}/lib/authselect/user-nsswitch-created ]; then - %__cp -n %{_sysconfdir}/nsswitch.conf %{_sysconfdir}/authselect/user-nsswitch.conf &> /dev/null - touch %{_localstatedir}/lib/authselect/user-nsswitch-created &> /dev/null - - # If we are upgrading from older version, we want to remove these comments. - %__sed -i '/^# Generated by authselect on .*$/{$!{ - N;N # Read also next two lines - /# Generated by authselect on .*\n# Do not modify this file manually.\n/d - }}' %{_sysconfdir}/authselect/user-nsswitch.conf &> /dev/null -fi - -# If the configuration is valid and we are upgrading from older version -# we need to create these files since they were added in 1.0. -if [ -f %{validfile} ]; then - FILES="nsswitch.conf system-auth password-auth fingerprint-auth \ - smartcard-auth postlogin dconf-db dconf-locks" - - for FILE in $FILES ; do - %__cp -n %{_sysconfdir}/authselect/$FILE \ - %{_localstatedir}/lib/authselect/$FILE &> /dev/null - done - - %__rm -f %{validfile} -fi - -# Apply any changes to profiles (validates configuration first internally) -%{_bindir}/authselect apply-changes &> /dev/null - -# Enable with-sudo feature if sssd-sudo responder is enabled. RHBZ#1582111 -CURRENT=`%{_bindir}/authselect current --raw 2> /dev/null` -if [ $? -eq 0 ]; then - PROFILE=`echo $CURRENT | %__awk '{print $1;}'` - - if [ $PROFILE == "sssd" ] ; then - if %__grep -E "services[[:blank:]]*=[[:blank:]]*.*sudo" /etc/sssd/sssd.conf &> /dev/null ; then - %{_bindir}/authselect enable-feature with-sudo &> /dev/null - elif systemctl is-active sssd-sudo.service sssd-sudo.socket --quiet || systemctl is-enabled sssd-sudo.socket --quiet ; then - %{_bindir}/authselect enable-feature with-sudo &> /dev/null - fi - fi -fi - -exit 0 - -%posttrans compat -# Fix for RHBZ#1618865 -# Remove invalid lines from pwquality.conf generated by authconfig compat tool -# - previous version could write some options without value, which is invalid -# - we delete all options without value from existing file -%__sed -i -E '/^\w+=$/d' %{_sysconfdir}/security/pwquality.conf.d/10-authconfig-pwquality.conf &> /dev/null -exit 0 - -%changelog -* Fri Oct 15 2021 Pawel Winogrodzki - 1.2.1-2 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). - -* Mon May 11 2020 Pavel Březina - 1.2.1-1 -- Rebase to 1.2.1 - -* Wed Mar 4 2020 Pavel Březina - 1.2-1 -- Rebase to 1.2 - -* Mon Feb 17 2020 Pavel Březina - 1.1-7 -- fix restoring non-authselect configuration from backup - -* Wed Jan 29 2020 Pavel Březina - 1.1-6 -- cli: fix auto backup when --force is set - -* Tue Jan 28 2020 Fedora Release Engineering - 1.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Oct 03 2019 Miro Hrončok - 1.1-4 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Mon Aug 19 2019 Miro Hrončok - 1.1-3 -- Rebuilt for Python 3.8 - -* Wed Jul 24 2019 Fedora Release Engineering - 1.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jun 13 2019 Pavel Březina - 1.1-1 -- Rebase to 1.1 - -* Tue Feb 26 2019 Pavel Březina - 1.0.3-1 -- Rebase to 1.0.3 - -* Tue Feb 26 2019 Igor Gnatenko - 1.0.2-4 -- Use %ghost for files owned by authselect - -* Thu Jan 31 2019 Fedora Release Engineering - 1.0.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Dec 3 2018 Pavel Březina - 1.0.2-2 -- Resolves rhbz#1655025 (invalid backup). - -* Fri Nov 23 2018 Pavel Březina - 1.0.2-1 -- Rebase to 1.0.2 - -* Thu Sep 27 2018 Pavel Březina - 1.0.1-2 -- Require systemd instead of systemctl - -* Thu Sep 27 2018 Pavel Březina - 1.0.1-1 -- Rebase to 1.0.1 - -* Fri Sep 14 2018 Pavel Březina - 1.0-3 -- Scriptlets should no produce any error messages (RHBZ #1622272) -- Provide fix for pwquality configuration (RHBZ #1618865) - -* Thu Aug 30 2018 Adam Williamson - 1.0-2 -- Backport PR #78 to fix broken pwquality config (RHBZ #1618865) - -* Mon Aug 13 2018 Pavel Březina - 1.0-1 -- Rebase to 1.0 - -* Thu Jul 12 2018 Fedora Release Engineering - 0.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 0.4-4 -- Rebuilt for Python 3.7 - -* Mon May 14 2018 Pavel Březina - 0.4-3 -- Disable sssd as sudo rules source with sssd profile by default (RHBZ #1573403) - -* Wed Apr 25 2018 Christian Heimes - 0.4-2 -- Don't disable oddjobd.service (RHBZ #1571844) - -* Mon Apr 9 2018 Pavel Březina - 0.4-1 -- rebasing to 0.4 - -* Tue Mar 6 2018 Pavel Březina - 0.3.2-1 -- rebasing to 0.3.2 -- authselect-compat now only suggests packages, not recommends - -* Mon Mar 5 2018 Pavel Březina - 0.3.1-1 -- rebasing to 0.3.1 - -* Tue Feb 20 2018 Igor Gnatenko - 0.3-3 -- Provide authconfig - -* Tue Feb 20 2018 Igor Gnatenko - 0.3-2 -- Properly own all appropriate directories -- Remove unneeded %%defattr -- Remove deprecated Group tag -- Make Obsoletes versioned -- Remove unneeded ldconfig scriptlets - -* Tue Feb 20 2018 Pavel Březina - 0.3-1 -- rebasing to 0.3 -* Wed Feb 07 2018 Fedora Release Engineering - 0.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild -* Wed Jan 10 2018 Pavel Březina - 0.2-2 -- fix rpmlint errors -* Wed Jan 10 2018 Pavel Březina - 0.2-1 -- rebasing to 0.2 -* Mon Jul 31 2017 Jakub Hrozek - 0.1-1 -- initial packaging From db2fd142507c9436d26963429ef777ff1ac470e2 Mon Sep 17 00:00:00 2001 From: Tobias Brick <39196763+tobiasb-ms@users.noreply.github.com> Date: Wed, 8 Jan 2025 14:50:23 -0800 Subject: [PATCH 006/163] kernel: enable CONFIG_CRYPTO_DH in aarch64 (#11409) Add the dh kernel module (CONFIG_CRYPTO_DH) to the aarch64 kernel configuration. This is required for fips images, and is already present in the amd64 config, and has never been present in arm64. --- SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec | 5 ++++- SPECS-SIGNED/kernel-signed/kernel-signed.spec | 5 ++++- SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec | 5 ++++- SPECS/kernel-64k/config_aarch64 | 3 ++- SPECS/kernel-64k/kernel-64k.signatures.json | 2 +- SPECS/kernel-64k/kernel-64k.spec | 6 +++++- SPECS/kernel-headers/kernel-headers.spec | 5 ++++- SPECS/kernel/config_aarch64 | 3 ++- SPECS/kernel/kernel-uki.spec | 5 ++++- SPECS/kernel/kernel.signatures.json | 2 +- SPECS/kernel/kernel.spec | 5 ++++- toolkit/resources/manifests/package/pkggen_core_aarch64.txt | 2 +- toolkit/resources/manifests/package/pkggen_core_x86_64.txt | 2 +- toolkit/resources/manifests/package/toolchain_aarch64.txt | 2 +- toolkit/resources/manifests/package/toolchain_x86_64.txt | 4 ++-- 15 files changed, 40 insertions(+), 16 deletions(-) diff --git a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec index 993e94dfb6f..c268b01c49c 100644 --- a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec +++ b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec @@ -7,7 +7,7 @@ Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-64k-signed-%{buildarch} Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -105,6 +105,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS-SIGNED/kernel-signed/kernel-signed.spec b/SPECS-SIGNED/kernel-signed/kernel-signed.spec index 51bf71bb822..d6fedb6e483 100644 --- a/SPECS-SIGNED/kernel-signed/kernel-signed.spec +++ b/SPECS-SIGNED/kernel-signed/kernel-signed.spec @@ -10,7 +10,7 @@ Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-signed-%{buildarch} Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -145,6 +145,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec index bcf7c0c4cb1..7b3f9812e02 100644 --- a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec +++ b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec @@ -6,7 +6,7 @@ Summary: Signed Unified Kernel Image for %{buildarch} systems Name: kernel-uki-signed-%{buildarch} Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -68,6 +68,9 @@ popd /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS/kernel-64k/config_aarch64 b/SPECS/kernel-64k/config_aarch64 index f9ea766b12b..f247059a92a 100644 --- a/SPECS/kernel-64k/config_aarch64 +++ b/SPECS/kernel-64k/config_aarch64 @@ -10550,7 +10550,8 @@ CONFIG_CRYPTO_ENGINE=y # Public-key cryptography # CONFIG_CRYPTO_RSA=y -# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_DH=m +# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m # CONFIG_CRYPTO_ECDSA is not set diff --git a/SPECS/kernel-64k/kernel-64k.signatures.json b/SPECS/kernel-64k/kernel-64k.signatures.json index a935b60e887..e21cf0dd337 100644 --- a/SPECS/kernel-64k/kernel-64k.signatures.json +++ b/SPECS/kernel-64k/kernel-64k.signatures.json @@ -1,7 +1,7 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config_aarch64": "2e511edb6a5a6236c6f7307f070df422bd6032b1e572f8f44ef4134ecea7d5b7", + "config_aarch64": "3dccfc08577bfb554609e2fe6442e49a11164bc802694705c5f89e0a7d33eb37", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", diff --git a/SPECS/kernel-64k/kernel-64k.spec b/SPECS/kernel-64k/kernel-64k.spec index ff0277bfec8..305101a417b 100644 --- a/SPECS/kernel-64k/kernel-64k.spec +++ b/SPECS/kernel-64k/kernel-64k.spec @@ -25,7 +25,7 @@ Summary: Linux Kernel Name: kernel-64k Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -370,6 +370,10 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Enable dh kernel module (CONFIG_CRYPTO_DH) in aarch64 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS/kernel-headers/kernel-headers.spec b/SPECS/kernel-headers/kernel-headers.spec index 96cebd1e25c..2da0b15486e 100644 --- a/SPECS/kernel-headers/kernel-headers.spec +++ b/SPECS/kernel-headers/kernel-headers.spec @@ -14,7 +14,7 @@ Summary: Linux API header files Name: kernel-headers Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -75,6 +75,9 @@ done %endif %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS/kernel/config_aarch64 b/SPECS/kernel/config_aarch64 index e0d99388788..93fca8df27d 100644 --- a/SPECS/kernel/config_aarch64 +++ b/SPECS/kernel/config_aarch64 @@ -10560,7 +10560,8 @@ CONFIG_CRYPTO_ENGINE=y # Public-key cryptography # CONFIG_CRYPTO_RSA=y -# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_DH=m +# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m # CONFIG_CRYPTO_ECDSA is not set diff --git a/SPECS/kernel/kernel-uki.spec b/SPECS/kernel/kernel-uki.spec index 3c928626a97..acaa48645f7 100644 --- a/SPECS/kernel/kernel-uki.spec +++ b/SPECS/kernel/kernel-uki.spec @@ -13,7 +13,7 @@ Summary: Unified Kernel Image Name: kernel-uki Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -70,6 +70,9 @@ cp %{buildroot}/boot/vmlinuz-uki-%{kernelver}.efi %{buildroot}/boot/efi/EFI/Linu /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Bump release to match kernel + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Bump release to match kernel diff --git a/SPECS/kernel/kernel.signatures.json b/SPECS/kernel/kernel.signatures.json index eda9fcf8ddd..0e370626996 100644 --- a/SPECS/kernel/kernel.signatures.json +++ b/SPECS/kernel/kernel.signatures.json @@ -2,7 +2,7 @@ "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", "config": "651f9cab61a3eb370f7e6451d2115cce2c5f137f5d7e5f28234b5d07bf841d0f", - "config_aarch64": "bfb4b4344045354a2ba518d11ae81fe5e3d45e9b11253ca2e199792543a9d624", + "config_aarch64": "4ac69b47706f3d3b5f884aaa2d749bfe86dbda71f600b08bcfdf5c885fec7d2a", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", diff --git a/SPECS/kernel/kernel.spec b/SPECS/kernel/kernel.spec index 6533a6d2545..c276a1611cf 100644 --- a/SPECS/kernel/kernel.spec +++ b/SPECS/kernel/kernel.spec @@ -30,7 +30,7 @@ Summary: Linux Kernel Name: kernel Version: 6.6.57.1 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -424,6 +424,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 +- Enable dh kernel module (CONFIG_CRYPTO_DH) in aarch64 + * Sun Dec 22 2024 Ankita Pareek - 6.6.57.1-7 - Enable CONFIG_INTEL_TDX_GUEST and CONFIG_TDX_GUEST_DRIVER diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index 68985884f26..1852ea8d221 100644 --- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.aarch64.rpm -kernel-headers-6.6.57.1-7.azl3.noarch.rpm +kernel-headers-6.6.57.1-8.azl3.noarch.rpm glibc-2.38-8.azl3.aarch64.rpm glibc-devel-2.38-8.azl3.aarch64.rpm glibc-i18n-2.38-8.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index d7bf3caeb7a..5b0489f766c 100644 --- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.x86_64.rpm -kernel-headers-6.6.57.1-7.azl3.noarch.rpm +kernel-headers-6.6.57.1-8.azl3.noarch.rpm glibc-2.38-8.azl3.x86_64.rpm glibc-devel-2.38-8.azl3.x86_64.rpm glibc-i18n-2.38-8.azl3.x86_64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index c8a14aeaf25..f3f481bc74d 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -156,7 +156,7 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.aarch64.rpm kbd-debuginfo-2.2.0-2.azl3.aarch64.rpm -kernel-headers-6.6.57.1-7.azl3.noarch.rpm +kernel-headers-6.6.57.1-8.azl3.noarch.rpm kmod-30-1.azl3.aarch64.rpm kmod-debuginfo-30-1.azl3.aarch64.rpm kmod-devel-30-1.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index 06043454bd9..cc6a5502db3 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -163,8 +163,8 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.x86_64.rpm kbd-debuginfo-2.2.0-2.azl3.x86_64.rpm -kernel-cross-headers-6.6.57.1-7.azl3.noarch.rpm -kernel-headers-6.6.57.1-7.azl3.noarch.rpm +kernel-cross-headers-6.6.57.1-8.azl3.noarch.rpm +kernel-headers-6.6.57.1-8.azl3.noarch.rpm kmod-30-1.azl3.x86_64.rpm kmod-debuginfo-30-1.azl3.x86_64.rpm kmod-devel-30-1.azl3.x86_64.rpm From 183fb9ba523b7d5def45be026f31b5a1f2dd5bc9 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Thu, 9 Jan 2025 12:27:41 -0800 Subject: [PATCH 007/163] [AUTOPATCHER-kernel] Kernel upgrade to version 6.6.64.2 - branch 3.0-dev (#11832) Co-authored-by: Rachel Menge --- .../kernel-64k-signed/kernel-64k-signed.spec | 7 +++++-- SPECS-SIGNED/kernel-signed/kernel-signed.spec | 7 +++++-- .../kernel-uki-signed/kernel-uki-signed.spec | 7 +++++-- .../hyperv-daemons.signatures.json | 2 +- SPECS/hyperv-daemons/hyperv-daemons.spec | 5 ++++- SPECS/kernel-64k/config_aarch64 | 8 +++----- SPECS/kernel-64k/kernel-64k.signatures.json | 4 ++-- SPECS/kernel-64k/kernel-64k.spec | 7 +++++-- .../kernel-headers.signatures.json | 2 +- SPECS/kernel-headers/kernel-headers.spec | 7 +++++-- SPECS/kernel/config | 6 +++--- SPECS/kernel/config_aarch64 | 8 +++----- SPECS/kernel/kernel-uki.spec | 7 +++++-- SPECS/kernel/kernel.signatures.json | 6 +++--- SPECS/kernel/kernel.spec | 7 +++++-- cgmanifest.json | 16 ++++++++-------- .../manifests/package/pkggen_core_aarch64.txt | 2 +- .../manifests/package/pkggen_core_x86_64.txt | 2 +- .../manifests/package/toolchain_aarch64.txt | 2 +- .../manifests/package/toolchain_x86_64.txt | 4 ++-- toolkit/scripts/toolchain/container/Dockerfile | 2 +- .../toolchain/container/toolchain-sha256sums | 2 +- .../container/toolchain_build_temp_tools.sh | 2 +- 23 files changed, 71 insertions(+), 51 deletions(-) diff --git a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec index c268b01c49c..a560480a455 100644 --- a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec +++ b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec @@ -6,8 +6,8 @@ %define uname_r %{version}-%{release} Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-64k-signed-%{buildarch} -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -105,6 +105,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Bump release to match kernel diff --git a/SPECS-SIGNED/kernel-signed/kernel-signed.spec b/SPECS-SIGNED/kernel-signed/kernel-signed.spec index d6fedb6e483..8d7bf37732a 100644 --- a/SPECS-SIGNED/kernel-signed/kernel-signed.spec +++ b/SPECS-SIGNED/kernel-signed/kernel-signed.spec @@ -9,8 +9,8 @@ %define uname_r %{version}-%{release} Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-signed-%{buildarch} -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -145,6 +145,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Bump release to match kernel diff --git a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec index 7b3f9812e02..82111d2f806 100644 --- a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec +++ b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec @@ -5,8 +5,8 @@ %define kernelver %{version}-%{release} Summary: Signed Unified Kernel Image for %{buildarch} systems Name: kernel-uki-signed-%{buildarch} -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -68,6 +68,9 @@ popd /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Bump release to match kernel diff --git a/SPECS/hyperv-daemons/hyperv-daemons.signatures.json b/SPECS/hyperv-daemons/hyperv-daemons.signatures.json index de83d61ba93..549c12df7b4 100644 --- a/SPECS/hyperv-daemons/hyperv-daemons.signatures.json +++ b/SPECS/hyperv-daemons/hyperv-daemons.signatures.json @@ -7,6 +7,6 @@ "hypervkvpd.service": "c1bb207cf9f388f8f3cf5b649abbf8cfe4c4fcf74538612946e68f350d1f265f", "hypervvss.rules": "94cead44245ef6553ab79c0bbac8419e3ff4b241f01bcec66e6f508098cbedd1", "hypervvssd.service": "22270d9f0f23af4ea7905f19c1d5d5495e40c1f782cbb87a99f8aec5a011078d", - "kernel-6.6.57.1.tar.gz": "1b967b2dd19d13561fb28c5cf05fd35b8990a2ea70cc802c33d8dd1297a6fee3" + "kernel-6.6.64.2.tar.gz": "8b19b1d4db4add880154d1bf563625efc1b5f52e20792fc6e2628d63b74eb393" } } diff --git a/SPECS/hyperv-daemons/hyperv-daemons.spec b/SPECS/hyperv-daemons/hyperv-daemons.spec index cbf41377aa7..fb31db6708c 100644 --- a/SPECS/hyperv-daemons/hyperv-daemons.spec +++ b/SPECS/hyperv-daemons/hyperv-daemons.spec @@ -10,7 +10,7 @@ Summary: Hyper-V daemons suite Name: hyperv-daemons -Version: 6.6.57.1 +Version: 6.6.64.2 Release: 1%{?dist} License: GPLv2+ Vendor: Microsoft Corporation @@ -221,6 +221,9 @@ fi %{_sbindir}/lsvmbus %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Tue Oct 29 2024 CBL-Mariner Servicing Account - 6.6.57.1-1 - Auto-upgrade to 6.6.57.1 diff --git a/SPECS/kernel-64k/config_aarch64 b/SPECS/kernel-64k/config_aarch64 index f247059a92a..b6028476fa0 100644 --- a/SPECS/kernel-64k/config_aarch64 +++ b/SPECS/kernel-64k/config_aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.6.57.1 Kernel Configuration +# Linux/arm64 6.6.64.2 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -529,7 +529,6 @@ CONFIG_ARM64_EPAN=y # end of ARMv8.7 architectural features CONFIG_ARM64_SVE=y -CONFIG_ARM64_SME=y CONFIG_ARM64_PSEUDO_NMI=y # CONFIG_ARM64_DEBUG_PRIORITY_MASKING is not set CONFIG_RELOCATABLE=y @@ -8770,10 +8769,8 @@ CONFIG_COMMON_CLK_MT8192=y # CONFIG_COMMON_CLK_MT8192_VENCSYS is not set CONFIG_COMMON_CLK_MT8195=y CONFIG_COMMON_CLK_MT8195_APUSYS=y -CONFIG_COMMON_CLK_MT8195_AUDSYS=y CONFIG_COMMON_CLK_MT8195_IMP_IIC_WRAP=y CONFIG_COMMON_CLK_MT8195_MFGCFG=y -CONFIG_COMMON_CLK_MT8195_MSDC=y CONFIG_COMMON_CLK_MT8195_SCP_ADSP=y CONFIG_COMMON_CLK_MT8195_VDOSYS=y CONFIG_COMMON_CLK_MT8195_VPPSYS=y @@ -10411,6 +10408,8 @@ CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y CONFIG_SECURITY_LANDLOCK=y CONFIG_SECURITY_IPE=y CONFIG_IPE_BOOT_POLICY="" +CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING=y +CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING=y # # IPE Trust Providers @@ -10419,7 +10418,6 @@ CONFIG_IPE_PROP_DM_VERITY=y CONFIG_IPE_PROP_DM_VERITY_SIGNATURE=y CONFIG_IPE_PROP_FS_VERITY=y CONFIG_IPE_PROP_FS_VERITY_BUILTIN_SIG=y -CONFIG_IPE_PROP_INTENDED_PATHNAME=y # end of IPE Trust Providers CONFIG_INTEGRITY=y diff --git a/SPECS/kernel-64k/kernel-64k.signatures.json b/SPECS/kernel-64k/kernel-64k.signatures.json index e21cf0dd337..0d3ae0bd6a4 100644 --- a/SPECS/kernel-64k/kernel-64k.signatures.json +++ b/SPECS/kernel-64k/kernel-64k.signatures.json @@ -1,10 +1,10 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config_aarch64": "3dccfc08577bfb554609e2fe6442e49a11164bc802694705c5f89e0a7d33eb37", + "config_aarch64": "6f1c7d15f41c38d45b131e3fd33fa4161f732e4afa1c47fbb2aaea078fbb3183", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", - "kernel-6.6.57.1.tar.gz": "1b967b2dd19d13561fb28c5cf05fd35b8990a2ea70cc802c33d8dd1297a6fee3" + "kernel-6.6.64.2.tar.gz": "8b19b1d4db4add880154d1bf563625efc1b5f52e20792fc6e2628d63b74eb393" } } diff --git a/SPECS/kernel-64k/kernel-64k.spec b/SPECS/kernel-64k/kernel-64k.spec index 305101a417b..cb04cb8a8ae 100644 --- a/SPECS/kernel-64k/kernel-64k.spec +++ b/SPECS/kernel-64k/kernel-64k.spec @@ -24,8 +24,8 @@ Summary: Linux Kernel Name: kernel-64k -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -370,6 +370,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Enable dh kernel module (CONFIG_CRYPTO_DH) in aarch64 - Bump release to match kernel diff --git a/SPECS/kernel-headers/kernel-headers.signatures.json b/SPECS/kernel-headers/kernel-headers.signatures.json index 302a1c69051..8338b5bda0b 100644 --- a/SPECS/kernel-headers/kernel-headers.signatures.json +++ b/SPECS/kernel-headers/kernel-headers.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "kernel-6.6.57.1.tar.gz": "1b967b2dd19d13561fb28c5cf05fd35b8990a2ea70cc802c33d8dd1297a6fee3" + "kernel-6.6.64.2.tar.gz": "8b19b1d4db4add880154d1bf563625efc1b5f52e20792fc6e2628d63b74eb393" } } diff --git a/SPECS/kernel-headers/kernel-headers.spec b/SPECS/kernel-headers/kernel-headers.spec index 2da0b15486e..a66cbf22bff 100644 --- a/SPECS/kernel-headers/kernel-headers.spec +++ b/SPECS/kernel-headers/kernel-headers.spec @@ -13,8 +13,8 @@ Summary: Linux API header files Name: kernel-headers -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -75,6 +75,9 @@ done %endif %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Bump release to match kernel diff --git a/SPECS/kernel/config b/SPECS/kernel/config index b225406e6b8..66cc9df8407 100644 --- a/SPECS/kernel/config +++ b/SPECS/kernel/config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 6.6.57.1 Kernel Configuration +# Linux/x86_64 6.6.64.2 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -507,7 +507,6 @@ CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_DYNAMIC_MEMORY_LAYOUT=y CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa -# CONFIG_ADDRESS_MASKING is not set CONFIG_HOTPLUG_CPU=y # CONFIG_COMPAT_VDSO is not set # CONFIG_LEGACY_VSYSCALL_XONLY is not set @@ -7366,6 +7365,8 @@ CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y CONFIG_SECURITY_LANDLOCK=y CONFIG_SECURITY_IPE=y CONFIG_IPE_BOOT_POLICY="" +CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING=y +CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING=y # # IPE Trust Providers @@ -7374,7 +7375,6 @@ CONFIG_IPE_PROP_DM_VERITY=y CONFIG_IPE_PROP_DM_VERITY_SIGNATURE=y CONFIG_IPE_PROP_FS_VERITY=y CONFIG_IPE_PROP_FS_VERITY_BUILTIN_SIG=y -CONFIG_IPE_PROP_INTENDED_PATHNAME=y # end of IPE Trust Providers CONFIG_INTEGRITY=y diff --git a/SPECS/kernel/config_aarch64 b/SPECS/kernel/config_aarch64 index 93fca8df27d..36ca5b19c28 100644 --- a/SPECS/kernel/config_aarch64 +++ b/SPECS/kernel/config_aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.6.57.1 Kernel Configuration +# Linux/arm64 6.6.64.2 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -527,7 +527,6 @@ CONFIG_ARM64_EPAN=y # end of ARMv8.7 architectural features CONFIG_ARM64_SVE=y -CONFIG_ARM64_SME=y CONFIG_ARM64_PSEUDO_NMI=y # CONFIG_ARM64_DEBUG_PRIORITY_MASKING is not set CONFIG_RELOCATABLE=y @@ -8777,10 +8776,8 @@ CONFIG_COMMON_CLK_MT8192=y # CONFIG_COMMON_CLK_MT8192_VENCSYS is not set CONFIG_COMMON_CLK_MT8195=y CONFIG_COMMON_CLK_MT8195_APUSYS=y -CONFIG_COMMON_CLK_MT8195_AUDSYS=y CONFIG_COMMON_CLK_MT8195_IMP_IIC_WRAP=y CONFIG_COMMON_CLK_MT8195_MFGCFG=y -CONFIG_COMMON_CLK_MT8195_MSDC=y CONFIG_COMMON_CLK_MT8195_SCP_ADSP=y CONFIG_COMMON_CLK_MT8195_VDOSYS=y CONFIG_COMMON_CLK_MT8195_VPPSYS=y @@ -10421,6 +10418,8 @@ CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y CONFIG_SECURITY_LANDLOCK=y CONFIG_SECURITY_IPE=y CONFIG_IPE_BOOT_POLICY="" +CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING=y +CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING=y # # IPE Trust Providers @@ -10429,7 +10428,6 @@ CONFIG_IPE_PROP_DM_VERITY=y CONFIG_IPE_PROP_DM_VERITY_SIGNATURE=y CONFIG_IPE_PROP_FS_VERITY=y CONFIG_IPE_PROP_FS_VERITY_BUILTIN_SIG=y -CONFIG_IPE_PROP_INTENDED_PATHNAME=y # end of IPE Trust Providers CONFIG_INTEGRITY=y diff --git a/SPECS/kernel/kernel-uki.spec b/SPECS/kernel/kernel-uki.spec index acaa48645f7..55050cb5664 100644 --- a/SPECS/kernel/kernel-uki.spec +++ b/SPECS/kernel/kernel-uki.spec @@ -12,8 +12,8 @@ Summary: Unified Kernel Image Name: kernel-uki -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -70,6 +70,9 @@ cp %{buildroot}/boot/vmlinuz-uki-%{kernelver}.efi %{buildroot}/boot/efi/EFI/Linu /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Bump release to match kernel diff --git a/SPECS/kernel/kernel.signatures.json b/SPECS/kernel/kernel.signatures.json index 0e370626996..bcc30fe9a76 100644 --- a/SPECS/kernel/kernel.signatures.json +++ b/SPECS/kernel/kernel.signatures.json @@ -1,11 +1,11 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config": "651f9cab61a3eb370f7e6451d2115cce2c5f137f5d7e5f28234b5d07bf841d0f", - "config_aarch64": "4ac69b47706f3d3b5f884aaa2d749bfe86dbda71f600b08bcfdf5c885fec7d2a", + "config": "fc926acd06b82abc2a9f0618947072eba2e6913c5cbbf11d64aaf56e3f0996cc", + "config_aarch64": "27a07a9652c8dcfff7edb3134372dd0f53a9a6c8ab9c3dc5bf580ee08410bd27", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", - "kernel-6.6.57.1.tar.gz": "1b967b2dd19d13561fb28c5cf05fd35b8990a2ea70cc802c33d8dd1297a6fee3" + "kernel-6.6.64.2.tar.gz": "8b19b1d4db4add880154d1bf563625efc1b5f52e20792fc6e2628d63b74eb393" } } diff --git a/SPECS/kernel/kernel.spec b/SPECS/kernel/kernel.spec index c276a1611cf..783b97961c8 100644 --- a/SPECS/kernel/kernel.spec +++ b/SPECS/kernel/kernel.spec @@ -29,8 +29,8 @@ Summary: Linux Kernel Name: kernel -Version: 6.6.57.1 -Release: 8%{?dist} +Version: 6.6.64.2 +Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -424,6 +424,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 +- Auto-upgrade to 6.6.64.2 + * Wed Jan 08 2025 Tobias Brick - 6.6.57.1-8 - Enable dh kernel module (CONFIG_CRYPTO_DH) in aarch64 diff --git a/cgmanifest.json b/cgmanifest.json index a89ce2a4c56..f34ce796876 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -6530,8 +6530,8 @@ "type": "other", "other": { "name": "hyperv-daemons", - "version": "6.6.57.1", - "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.57.1.tar.gz" + "version": "6.6.64.2", + "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.64.2.tar.gz" } } }, @@ -8131,8 +8131,8 @@ "type": "other", "other": { "name": "kernel", - "version": "6.6.57.1", - "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.57.1.tar.gz" + "version": "6.6.64.2", + "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.64.2.tar.gz" } } }, @@ -8141,8 +8141,8 @@ "type": "other", "other": { "name": "kernel-64k", - "version": "6.6.57.1", - "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.57.1.tar.gz" + "version": "6.6.64.2", + "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.64.2.tar.gz" } } }, @@ -8151,8 +8151,8 @@ "type": "other", "other": { "name": "kernel-headers", - "version": "6.6.57.1", - "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.57.1.tar.gz" + "version": "6.6.64.2", + "downloadUrl": "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.64.2.tar.gz" } } }, diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index 1852ea8d221..3289a276433 100644 --- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.aarch64.rpm -kernel-headers-6.6.57.1-8.azl3.noarch.rpm +kernel-headers-6.6.64.2-1.azl3.noarch.rpm glibc-2.38-8.azl3.aarch64.rpm glibc-devel-2.38-8.azl3.aarch64.rpm glibc-i18n-2.38-8.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index 5b0489f766c..aa83488dcb5 100644 --- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.x86_64.rpm -kernel-headers-6.6.57.1-8.azl3.noarch.rpm +kernel-headers-6.6.64.2-1.azl3.noarch.rpm glibc-2.38-8.azl3.x86_64.rpm glibc-devel-2.38-8.azl3.x86_64.rpm glibc-i18n-2.38-8.azl3.x86_64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index f3f481bc74d..4ba96951db9 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -156,7 +156,7 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.aarch64.rpm kbd-debuginfo-2.2.0-2.azl3.aarch64.rpm -kernel-headers-6.6.57.1-8.azl3.noarch.rpm +kernel-headers-6.6.64.2-1.azl3.noarch.rpm kmod-30-1.azl3.aarch64.rpm kmod-debuginfo-30-1.azl3.aarch64.rpm kmod-devel-30-1.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index cc6a5502db3..a8dc3741122 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -163,8 +163,8 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.x86_64.rpm kbd-debuginfo-2.2.0-2.azl3.x86_64.rpm -kernel-cross-headers-6.6.57.1-8.azl3.noarch.rpm -kernel-headers-6.6.57.1-8.azl3.noarch.rpm +kernel-cross-headers-6.6.64.2-1.azl3.noarch.rpm +kernel-headers-6.6.64.2-1.azl3.noarch.rpm kmod-30-1.azl3.x86_64.rpm kmod-debuginfo-30-1.azl3.x86_64.rpm kmod-devel-30-1.azl3.x86_64.rpm diff --git a/toolkit/scripts/toolchain/container/Dockerfile b/toolkit/scripts/toolchain/container/Dockerfile index 111ff83c734..0a251cd23b9 100644 --- a/toolkit/scripts/toolchain/container/Dockerfile +++ b/toolkit/scripts/toolchain/container/Dockerfile @@ -63,7 +63,7 @@ RUN wget -nv --no-clobber --timeout=30 --continue --input-file=$LFS/tools/toolch # Disable downloading from remote sources by default. The 'toolchain-local-wget-list' generated for the above line will download from $(SOURCE_URL) # The 'toolchain-remote-wget-list' is still available and can be used as an alternate to $(SOURCE_URL) if desired. #RUN wget -nv --no-clobber --timeout=30 --continue --input-file=$LFS/tools/toolchain-remote-wget-list --directory-prefix=$LFS/sources; exit 0 -RUN wget -nv --no-clobber --timeout=30 --continue https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.57.1.tar.gz -O kernel-6.6.57.1.tar.gz --directory-prefix=$LFS/sources; exit 0 +RUN wget -nv --no-clobber --timeout=30 --continue https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/mariner-3/6.6.64.2.tar.gz -O kernel-6.6.64.2.tar.gz --directory-prefix=$LFS/sources; exit 0 USER root RUN mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} && \ diff --git a/toolkit/scripts/toolchain/container/toolchain-sha256sums b/toolkit/scripts/toolchain/container/toolchain-sha256sums index 10b5dd57a5d..79880531210 100644 --- a/toolkit/scripts/toolchain/container/toolchain-sha256sums +++ b/toolkit/scripts/toolchain/container/toolchain-sha256sums @@ -28,7 +28,7 @@ a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898 gmp-6.3.0.tar. 1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab grep-3.11.tar.xz 6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13 groff-1.23.0.tar.gz 7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057 gzip-1.13.tar.xz -1b967b2dd19d13561fb28c5cf05fd35b8990a2ea70cc802c33d8dd1297a6fee3 kernel-6.6.57.1.tar.gz +8b19b1d4db4add880154d1bf563625efc1b5f52e20792fc6e2628d63b74eb393 kernel-6.6.64.2.tar.gz 5d24e40819768f74daf846b99837fc53a3a9dcdf3ce1c2003fe0596db850f0f0 libarchive-3.7.1.tar.gz f311f8f3dad84699d0566d1d6f7ec943a9298b28f714cae3c931dfd57492d7eb libcap-2.69.tar.xz b8b45194989022a79ec1317f64a2a75b1551b2a55bea06f67704cb2a2e4690b0 libpipeline-1.5.7.tar.gz diff --git a/toolkit/scripts/toolchain/container/toolchain_build_temp_tools.sh b/toolkit/scripts/toolchain/container/toolchain_build_temp_tools.sh index 6556dfe97f4..38d410ec1e2 100755 --- a/toolkit/scripts/toolchain/container/toolchain_build_temp_tools.sh +++ b/toolkit/scripts/toolchain/container/toolchain_build_temp_tools.sh @@ -86,7 +86,7 @@ rm -rf gcc-13.2.0 touch $LFS/logs/temptoolchain/status_gcc_pass1_complete -KERNEL_VERSION="6.6.57.1" +KERNEL_VERSION="6.6.64.2" echo Linux-${KERNEL_VERSION} API Headers tar xf kernel-${KERNEL_VERSION}.tar.gz pushd CBL-Mariner-Linux-Kernel-rolling-lts-mariner-3-${KERNEL_VERSION} From d34a0b16514ab2d0de267f376c4b3ed4d8b2118a Mon Sep 17 00:00:00 2001 From: Tobias Brick <39196763+tobiasb-ms@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:48:31 -0800 Subject: [PATCH 008/163] add arm64 fips image definition (#11849) --- .../marketplace-gen2-aarch64-fips.json | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 toolkit/imageconfigs/marketplace-gen2-aarch64-fips.json diff --git a/toolkit/imageconfigs/marketplace-gen2-aarch64-fips.json b/toolkit/imageconfigs/marketplace-gen2-aarch64-fips.json new file mode 100644 index 00000000000..015a8b0ba64 --- /dev/null +++ b/toolkit/imageconfigs/marketplace-gen2-aarch64-fips.json @@ -0,0 +1,86 @@ +{ + "Disks": [ + { + "PartitionTableType": "gpt", + "MaxSize": 5000, + "Artifacts": [ + { + "Name": "cblmariner-arm64-gen2-fips", + "Type": "vhd" + } + ], + "Partitions": [ + { + "ID": "efi", + "Flags": [ + "esp", + "boot" + ], + "Start": 1, + "End": 65, + "FsType": "fat32" + }, + { + "ID": "boot", + "Start": 65, + "End": 565, + "FsType": "ext4" + }, + { + "ID": "rootfs", + "Name": "rootfs", + "Start": 565, + "End": 0, + "FsType": "ext4" + } + ] + } + ], + "SystemConfigs": [ + { + "Name": "Standard", + "BootType": "efi", + "PartitionSettings": [ + { + "ID": "efi", + "MountPoint": "/boot/efi", + "MountOptions" : "umask=0077" + }, + { + "ID": "boot", + "MountPoint": "/boot" + }, + { + "ID": "rootfs", + "MountPoint": "/" + } + ], + "PackageLists": [ + "packagelists/fips-packages.json", + "packagelists/core-packages-image-aarch64.json", + "packagelists/marketplace-tools-packages.json", + "packagelists/azurevm-packages.json", + "packagelists/hyperv-packages.json" + ], + "AdditionalFiles": { + "additionalconfigs/cloud-init.cfg": "/etc/cloud/cloud.cfg", + "additionalconfigs/chrony.cfg": "/etc/chrony.conf", + "additionalconfigs/wait-for-ptp-hyperv.conf": "/etc/systemd/system/chronyd.service.d/wait-for-ptp-hyperv.conf", + "additionalconfigs/51-ptp-hyperv.rules": "/etc/udev/rules.d/51-ptp-hyperv.rules" + }, + "PostInstallScripts": [ + { + "Path": "additionalconfigs/configure-systemd-networkd.sh" + } + ], + "KernelOptions": { + "default": "kernel" + }, + "KernelCommandLine": { + "EnableFIPS": true, + "ExtraCommandLine": "console=tty1 console=ttyAMA0 earlycon=pl011,0xeffec000 initcall_blacklist=arm_pmu_acpi_init" + }, + "Hostname": "azurelinux" + } + ] +} From 9bcfa802f05d01c2860234bc12007e92741aad89 Mon Sep 17 00:00:00 2001 From: Rachel Menge Date: Fri, 10 Jan 2025 18:24:07 -0800 Subject: [PATCH 009/163] Enable DRM Acceleration and Intel VPU (#11692) New feature. This enables the Intel VPU on x86_64. VPU stands for Versatile Processing Unit. This driver is used in the Intel Core Ultra processors to support their AI processing. This driver leans on the DRM Accel framework which requires the Direct Rendering Manager (DRM) subsystem. Since AI accelerators share many similarities with GPUs, they leverage the existing DRM infrastructure. Therefore as a result of [6e21f45] "Update CONFIG_DRM as loadable module and create sub-package for in-tree amdgpu modules", the accelerator drivers need to be packaged with the subpackage kernel-drivers-gpu. If in the generic kernel package, it will result in errors when insmod (without drm) --- SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec | 5 ++++- SPECS-SIGNED/kernel-signed/kernel-signed.spec | 5 ++++- SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec | 5 ++++- SPECS/kernel-64k/kernel-64k.spec | 5 ++++- SPECS/kernel-headers/kernel-headers.spec | 5 ++++- SPECS/kernel/config | 4 +++- SPECS/kernel/kernel-uki.spec | 5 ++++- SPECS/kernel/kernel.signatures.json | 2 +- SPECS/kernel/kernel.spec | 9 ++++++++- .../resources/manifests/package/pkggen_core_aarch64.txt | 2 +- .../resources/manifests/package/pkggen_core_x86_64.txt | 2 +- .../resources/manifests/package/toolchain_aarch64.txt | 2 +- toolkit/resources/manifests/package/toolchain_x86_64.txt | 4 ++-- 13 files changed, 41 insertions(+), 14 deletions(-) diff --git a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec index a560480a455..1ee2e809d70 100644 --- a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec +++ b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec @@ -7,7 +7,7 @@ Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-64k-signed-%{buildarch} Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -105,6 +105,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel-64k + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS-SIGNED/kernel-signed/kernel-signed.spec b/SPECS-SIGNED/kernel-signed/kernel-signed.spec index 8d7bf37732a..a2d667bd3da 100644 --- a/SPECS-SIGNED/kernel-signed/kernel-signed.spec +++ b/SPECS-SIGNED/kernel-signed/kernel-signed.spec @@ -10,7 +10,7 @@ Summary: Signed Linux Kernel for %{buildarch} systems Name: kernel-signed-%{buildarch} Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -145,6 +145,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /module_info.ld %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec index 82111d2f806..9437c910796 100644 --- a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec +++ b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec @@ -6,7 +6,7 @@ Summary: Signed Unified Kernel Image for %{buildarch} systems Name: kernel-uki-signed-%{buildarch} Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -68,6 +68,9 @@ popd /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS/kernel-64k/kernel-64k.spec b/SPECS/kernel-64k/kernel-64k.spec index cb04cb8a8ae..e7859e230b0 100644 --- a/SPECS/kernel-64k/kernel-64k.spec +++ b/SPECS/kernel-64k/kernel-64k.spec @@ -25,7 +25,7 @@ Summary: Linux Kernel Name: kernel-64k Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -370,6 +370,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS/kernel-headers/kernel-headers.spec b/SPECS/kernel-headers/kernel-headers.spec index a66cbf22bff..d8b359eab81 100644 --- a/SPECS/kernel-headers/kernel-headers.spec +++ b/SPECS/kernel-headers/kernel-headers.spec @@ -14,7 +14,7 @@ Summary: Linux API header files Name: kernel-headers Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -75,6 +75,9 @@ done %endif %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS/kernel/config b/SPECS/kernel/config index 66cc9df8407..9f5982c502e 100644 --- a/SPECS/kernel/config +++ b/SPECS/kernel/config @@ -5018,7 +5018,9 @@ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_LOGO is not set # end of Graphics support -# CONFIG_DRM_ACCEL is not set +CONFIG_DRM_ACCEL=y +# CONFIG_DRM_ACCEL_HABANALABS is not set +CONFIG_DRM_ACCEL_IVPU=m CONFIG_SOUND=m CONFIG_SND=m CONFIG_SND_TIMER=m diff --git a/SPECS/kernel/kernel-uki.spec b/SPECS/kernel/kernel-uki.spec index 55050cb5664..0f049b5286c 100644 --- a/SPECS/kernel/kernel-uki.spec +++ b/SPECS/kernel/kernel-uki.spec @@ -13,7 +13,7 @@ Summary: Unified Kernel Image Name: kernel-uki Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -70,6 +70,9 @@ cp %{buildroot}/boot/vmlinuz-uki-%{kernelver}.efi %{buildroot}/boot/efi/EFI/Linu /boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Bump release to match kernel + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/SPECS/kernel/kernel.signatures.json b/SPECS/kernel/kernel.signatures.json index bcc30fe9a76..017a1ba229d 100644 --- a/SPECS/kernel/kernel.signatures.json +++ b/SPECS/kernel/kernel.signatures.json @@ -1,7 +1,7 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config": "fc926acd06b82abc2a9f0618947072eba2e6913c5cbbf11d64aaf56e3f0996cc", + "config": "d4cc7bd42d9791716b0065a61b50ac9319172fe10a71e2aec5307fe7f7382dca", "config_aarch64": "27a07a9652c8dcfff7edb3134372dd0f53a9a6c8ab9c3dc5bf580ee08410bd27", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", diff --git a/SPECS/kernel/kernel.spec b/SPECS/kernel/kernel.spec index 783b97961c8..334ebec10e3 100644 --- a/SPECS/kernel/kernel.spec +++ b/SPECS/kernel/kernel.spec @@ -30,7 +30,7 @@ Summary: Linux Kernel Name: kernel Version: 6.6.64.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -359,6 +359,7 @@ echo "initrd of kernel %{uname_r} removed" >&2 %exclude /lib/modules/%{uname_r}/build %exclude /lib/modules/%{uname_r}/kernel/drivers/accessibility %exclude /lib/modules/%{uname_r}/kernel/drivers/gpu +%exclude /lib/modules/%{uname_r}/kernel/drivers/accel %exclude /lib/modules/%{uname_r}/kernel/sound %files docs @@ -377,6 +378,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %files drivers-gpu %defattr(-,root,root) /lib/modules/%{uname_r}/kernel/drivers/gpu +%ifarch x86_64 +/lib/modules/%{uname_r}/kernel/drivers/accel +%endif %exclude /lib/modules/%{uname_r}/kernel/drivers/gpu/drm/amd %files drivers-intree-amdgpu @@ -424,6 +428,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Fri Jan 10 2025 Rachel Menge - 6.6.64.2-2 +- Enable Intel VPU + * Thu Jan 09 2025 CBL-Mariner Servicing Account - 6.6.64.2-1 - Auto-upgrade to 6.6.64.2 diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index 3289a276433..c4349ca77a9 100644 --- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.aarch64.rpm -kernel-headers-6.6.64.2-1.azl3.noarch.rpm +kernel-headers-6.6.64.2-2.azl3.noarch.rpm glibc-2.38-8.azl3.aarch64.rpm glibc-devel-2.38-8.azl3.aarch64.rpm glibc-i18n-2.38-8.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index aa83488dcb5..3cff0662fab 100644 --- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt @@ -1,5 +1,5 @@ filesystem-1.1-21.azl3.x86_64.rpm -kernel-headers-6.6.64.2-1.azl3.noarch.rpm +kernel-headers-6.6.64.2-2.azl3.noarch.rpm glibc-2.38-8.azl3.x86_64.rpm glibc-devel-2.38-8.azl3.x86_64.rpm glibc-i18n-2.38-8.azl3.x86_64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index 4ba96951db9..eeb45d62e22 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -156,7 +156,7 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.aarch64.rpm kbd-debuginfo-2.2.0-2.azl3.aarch64.rpm -kernel-headers-6.6.64.2-1.azl3.noarch.rpm +kernel-headers-6.6.64.2-2.azl3.noarch.rpm kmod-30-1.azl3.aarch64.rpm kmod-debuginfo-30-1.azl3.aarch64.rpm kmod-devel-30-1.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index a8dc3741122..4c76101782d 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -163,8 +163,8 @@ intltool-0.51.0-7.azl3.noarch.rpm itstool-2.0.7-1.azl3.noarch.rpm kbd-2.2.0-2.azl3.x86_64.rpm kbd-debuginfo-2.2.0-2.azl3.x86_64.rpm -kernel-cross-headers-6.6.64.2-1.azl3.noarch.rpm -kernel-headers-6.6.64.2-1.azl3.noarch.rpm +kernel-cross-headers-6.6.64.2-2.azl3.noarch.rpm +kernel-headers-6.6.64.2-2.azl3.noarch.rpm kmod-30-1.azl3.x86_64.rpm kmod-debuginfo-30-1.azl3.x86_64.rpm kmod-devel-30-1.azl3.x86_64.rpm From e495db5c9146ab13a05bcd825d8052e365d5de29 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 07:51:51 -0800 Subject: [PATCH 010/163] [AUTO-CHERRYPICK] socat: address CVE-2024-54661 - branch 3.0-dev (#11870) Co-authored-by: Muhammad Falak R Wani --- SPECS/socat/CVE-2024-54661.patch | 37 ++++++++++++++++++++++++++++++++ SPECS/socat/socat.spec | 8 +++++-- 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 SPECS/socat/CVE-2024-54661.patch diff --git a/SPECS/socat/CVE-2024-54661.patch b/SPECS/socat/CVE-2024-54661.patch new file mode 100644 index 00000000000..33c0f20e99e --- /dev/null +++ b/SPECS/socat/CVE-2024-54661.patch @@ -0,0 +1,37 @@ +From be474a81dc2d9010ac16f9690f97cf7ff68b36d7 Mon Sep 17 00:00:00 2001 +From: Muhammad Falak R Wani +Date: Sun, 29 Dec 2024 17:47:45 +0530 +Subject: [PATCH] CVE-2024-54661: Arbitrary file overwrite in readline.sh + +Link: https://repo.or.cz/socat.git/commit/4ee1f31cf80019c5907876576d6dfd49368d660f +Author: Gerhard Rieger +Signed-off-by: Muhammad Falak R Wani +--- + readline.sh | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/readline.sh b/readline.sh +index b6f8438..1045303 100755 +--- a/readline.sh ++++ b/readline.sh +@@ -22,9 +22,15 @@ if [ "$withhistfile" ]; then + else + HISTOPT= + fi +-mkdir -p /tmp/$USER || exit 1 + # + # + +-exec socat -d readline"$HISTOPT",noecho='[Pp]assword:' exec:"$PROGRAM",sigint,pty,setsid,ctty,raw,echo=0,stderr 2>/tmp/$USER/stderr2 ++if test -w .; then ++ STDERR=./socat-readline.${1##*/}.log ++ rm -f $STDERR ++else ++ STDERR=/dev/null ++fi ++ ++exec socat -d readline"$HISTOPT",noecho='[Pp]assword:' exec:"$PROGRAM",sigint,pty,setsid,ctty,raw,echo=0,stderr 2>$STDERR + +-- +2.40.1 + diff --git a/SPECS/socat/socat.spec b/SPECS/socat/socat.spec index c2c79af62c4..f1518628b22 100644 --- a/SPECS/socat/socat.spec +++ b/SPECS/socat/socat.spec @@ -1,19 +1,20 @@ Summary: Multipurpose relay (SOcket CAT) Name: socat Version: 1.7.4.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPL2 Vendor: Microsoft Corporation Distribution: Azure Linux Group: Applications/Internet URL: http://www.dest-unreach.org/socat Source0: http://www.dest-unreach.org/socat/download/%{name}-%{version}.tar.gz +Patch0: CVE-2024-54661.patch %description Socat is a command line based utility that establishes two bidirectional byte streams and transfers data between them. Because the streams can be constructed from a large set of different types of data sinks and sources (see address types), and because lots of address options may be applied to the streams, socat can be used for many different purposes. %prep -%setup -q +%autosetup -p1 %build ./configure --prefix=%{_prefix} --sysconfdir=%{_sysconfdir} @@ -36,6 +37,9 @@ make %{?_smp_mflags} test %{_mandir}/man1/* %changelog +* Sun Dec 29 2024 Muhammad Falak - 1.7.4.4-2 +- Patch CVE-2024-54661 + * Fri Oct 27 2023 CBL-Mariner Servicing Account - 1.7.4.4-1 - Auto-upgrade to 1.7.4.4 - Azure Linux 3.0 - package upgrades From 22d5fc19c8952e95a6e038613dc8244b52d9c9cb Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 07:52:40 -0800 Subject: [PATCH 011/163] [AUTO-CHERRYPICK] iperf3: address CVE-2024-53580 - branch 3.0-dev (#11869) Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> --- SPECS/iperf3/CVE-2024-53580.patch | 287 ++++++++++++++++++++++++++++++ SPECS/iperf3/iperf3.spec | 6 +- 2 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 SPECS/iperf3/CVE-2024-53580.patch diff --git a/SPECS/iperf3/CVE-2024-53580.patch b/SPECS/iperf3/CVE-2024-53580.patch new file mode 100644 index 00000000000..a91c612e31a --- /dev/null +++ b/SPECS/iperf3/CVE-2024-53580.patch @@ -0,0 +1,287 @@ +From 837c1f9389fc64938a6081517c34a749a11692b0 Mon Sep 17 00:00:00 2001 +From: Kanishk-Bansal +Date: Tue, 31 Dec 2024 09:23:23 +0000 +Subject: [PATCH] Fix CVE-2024-53580 + +--- + src/iperf_api.c | 98 +++++++++++++++++++++++------------------------ + src/iperf_error.c | 6 +-- + src/iperf_util.c | 36 +++++++++++++++++ + src/iperf_util.h | 1 + + 4 files changed, 89 insertions(+), 52 deletions(-) + +diff --git a/src/iperf_api.c b/src/iperf_api.c +index 7fb741e..bb3be92 100644 +--- a/src/iperf_api.c ++++ b/src/iperf_api.c +@@ -2308,72 +2308,72 @@ get_parameters(struct iperf_test *test) + cJSON_free(str); + } + +- if ((j_p = cJSON_GetObjectItem(j, "tcp")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "tcp", cJSON_True)) != NULL) + set_protocol(test, Ptcp); +- if ((j_p = cJSON_GetObjectItem(j, "udp")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "udp", cJSON_True)) != NULL) + set_protocol(test, Pudp); +- if ((j_p = cJSON_GetObjectItem(j, "sctp")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "sctp", cJSON_True)) != NULL) + set_protocol(test, Psctp); +- if ((j_p = cJSON_GetObjectItem(j, "omit")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "omit", cJSON_Number)) != NULL) + test->omit = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "server_affinity")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "server_affinity", cJSON_Number)) != NULL) + test->server_affinity = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "time")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "time", cJSON_Number)) != NULL) + test->duration = j_p->valueint; + test->settings->bytes = 0; +- if ((j_p = cJSON_GetObjectItem(j, "num")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "num", cJSON_Number)) != NULL) + test->settings->bytes = j_p->valueint; + test->settings->blocks = 0; +- if ((j_p = cJSON_GetObjectItem(j, "blockcount")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "blockcount", cJSON_Number)) != NULL) + test->settings->blocks = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "MSS")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "MSS", cJSON_Number)) != NULL) + test->settings->mss = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "nodelay")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "nodelay", cJSON_True)) != NULL) + test->no_delay = 1; +- if ((j_p = cJSON_GetObjectItem(j, "parallel")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "parallel", cJSON_Number)) != NULL) + test->num_streams = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "reverse")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "reverse", cJSON_True)) != NULL) + iperf_set_test_reverse(test, 1); +- if ((j_p = cJSON_GetObjectItem(j, "bidirectional")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "bidirectional", cJSON_True)) != NULL) + iperf_set_test_bidirectional(test, 1); +- if ((j_p = cJSON_GetObjectItem(j, "window")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "window", cJSON_Number)) != NULL) + test->settings->socket_bufsize = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "len")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "len", cJSON_Number)) != NULL) + test->settings->blksize = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "bandwidth")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "bandwidth", cJSON_Number)) != NULL) + test->settings->rate = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "fqrate")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "fqrate", cJSON_Number)) != NULL) + test->settings->fqrate = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "pacing_timer")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "pacing_timer", cJSON_Number)) != NULL) + test->settings->pacing_timer = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "burst")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "burst", cJSON_Number)) != NULL) + test->settings->burst = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "TOS")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "TOS", cJSON_Number)) != NULL) + test->settings->tos = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "flowlabel")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "flowlabel", cJSON_Number)) != NULL) + test->settings->flowlabel = j_p->valueint; +- if ((j_p = cJSON_GetObjectItem(j, "title")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "title", cJSON_String)) != NULL) + test->title = strdup(j_p->valuestring); +- if ((j_p = cJSON_GetObjectItem(j, "extra_data")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "extra_data", cJSON_String)) != NULL) + test->extra_data = strdup(j_p->valuestring); +- if ((j_p = cJSON_GetObjectItem(j, "congestion")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "congestion", cJSON_String)) != NULL) + test->congestion = strdup(j_p->valuestring); +- if ((j_p = cJSON_GetObjectItem(j, "congestion_used")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "congestion_used", cJSON_String)) != NULL) + test->congestion_used = strdup(j_p->valuestring); +- if ((j_p = cJSON_GetObjectItem(j, "get_server_output")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "get_server_output", cJSON_Number)) != NULL) + iperf_set_test_get_server_output(test, 1); +- if ((j_p = cJSON_GetObjectItem(j, "udp_counters_64bit")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "udp_counters_64bit", cJSON_Number)) != NULL) + iperf_set_test_udp_counters_64bit(test, 1); +- if ((j_p = cJSON_GetObjectItem(j, "repeating_payload")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "repeating_payload", cJSON_Number)) != NULL) + test->repeating_payload = 1; +- if ((j_p = cJSON_GetObjectItem(j, "zerocopy")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "zerocopy", cJSON_Number)) != NULL) + test->zerocopy = j_p->valueint; + #if defined(HAVE_DONT_FRAGMENT) +- if ((j_p = cJSON_GetObjectItem(j, "dont_fragment")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "dont_fragment", cJSON_Number)) != NULL) + test->settings->dont_fragment = j_p->valueint; + #endif /* HAVE_DONT_FRAGMENT */ + #if defined(HAVE_SSL) +- if ((j_p = cJSON_GetObjectItem(j, "authtoken")) != NULL) ++ if ((j_p = iperf_cJSON_GetObjectItemType(j, "authtoken", cJSON_String)) != NULL) + test->settings->authtoken = strdup(j_p->valuestring); + #endif //HAVE_SSL + if (test->mode && test->protocol->id == Ptcp && has_tcpinfo_retransmits()) +@@ -2532,10 +2532,10 @@ get_results(struct iperf_test *test) + i_errno = IERECVRESULTS; + r = -1; + } else { +- j_cpu_util_total = cJSON_GetObjectItem(j, "cpu_util_total"); +- j_cpu_util_user = cJSON_GetObjectItem(j, "cpu_util_user"); +- j_cpu_util_system = cJSON_GetObjectItem(j, "cpu_util_system"); +- j_sender_has_retransmits = cJSON_GetObjectItem(j, "sender_has_retransmits"); ++ j_cpu_util_total = iperf_cJSON_GetObjectItemType(j, "cpu_util_total", cJSON_Number); ++ j_cpu_util_user = iperf_cJSON_GetObjectItemType(j, "cpu_util_user", cJSON_Number); ++ j_cpu_util_system = iperf_cJSON_GetObjectItemType(j, "cpu_util_system", cJSON_Number); ++ j_sender_has_retransmits = iperf_cJSON_GetObjectItemType(j, "sender_has_retransmits", cJSON_Number); + if (j_cpu_util_total == NULL || j_cpu_util_user == NULL || j_cpu_util_system == NULL || j_sender_has_retransmits == NULL) { + i_errno = IERECVRESULTS; + r = -1; +@@ -2557,7 +2557,7 @@ get_results(struct iperf_test *test) + else if ( test->mode == BIDIRECTIONAL ) + test->other_side_has_retransmits = result_has_retransmits; + +- j_streams = cJSON_GetObjectItem(j, "streams"); ++ j_streams = iperf_cJSON_GetObjectItemType(j, "streams", cJSON_Array); + if (j_streams == NULL) { + i_errno = IERECVRESULTS; + r = -1; +@@ -2569,16 +2569,16 @@ get_results(struct iperf_test *test) + i_errno = IERECVRESULTS; + r = -1; + } else { +- j_id = cJSON_GetObjectItem(j_stream, "id"); +- j_bytes = cJSON_GetObjectItem(j_stream, "bytes"); +- j_retransmits = cJSON_GetObjectItem(j_stream, "retransmits"); +- j_jitter = cJSON_GetObjectItem(j_stream, "jitter"); +- j_errors = cJSON_GetObjectItem(j_stream, "errors"); +- j_omitted_errors = cJSON_GetObjectItem(j_stream, "omitted_errors"); +- j_packets = cJSON_GetObjectItem(j_stream, "packets"); +- j_omitted_packets = cJSON_GetObjectItem(j_stream, "omitted_packets"); +- j_start_time = cJSON_GetObjectItem(j_stream, "start_time"); +- j_end_time = cJSON_GetObjectItem(j_stream, "end_time"); ++ j_id = iperf_cJSON_GetObjectItemType(j_stream, "id", cJSON_Number); ++ j_bytes = iperf_cJSON_GetObjectItemType(j_stream, "bytes", cJSON_Number); ++ j_retransmits = iperf_cJSON_GetObjectItemType(j_stream, "retransmits", cJSON_Number); ++ j_jitter = iperf_cJSON_GetObjectItemType(j_stream, "jitter", cJSON_Number); ++ j_errors = iperf_cJSON_GetObjectItemType(j_stream, "errors", cJSON_Number); ++ j_omitted_errors = iperf_cJSON_GetObjectItemType(j_stream, "omitted_errors", cJSON_Number); ++ j_packets = iperf_cJSON_GetObjectItemType(j_stream, "packets", cJSON_Number); ++ j_omitted_packets = iperf_cJSON_GetObjectItemType(j_stream, "omitted_packets", cJSON_Number); ++ j_start_time = iperf_cJSON_GetObjectItemType(j_stream, "start_time", cJSON_Number); ++ j_end_time = iperf_cJSON_GetObjectItemType(j_stream, "end_time", cJSON_Number); + if (j_id == NULL || j_bytes == NULL || j_retransmits == NULL || j_jitter == NULL || j_errors == NULL || j_packets == NULL) { + i_errno = IERECVRESULTS; + r = -1; +@@ -2667,7 +2667,7 @@ get_results(struct iperf_test *test) + } + else { + /* No JSON, look for textual output. Make a copy of the text for later. */ +- j_server_output = cJSON_GetObjectItem(j, "server_output_text"); ++ j_server_output = iperf_cJSON_GetObjectItemType(j, "server_output_text", cJSON_String); + if (j_server_output != NULL) { + test->server_output_text = strdup(j_server_output->valuestring); + } +@@ -2676,7 +2676,7 @@ get_results(struct iperf_test *test) + } + } + +- j_remote_congestion_used = cJSON_GetObjectItem(j, "congestion_used"); ++ j_remote_congestion_used = iperf_cJSON_GetObjectItemType(j, "congestion_used", cJSON_String); + if (j_remote_congestion_used != NULL) { + test->remote_congestion_used = strdup(j_remote_congestion_used->valuestring); + } +@@ -4878,7 +4878,7 @@ iperf_json_finish(struct iperf_test *test) + + /* --json-stream, so we print various individual objects */ + if (test->json_stream) { +- cJSON *error = cJSON_GetObjectItem(test->json_top, "error"); ++ cJSON *error = iperf_cJSON_GetObjectItemType(test->json_top, "error", cJSON_String); + if (error) { + JSONStream_Output(test, "error", error); + } +diff --git a/src/iperf_error.c b/src/iperf_error.c +index 0fedf31..3cb9b45 100644 +--- a/src/iperf_error.c ++++ b/src/iperf_error.c +@@ -60,11 +60,11 @@ iperf_err(struct iperf_test *test, const char *format, ...) + if (test != NULL && test->json_output && test->json_top != NULL) + cJSON_AddStringToObject(test->json_top, "error", str); + else { +- if (pthread_mutex_lock(&(test->print_mutex)) != 0) { ++ if (test != NULL && pthread_mutex_lock(&(test->print_mutex)) != 0) { + perror("iperf_err: pthread_mutex_lock"); + } + +- if (test && test->outfile && test->outfile != stdout) { ++ if (test != NULL && test->outfile != NULL && test->outfile != stdout) { + if (ct) { + fprintf(test->outfile, "%s", ct); + } +@@ -77,7 +77,7 @@ iperf_err(struct iperf_test *test, const char *format, ...) + fprintf(stderr, "iperf3: %s\n", str); + } + +- if (pthread_mutex_unlock(&(test->print_mutex)) != 0) { ++ if (test != NULL && pthread_mutex_unlock(&(test->print_mutex)) != 0) { + perror("iperf_err: pthread_mutex_unlock"); + } + +diff --git a/src/iperf_util.c b/src/iperf_util.c +index 81e8da1..a8a32e1 100644 +--- a/src/iperf_util.c ++++ b/src/iperf_util.c +@@ -430,6 +430,42 @@ iperf_json_printf(const char *format, ...) + return o; + } + ++/********************** cJSON GetObjectItem w/ Type Helper ********************/ ++cJSON * iperf_cJSON_GetObjectItemType(cJSON * j, char * item_string, int expected_type){ ++ cJSON *j_p; ++ if((j_p = cJSON_GetObjectItem(j, item_string)) != NULL) ++ switch(expected_type){ ++ case cJSON_True: ++ if(cJSON_IsBool(j_p)) ++ return j_p; ++ else ++ iperf_err(NULL, "iperf_cJSON_GetObjectItemType mismatch %s", item_string); ++ break; ++ case cJSON_String: ++ if(cJSON_IsString(j_p)) ++ return j_p; ++ else ++ iperf_err(NULL, "iperf_cJSON_GetObjectItemType mismatch %s", item_string); ++ break; ++ case cJSON_Number: ++ if(cJSON_IsNumber(j_p)) ++ return j_p; ++ else ++ iperf_err(NULL, "iperf_cJSON_GetObjectItemType mismatch %s", item_string); ++ break; ++ case cJSON_Array: ++ if(cJSON_IsArray(j_p)) ++ return j_p; ++ else ++ iperf_err(NULL, "iperf_cJSON_GetObjectItemType mismatch %s", item_string); ++ break; ++ default: ++ iperf_err(NULL, "unsupported type"); ++ } ++ ++ return NULL; ++} ++ + /* Debugging routine to dump out an fd_set. */ + void + iperf_dump_fdset(FILE *fp, const char *str, int nfds, fd_set *fds) +diff --git a/src/iperf_util.h b/src/iperf_util.h +index b109af2..c39a1f7 100644 +--- a/src/iperf_util.h ++++ b/src/iperf_util.h +@@ -53,6 +53,7 @@ const char* get_system_info(void); + const char* get_optional_features(void); + + cJSON* iperf_json_printf(const char *format, ...); ++cJSON * iperf_cJSON_GetObjectItemType(cJSON * j_p, char * item_string, int expected_type); + + void iperf_dump_fdset(FILE *fp, const char *str, int nfds, fd_set *fds); + +-- +2.45.2 + diff --git a/SPECS/iperf3/iperf3.spec b/SPECS/iperf3/iperf3.spec index 77ae18a0319..6b5adf200cc 100644 --- a/SPECS/iperf3/iperf3.spec +++ b/SPECS/iperf3/iperf3.spec @@ -1,7 +1,7 @@ Summary: A network performance benchmark tool. Name: iperf3 Version: 3.17.1 -Release: 1%{?dist} +Release: 2%{?dist} License: BSD and MIT and Public Domain Vendor: Microsoft Corporation Distribution: Azure Linux @@ -9,6 +9,7 @@ Group: Applications/System URL: https://github.com/esnet/iperf Source0: https://github.com/esnet/iperf/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Patch1: disablepg.patch +Patch2: CVE-2024-53580.patch BuildRequires: autoconf >= 2.71 BuildRequires: automake @@ -66,6 +67,9 @@ make %{?_smp_mflags} check %{_mandir}/man3/libiperf.3.gz %changelog +* Tue Dec 31 2024 Kanishk Bansal - 3.17.1-2 +- Address CVE-2024-53580 using an upstream patch. + * Fri Aug 09 2024 Muhammad Falak - 3.17.1-1 - Update version to 3.17.1 to address CVE-2024-26306 From a46bc84774f9d7e7d8738d3362a168a9f0da1131 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:46:04 -0800 Subject: [PATCH 012/163] [AUTO-CHERRYPICK] Made `PackageBuild.yml` accept arbitrary input sources. - branch 3.0-dev (#11814) Co-authored-by: Pawel Winogrodzki --- .pipelines/prchecks/PackageBuildPRCheck.yml | 48 ++++++++++++++++--- .pipelines/templates/PackageBuild.yml | 40 ++++++---------- .../templatesWithCheckout/SodiffCheck.yml | 13 ++--- 3 files changed, 59 insertions(+), 42 deletions(-) diff --git a/.pipelines/prchecks/PackageBuildPRCheck.yml b/.pipelines/prchecks/PackageBuildPRCheck.yml index 314773cada9..5d7b1fb4e13 100644 --- a/.pipelines/prchecks/PackageBuildPRCheck.yml +++ b/.pipelines/prchecks/PackageBuildPRCheck.yml @@ -80,9 +80,11 @@ extends: # GCC fails to build as a regular package. ignoredSpecs: ["gcc"] - - script: echo "##vso[task.setvariable variable=toolchainArtifactName;isOutput=true]$(ob_artifactBaseName)" + - script: | + echo "##vso[task.setvariable variable=toolchainArtifactName;isOutput=true]$(ob_artifactBaseName)" + echo "##vso[task.setvariable variable=toolchainTarballName;isOutput=true]toolchain_built_rpms_all.tar.gz" name: "ToolchainArtifactName" - displayName: "Set variable for published artifact name" + displayName: "Set variables for published toolchain tarball" # 1. Automatic publishing won't work if 'isCustom: true' is set on the pool. We cannot do 'isCustom: false' because # then OneBranch attempts to perform additional actions (adding build tags for instance), which require additional permissions @@ -104,24 +106,38 @@ extends: isCustom: true name: ${{ configuration.agentPool }} variables: + inputArtifactsLocation: $(Agent.TempDirectory) ob_artifactBaseName: $(rpmsArtifactNameBase)_${{ configuration.name }}_$(System.JobAttempt) ob_outputDirectory: $(Build.ArtifactStagingDirectory) + outputRPMsTarballName: "rpms.tar.gz" toolchainArtifactName: $[ stageDependencies.Toolchain_${{ configuration.name }}.Build.outputs['ToolchainArtifactName.toolchainArtifactName'] ] + toolchainTarballName: $[ stageDependencies.Toolchain_${{ configuration.name }}.Build.outputs['ToolchainArtifactName.toolchainTarballName'] ] steps: + - task: DownloadPipelineArtifact@2 + displayName: "Download toolchain" + inputs: + artifact: $(toolchainArtifactName) + patterns: "**/$(toolchainTarballName)" + targetPath: $(inputArtifactsLocation) + - template: .pipelines/templates/PackageBuild.yml@self parameters: checkBuildRetries: "1" - customToolchainArtifactName: $(toolchainArtifactName) + customToolchainTarballName: $(toolchainTarballName) + inputArtifactsFolder: $(inputArtifactsLocation) isCheckBuild: true isQuickRebuildPackages: true isUseCCache: true maxCPU: "${{ configuration.maxCPUs }}" outputArtifactsFolder: $(ob_outputDirectory) + outputRPMsTarballName: $(outputRPMsTarballName) pipArtifactFeeds: "mariner/Mariner-Pypi-Feed" selfRepoName: self testSuiteName: "[${{ configuration.name }}] Package test" - - script: echo "##vso[task.setvariable variable=rpmsArtifactName;isOutput=true]$(ob_artifactBaseName)" + - script: | + echo "##vso[task.setvariable variable=rpmsArtifactName;isOutput=true]$(ob_artifactBaseName)" + echo "##vso[task.setvariable variable=rpmsTarballName;isOutput=true]$(outputRPMsTarballName)" name: "RPMsArtifactName" displayName: "Set variable for published artifact name" @@ -142,15 +158,25 @@ extends: isCustom: true name: ${{ configuration.agentPool }} variables: + inputArtifactsLocation: $(Agent.TempDirectory) ob_artifactBaseName: $(toolchainTestsArtifactNameBase)_${{ configuration.name }}_$(System.JobAttempt) ob_outputDirectory: $(Build.ArtifactStagingDirectory) testListFromToolchain: $[ stageDependencies.Toolchain_${{ configuration.name }}.Build.outputs['CalculateToolchainPackageRetestList.toolchainPackageRetestList'] ] toolchainArtifactName: $[ stageDependencies.Toolchain_${{ configuration.name }}.Build.outputs['ToolchainArtifactName.toolchainArtifactName'] ] + toolchainTarballName: $[ stageDependencies.Toolchain_${{ configuration.name }}.Build.outputs['ToolchainArtifactName.toolchainTarballName'] ] steps: + - task: DownloadPipelineArtifact@2 + displayName: "Download toolchain" + inputs: + artifact: $(toolchainArtifactName) + patterns: "**/$(toolchainTarballName)" + targetPath: $(inputArtifactsLocation) + - template: .pipelines/templates/PackageBuild.yml@self parameters: checkBuildRetries: "1" - customToolchainArtifactName: $(toolchainArtifactName) + customToolchainTarballName: $(toolchainTarballName) + inputArtifactsFolder: $(inputArtifactsLocation) isAllowToolchainRebuilds: true isCheckBuild: true isQuickRebuildPackages: true @@ -179,8 +205,18 @@ extends: isCustom: true name: ${{ configuration.agentPool }} variables: + inputArtifactsLocation: $(Agent.TempDirectory) rpmsArtifactName: $[ stageDependencies.RPMs_${{ configuration.name }}.BuildAndTest.outputs['RPMsArtifactName.rpmsArtifactName'] ] + rpmsTarballName: $[ stageDependencies.RPMs_${{ configuration.name }}.BuildAndTest.outputs['RPMsArtifactName.rpmsTarballName'] ] steps: + - task: DownloadPipelineArtifact@2 + displayName: "Download RPMs tarball" + inputs: + artifact: $(rpmsArtifactName) + patterns: "**/$(rpmsTarballName)" + targetPath: $(inputArtifactsLocation) + - template: .pipelines/templatesWithCheckout/SodiffCheck.yml@self parameters: - inputArtifactName: $(rpmsArtifactName) + inputArtifactsFolder: $(inputArtifactsLocation) + inputRPMsTarballName: $(rpmsTarballName) diff --git a/.pipelines/templates/PackageBuild.yml b/.pipelines/templates/PackageBuild.yml index 4ce30b7e65f..abb9ac1d9ca 100644 --- a/.pipelines/templates/PackageBuild.yml +++ b/.pipelines/templates/PackageBuild.yml @@ -14,13 +14,9 @@ parameters: type: number default: 12 - - name: customToolchainArtifactName - type: string - default: "" - - name: customToolchainTarballName type: string - default: "toolchain_built_rpms_all.tar.gz" + default: "" - name: extraPackageRepos type: string @@ -30,12 +26,16 @@ parameters: type: boolean default: true - - name: inputCacheArtifacts + - name: inputArtifactsFolder + type: string + default: "$(Agent.TempDirectory)" + + - name: inputCacheRPMsTarballs type: object default: [] # Sample: - # - name: build-artifacts - # rpmsTarball: cache.tar.gz + # - cache.tar.gz + # - cache2.tar.gz - name: isAllowToolchainRebuilds type: string @@ -160,15 +160,9 @@ steps: artifactFeeds: "${{ parameters.pipArtifactFeeds }}" displayName: "Authenticate to custom pip artifact feeds" - - ${{ if parameters.customToolchainArtifactName }}: - - task: DownloadPipelineArtifact@2 - displayName: "Download toolchain" - inputs: - artifact: "${{ parameters.customToolchainArtifactName }}" - patterns: "**/${{ parameters.customToolchainTarballName }}" - + - ${{ if parameters.customToolchainTarballName }}: - script: | - toolchain_archive="$(find "$(Pipeline.Workspace)" -name "${{ parameters.customToolchainTarballName }}" -print -quit)" + toolchain_archive="$(find "${{ parameters.inputArtifactsFolder }}" -name "${{ parameters.customToolchainTarballName }}" -print -quit)" if [[ ! -f "$toolchain_archive" ]]; then echo "ERROR: toolchain archive not found!" >&2 exit 1 @@ -178,17 +172,11 @@ steps: sudo make -C "${{ parameters.buildRepoRoot }}/toolkit" toolchain TOOLCHAIN_ARCHIVE="$toolchain_archive" displayName: "Populate toolchain" - - ${{ each inputCacheArtifact in parameters.inputCacheArtifacts }}: - - task: DownloadPipelineArtifact@2 - displayName: "Download input cache RPM from ${{ inputCacheArtifact.name }}" - inputs: - artifact: "${{ inputCacheArtifact.name }}" - patterns: "**/${{ inputCacheArtifact.rpmsTarball }}" - + - ${{ each inputCacheRPMsTarball in parameters.inputCacheRPMsTarballs }}: - script: | - rpms_archive="$(find "$(Pipeline.Workspace)" -name "${{ inputCacheArtifact.rpmsTarball }}" -print -quit)" + rpms_archive="$(find "${{ parameters.inputArtifactsFolder }}" -name "${{ inputCacheRPMsTarball }}" -print -quit)" if [[ ! -f "$rpms_archive" ]]; then - echo "ERROR: cache RPMs archive '${{ inputCacheArtifact.rpmsTarball }}' not found!" >&2 + echo "ERROR: cache RPMs archive '${{ inputCacheRPMsTarball }}' not found!" >&2 exit 1 fi @@ -200,7 +188,7 @@ steps: check_build_retries_arg="CHECK_BUILD_RETRIES=${{ parameters.checkBuildRetries }}" fi - if [[ -n "${{ parameters.customToolchainArtifactName }}" ]]; then + if [[ -n "${{ parameters.customToolchainTarballName }}" ]]; then toolchain_archive_arg="TOOLCHAIN_ARCHIVE=$(toolchainArchive)" fi diff --git a/.pipelines/templatesWithCheckout/SodiffCheck.yml b/.pipelines/templatesWithCheckout/SodiffCheck.yml index c4103caa78c..004fbaaa1e9 100644 --- a/.pipelines/templatesWithCheckout/SodiffCheck.yml +++ b/.pipelines/templatesWithCheckout/SodiffCheck.yml @@ -6,8 +6,9 @@ parameters: type: string default: "$(Build.SourcesDirectory)" - - name: inputArtifactName + - name: inputArtifactsFolder type: string + default: "$(Agent.TempDirectory)" - name: inputRPMsTarballName type: string @@ -26,19 +27,11 @@ parameters: default: "$(Agent.TempDirectory)/SourcesWorkspace" steps: - - task: DownloadPipelineArtifact@2 - displayName: "Download sources for signing" - inputs: - artifact: ${{ parameters.inputArtifactName }} - patterns: | - **/${{ parameters.inputRPMsTarballName }} - targetPath: "$(Agent.TempDirectory)" - - script: | set -e mkdir -p "${{ parameters.sourcesWorkspace }}" - find "$(Agent.TempDirectory)" -name "${{ parameters.inputRPMsTarballName }}" -print0 | xargs -0 -n 1 tar -C "${{ parameters.sourcesWorkspace }}" -xkf + find "${{ parameters.inputArtifactsFolder }}" -name "${{ parameters.inputRPMsTarballName }}" -print0 | xargs -0 -n 1 tar -C "${{ parameters.sourcesWorkspace }}" -xkf displayName: "Extract sources tarball" - script: | From ed9c6678fd80d24065991e8727f0fa63e5e4d02d Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:49:18 -0800 Subject: [PATCH 013/163] [AUTO-CHERRYPICK] cert-manager: address CVE-2024-45337 - branch 3.0-dev (#11838) Co-authored-by: Muhammad Falak R Wani --- SPECS/cert-manager/CVE-2024-45337.patch | 80 +++++++++++++++++++++++++ SPECS/cert-manager/cert-manager.spec | 8 ++- 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 SPECS/cert-manager/CVE-2024-45337.patch diff --git a/SPECS/cert-manager/CVE-2024-45337.patch b/SPECS/cert-manager/CVE-2024-45337.patch new file mode 100644 index 00000000000..41cdea3ce45 --- /dev/null +++ b/SPECS/cert-manager/CVE-2024-45337.patch @@ -0,0 +1,80 @@ +From 784057d777784f1737dbf5d660f32bf2577add4c Mon Sep 17 00:00:00 2001 +From: Roland Shoemaker +Date: Tue, 3 Dec 2024 09:03:03 -0800 +Subject: [PATCH] ssh: make the public key cache a 1-entry FIFO cache + +Users of the the ssh package seem to extremely commonly misuse the +PublicKeyCallback API, assuming that the key passed in the last call +before a connection is established is the key used for authentication. +Some users then make authorization decisions based on this key. This +property is not documented, and may not be correct, due to the caching +behavior of the package, resulting in users making incorrect +authorization decisions about the connection. + +This change makes the cache a one entry FIFO cache, making the assumed +property, that the last call to PublicKeyCallback represents the key +actually used for authentication, actually hold. + +Thanks to Damien Tournoud, Patrick Dawkins, Vince Parker, and +Jules Duvivier from the Platform.sh / Upsun engineering team +for reporting this issue. + +Fixes golang/go#70779 +Fixes CVE-2024-45337 + +Change-Id: Ife7c7b4045d8b6bcd7e3a417bdfae370c709797f +Reviewed-on: https://go-review.googlesource.com/c/crypto/+/635315 +Reviewed-by: Roland Shoemaker +Auto-Submit: Gopher Robot +Reviewed-by: Damien Neil +Reviewed-by: Nicola Murino +LUCI-TryBot-Result: Go LUCI +Signed-off-by: Muhammad Falak R Wani +--- + .../vendor/golang.org/x/crypto/ssh/server.go | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/cmd/controller/vendor/golang.org/x/crypto/ssh/server.go b/cmd/controller/vendor/golang.org/x/crypto/ssh/server.go +index 3ca9e89..a8b673c 100644 +--- a/cmd/controller/vendor/golang.org/x/crypto/ssh/server.go ++++ b/cmd/controller/vendor/golang.org/x/crypto/ssh/server.go +@@ -149,7 +149,7 @@ func (s *ServerConfig) AddHostKey(key Signer) { + } + + // cachedPubKey contains the results of querying whether a public key is +-// acceptable for a user. ++// acceptable for a user. This is a FIFO cache. + type cachedPubKey struct { + user string + pubKeyData []byte +@@ -157,7 +157,13 @@ type cachedPubKey struct { + perms *Permissions + } + +-const maxCachedPubKeys = 16 ++// maxCachedPubKeys is the number of cache entries we store. ++// ++// Due to consistent misuse of the PublicKeyCallback API, we have reduced this ++// to 1, such that the only key in the cache is the most recently seen one. This ++// forces the behavior that the last call to PublicKeyCallback will always be ++// with the key that is used for authentication. ++const maxCachedPubKeys = 1 + + // pubKeyCache caches tests for public keys. Since SSH clients + // will query whether a public key is acceptable before attempting to +@@ -179,9 +185,10 @@ func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + + // add adds the given tuple to the cache. + func (c *pubKeyCache) add(candidate cachedPubKey) { +- if len(c.keys) < maxCachedPubKeys { +- c.keys = append(c.keys, candidate) ++ if len(c.keys) >= maxCachedPubKeys { ++ c.keys = c.keys[1:] + } ++ c.keys = append(c.keys, candidate) + } + + // ServerConn is an authenticated SSH connection, as seen from the +-- +2.34.1 + diff --git a/SPECS/cert-manager/cert-manager.spec b/SPECS/cert-manager/cert-manager.spec index 777e932403a..8f783d19989 100644 --- a/SPECS/cert-manager/cert-manager.spec +++ b/SPECS/cert-manager/cert-manager.spec @@ -1,7 +1,7 @@ Summary: Automatically provision and manage TLS certificates in Kubernetes Name: cert-manager Version: 1.12.13 -Release: 1%{?dist} +Release: 2%{?dist} License: ASL 2.0 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -13,6 +13,7 @@ Source0: https://github.com/jetstack/%{name}/archive/refs/tags/v%{version # 1. wget https://github.com/jetstack/%%{name}/archive/refs/tags/v%%{version}.tar.gz -O %%{name}-%%{version}.tar.gz # 2. /SPECS/cert-manager/generate_source_tarball.sh --srcTarball %%{name}-%%{version}.tar.gz --pkgVersion %%{version} Source1: %{name}-%{version}-vendor.tar.gz +Patch0: CVE-2024-45337.patch BuildRequires: golang Requires: %{name}-acmesolver Requires: %{name}-cainjector @@ -57,7 +58,7 @@ Summary: cert-manager's webhook binary Webhook component providing API validation, mutation and conversion functionality for cert-manager. %prep -%setup -q -a 1 +%autosetup -a 1 -p1 %build @@ -103,6 +104,9 @@ install -D -m0755 bin/webhook %{buildroot}%{_bindir}/ %{_bindir}/webhook %changelog +* Wed Jan 08 2025 Muhammad Falak - 1.12.13-2 +- Patch CVE-2024-45337 + * Mon Sep 16 2024 Jiri Appl - 1.12.13-1 - Upgrade to 1.12.13 which carries helm 3.14.2 to fix CVE-2024-26147 and CVE-2024-25620 From 59ba9a1460efeef41705fc666160588817c6d5c0 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:49:45 -0800 Subject: [PATCH 014/163] [AUTO-CHERRYPICK] gh: patch CVE-2024-45337 - branch 3.0-dev (#11839) Co-authored-by: Muhammad Falak R Wani --- SPECS/gh/CVE-2024-45337.patch | 80 +++++++++++++++++++++++++++++++++++ SPECS/gh/gh.spec | 10 +++-- 2 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 SPECS/gh/CVE-2024-45337.patch diff --git a/SPECS/gh/CVE-2024-45337.patch b/SPECS/gh/CVE-2024-45337.patch new file mode 100644 index 00000000000..868ef502b5d --- /dev/null +++ b/SPECS/gh/CVE-2024-45337.patch @@ -0,0 +1,80 @@ +From 66fd5d19c5ea8c7f4f7ff69bcc93a7c8231ce4cf Mon Sep 17 00:00:00 2001 +From: Roland Shoemaker +Date: Tue, 3 Dec 2024 09:03:03 -0800 +Subject: [PATCH] ssh: make the public key cache a 1-entry FIFO cache + +Users of the the ssh package seem to extremely commonly misuse the +PublicKeyCallback API, assuming that the key passed in the last call +before a connection is established is the key used for authentication. +Some users then make authorization decisions based on this key. This +property is not documented, and may not be correct, due to the caching +behavior of the package, resulting in users making incorrect +authorization decisions about the connection. + +This change makes the cache a one entry FIFO cache, making the assumed +property, that the last call to PublicKeyCallback represents the key +actually used for authentication, actually hold. + +Thanks to Damien Tournoud, Patrick Dawkins, Vince Parker, and +Jules Duvivier from the Platform.sh / Upsun engineering team +for reporting this issue. + +Fixes golang/go#70779 +Fixes CVE-2024-45337 + +Change-Id: Ife7c7b4045d8b6bcd7e3a417bdfae370c709797f +Reviewed-on: https://go-review.googlesource.com/c/crypto/+/635315 +Reviewed-by: Roland Shoemaker +Auto-Submit: Gopher Robot +Reviewed-by: Damien Neil +Reviewed-by: Nicola Murino +LUCI-TryBot-Result: Go LUCI +Signed-off-by: Muhammad Falak R Wani +--- + vendor/golang.org/x/crypto/ssh/server.go | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go +index c2dfe32..39dcc09 100644 +--- a/vendor/golang.org/x/crypto/ssh/server.go ++++ b/vendor/golang.org/x/crypto/ssh/server.go +@@ -149,7 +149,7 @@ func (s *ServerConfig) AddHostKey(key Signer) { + } + + // cachedPubKey contains the results of querying whether a public key is +-// acceptable for a user. ++// acceptable for a user. This is a FIFO cache. + type cachedPubKey struct { + user string + pubKeyData []byte +@@ -157,7 +157,13 @@ type cachedPubKey struct { + perms *Permissions + } + +-const maxCachedPubKeys = 16 ++// maxCachedPubKeys is the number of cache entries we store. ++// ++// Due to consistent misuse of the PublicKeyCallback API, we have reduced this ++// to 1, such that the only key in the cache is the most recently seen one. This ++// forces the behavior that the last call to PublicKeyCallback will always be ++// with the key that is used for authentication. ++const maxCachedPubKeys = 1 + + // pubKeyCache caches tests for public keys. Since SSH clients + // will query whether a public key is acceptable before attempting to +@@ -179,9 +185,10 @@ func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + + // add adds the given tuple to the cache. + func (c *pubKeyCache) add(candidate cachedPubKey) { +- if len(c.keys) < maxCachedPubKeys { +- c.keys = append(c.keys, candidate) ++ if len(c.keys) >= maxCachedPubKeys { ++ c.keys = c.keys[1:] + } ++ c.keys = append(c.keys, candidate) + } + + // ServerConn is an authenticated SSH connection, as seen from the +-- +2.34.1 + diff --git a/SPECS/gh/gh.spec b/SPECS/gh/gh.spec index 4e8e16fa9d3..333a8a65a89 100644 --- a/SPECS/gh/gh.spec +++ b/SPECS/gh/gh.spec @@ -1,7 +1,7 @@ Summary: GitHub official command line tool Name: gh Version: 2.62.0 -Release: 2%{?dist} +Release: 3%{?dist} License: MIT Vendor: Microsoft Corporation Distribution: Azure Linux @@ -15,6 +15,8 @@ Source1: %{name}-%{version}-vendor.tar.gz Patch0: 0001-Fix-false-negative-in-TestMigrationWriteErrors-when-.patch Patch1: CVE-2024-54132.patch +Patch2: CVE-2024-45337.patch + BuildRequires: golang < 1.23 BuildRequires: git Requires: git @@ -25,10 +27,9 @@ Requires: git GitHub official command line tool. %prep -%autosetup -p1 -n cli-%{version} +%autosetup -p1 -n cli-%{version} -a1 %build -tar --no-same-owner -xf %{SOURCE1} export GOPATH=%{our_gopath} # No mod download use vednor cache locally export GOFLAGS="-buildmode=pie -trimpath -mod=vendor -modcacherw -ldflags=-linkmode=external" @@ -57,6 +58,9 @@ make test %{_datadir}/zsh/site-functions/_gh %changelog +* Wed Jan 08 2025 Muhammad Falak - 2.62.0-3 +- Patch CVE-2024-45337 + * Fri Dec 13 2024 Sandeep Karambelkar - 2.62.0-2 - Patch CVE-2024-54132 From d26d43c02a485a614dd77fa590309645988acb35 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:50:05 -0800 Subject: [PATCH 015/163] [AUTO-CHERRYPICK] docker-compose: patch CVE-2024-45337 - branch 3.0-dev (#11840) Co-authored-by: Muhammad Falak R Wani --- SPECS/docker-compose/CVE-2024-45337.patch | 80 +++++++++++++++++++++++ SPECS/docker-compose/docker-compose.spec | 6 +- 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 SPECS/docker-compose/CVE-2024-45337.patch diff --git a/SPECS/docker-compose/CVE-2024-45337.patch b/SPECS/docker-compose/CVE-2024-45337.patch new file mode 100644 index 00000000000..868ef502b5d --- /dev/null +++ b/SPECS/docker-compose/CVE-2024-45337.patch @@ -0,0 +1,80 @@ +From 66fd5d19c5ea8c7f4f7ff69bcc93a7c8231ce4cf Mon Sep 17 00:00:00 2001 +From: Roland Shoemaker +Date: Tue, 3 Dec 2024 09:03:03 -0800 +Subject: [PATCH] ssh: make the public key cache a 1-entry FIFO cache + +Users of the the ssh package seem to extremely commonly misuse the +PublicKeyCallback API, assuming that the key passed in the last call +before a connection is established is the key used for authentication. +Some users then make authorization decisions based on this key. This +property is not documented, and may not be correct, due to the caching +behavior of the package, resulting in users making incorrect +authorization decisions about the connection. + +This change makes the cache a one entry FIFO cache, making the assumed +property, that the last call to PublicKeyCallback represents the key +actually used for authentication, actually hold. + +Thanks to Damien Tournoud, Patrick Dawkins, Vince Parker, and +Jules Duvivier from the Platform.sh / Upsun engineering team +for reporting this issue. + +Fixes golang/go#70779 +Fixes CVE-2024-45337 + +Change-Id: Ife7c7b4045d8b6bcd7e3a417bdfae370c709797f +Reviewed-on: https://go-review.googlesource.com/c/crypto/+/635315 +Reviewed-by: Roland Shoemaker +Auto-Submit: Gopher Robot +Reviewed-by: Damien Neil +Reviewed-by: Nicola Murino +LUCI-TryBot-Result: Go LUCI +Signed-off-by: Muhammad Falak R Wani +--- + vendor/golang.org/x/crypto/ssh/server.go | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go +index c2dfe32..39dcc09 100644 +--- a/vendor/golang.org/x/crypto/ssh/server.go ++++ b/vendor/golang.org/x/crypto/ssh/server.go +@@ -149,7 +149,7 @@ func (s *ServerConfig) AddHostKey(key Signer) { + } + + // cachedPubKey contains the results of querying whether a public key is +-// acceptable for a user. ++// acceptable for a user. This is a FIFO cache. + type cachedPubKey struct { + user string + pubKeyData []byte +@@ -157,7 +157,13 @@ type cachedPubKey struct { + perms *Permissions + } + +-const maxCachedPubKeys = 16 ++// maxCachedPubKeys is the number of cache entries we store. ++// ++// Due to consistent misuse of the PublicKeyCallback API, we have reduced this ++// to 1, such that the only key in the cache is the most recently seen one. This ++// forces the behavior that the last call to PublicKeyCallback will always be ++// with the key that is used for authentication. ++const maxCachedPubKeys = 1 + + // pubKeyCache caches tests for public keys. Since SSH clients + // will query whether a public key is acceptable before attempting to +@@ -179,9 +185,10 @@ func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + + // add adds the given tuple to the cache. + func (c *pubKeyCache) add(candidate cachedPubKey) { +- if len(c.keys) < maxCachedPubKeys { +- c.keys = append(c.keys, candidate) ++ if len(c.keys) >= maxCachedPubKeys { ++ c.keys = c.keys[1:] + } ++ c.keys = append(c.keys, candidate) + } + + // ServerConn is an authenticated SSH connection, as seen from the +-- +2.34.1 + diff --git a/SPECS/docker-compose/docker-compose.spec b/SPECS/docker-compose/docker-compose.spec index 6301797a965..eec9881ad79 100644 --- a/SPECS/docker-compose/docker-compose.spec +++ b/SPECS/docker-compose/docker-compose.spec @@ -1,7 +1,7 @@ Summary: Define and run multi-container applications with Docker Name: docker-compose Version: 2.27.0 -Release: 1%{?dist} +Release: 2%{?dist} License: ASL 2.0 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -12,6 +12,7 @@ Source0: https://github.com/docker/compose/archive/refs/tags/v%{version}. # NOTE: govendor-v1 format is for inplace CVE updates so that we do not have to overwrite in the blob-store. # After fixing any possible CVE for the vendored source, we must bump v1 -> v2 Source1: %{name}-%{version}-govendor-v1.tar.gz +Patch0: CVE-2024-45337.patch BuildRequires: golang Requires: docker-cli Obsoletes: moby-compose < %{version}-%{release} @@ -44,6 +45,9 @@ install -D -m0755 bin/build/docker-compose %{buildroot}/%{_libexecdir}/docker/cl %{_libexecdir}/docker/cli-plugins/docker-compose %changelog +* Wed Jan 08 2025 Muhammad Falak - 2.27.0-2 +- Patch CVE-2024-45337 + * Thu May 02 2024 CBL-Mariner Servicing Account - 2.27.0-1 - Auto-upgrade to 2.27.0 - address CVE-2024-23653 From 1ecba0b53bab9e570a0ef665149278c2a0e01a60 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:02:15 -0800 Subject: [PATCH 016/163] [AUTO-CHERRYPICK] Fix CVE-2025-21613 and CVE-2025-21614 for packer - branch 3.0-dev (#11865) Co-authored-by: Sudipta Pandit --- SPECS/packer/CVE-2023-45288.patch | 86 ------ SPECS/packer/CVE-2024-45337.patch | 77 ----- ...-2023-49569.patch => CVE-2025-21613.patch} | 290 ++++++++++-------- SPECS/packer/CVE-2025-21614.nopatch | 1 + SPECS/packer/packer.signatures.json | 2 +- SPECS/packer/packer.spec | 22 +- 6 files changed, 181 insertions(+), 297 deletions(-) delete mode 100644 SPECS/packer/CVE-2023-45288.patch delete mode 100644 SPECS/packer/CVE-2024-45337.patch rename SPECS/packer/{CVE-2023-49569.patch => CVE-2025-21613.patch} (73%) create mode 100644 SPECS/packer/CVE-2025-21614.nopatch diff --git a/SPECS/packer/CVE-2023-45288.patch b/SPECS/packer/CVE-2023-45288.patch deleted file mode 100644 index 676fcbace54..00000000000 --- a/SPECS/packer/CVE-2023-45288.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 63b4ddd633bde166d2b2800dbc6ad6a64f77b838 Mon Sep 17 00:00:00 2001 -From: Damien Neil -Date: Wed, 10 Jan 2024 13:41:39 -0800 -Subject: [PATCH] http2: close connections when receiving too many headers - -Maintaining HPACK state requires that we parse and process -all HEADERS and CONTINUATION frames on a connection. -When a request's headers exceed MaxHeaderBytes, we don't -allocate memory to store the excess headers but we do -parse them. This permits an attacker to cause an HTTP/2 -endpoint to read arbitrary amounts of data, all associated -with a request which is going to be rejected. - -Set a limit on the amount of excess header frames we -will process before closing a connection. - -Thanks to Bartek Nowotarski for reporting this issue. - -Fixes CVE-2023-45288 -Fixes golang/go#65051 - -Change-Id: I15df097268df13bb5a9e9d3a5c04a8a141d850f6 -Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2130527 -Reviewed-by: Roland Shoemaker -Reviewed-by: Tatiana Bradley -Reviewed-on: https://go-review.googlesource.com/c/net/+/576155 -Reviewed-by: Dmitri Shuralyov -Auto-Submit: Dmitri Shuralyov -Reviewed-by: Than McIntosh -LUCI-TryBot-Result: Go LUCI ---- - vendor/golang.org/x/net/http2/frame.go | 31 ++++++++++++++++++++++++++ - 1 file changed, 31 insertions(+) - -diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go -index c1f6b90..175c154 100644 ---- a/vendor/golang.org/x/net/http2/frame.go -+++ b/vendor/golang.org/x/net/http2/frame.go -@@ -1565,6 +1565,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { - if size > remainSize { - hdec.SetEmitEnabled(false) - mh.Truncated = true -+ remainSize = 0 - return - } - remainSize -= size -@@ -1577,6 +1578,36 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { - var hc headersOrContinuation = hf - for { - frag := hc.HeaderBlockFragment() -+ -+ // Avoid parsing large amounts of headers that we will then discard. -+ // If the sender exceeds the max header list size by too much, -+ // skip parsing the fragment and close the connection. -+ // -+ // "Too much" is either any CONTINUATION frame after we've already -+ // exceeded the max header list size (in which case remainSize is 0), -+ // or a frame whose encoded size is more than twice the remaining -+ // header list bytes we're willing to accept. -+ if int64(len(frag)) > int64(2*remainSize) { -+ if VerboseLogs { -+ log.Printf("http2: header list too large") -+ } -+ // It would be nice to send a RST_STREAM before sending the GOAWAY, -+ // but the struture of the server's frame writer makes this difficult. -+ return nil, ConnectionError(ErrCodeProtocol) -+ } -+ -+ // Also close the connection after any CONTINUATION frame following an -+ // invalid header, since we stop tracking the size of the headers after -+ // an invalid one. -+ if invalid != nil { -+ if VerboseLogs { -+ log.Printf("http2: invalid header: %v", invalid) -+ } -+ // It would be nice to send a RST_STREAM before sending the GOAWAY, -+ // but the struture of the server's frame writer makes this difficult. -+ return nil, ConnectionError(ErrCodeProtocol) -+ } -+ - if _, err := hdec.Write(frag); err != nil { - return nil, ConnectionError(ErrCodeCompression) - } --- -2.44.0 - diff --git a/SPECS/packer/CVE-2024-45337.patch b/SPECS/packer/CVE-2024-45337.patch deleted file mode 100644 index f7d2f6a6724..00000000000 --- a/SPECS/packer/CVE-2024-45337.patch +++ /dev/null @@ -1,77 +0,0 @@ -https://github.com/golang/crypto/commit/b4f1988a35dee11ec3e05d6bf3e90b695fbd8909.patch - -From b4f1988a35dee11ec3e05d6bf3e90b695fbd8909 Mon Sep 17 00:00:00 2001 -From: Roland Shoemaker -Date: Tue, 3 Dec 2024 09:03:03 -0800 -Subject: [PATCH] ssh: make the public key cache a 1-entry FIFO cache - -Users of the the ssh package seem to extremely commonly misuse the -PublicKeyCallback API, assuming that the key passed in the last call -before a connection is established is the key used for authentication. -Some users then make authorization decisions based on this key. This -property is not documented, and may not be correct, due to the caching -behavior of the package, resulting in users making incorrect -authorization decisions about the connection. - -This change makes the cache a one entry FIFO cache, making the assumed -property, that the last call to PublicKeyCallback represents the key -actually used for authentication, actually hold. - -Thanks to Damien Tournoud, Patrick Dawkins, Vince Parker, and -Jules Duvivier from the Platform.sh / Upsun engineering team -for reporting this issue. - -Fixes golang/go#70779 -Fixes CVE-2024-45337 - -Change-Id: Ife7c7b4045d8b6bcd7e3a417bdfae370c709797f -Reviewed-on: https://go-review.googlesource.com/c/crypto/+/635315 -Reviewed-by: Roland Shoemaker -Auto-Submit: Gopher Robot -Reviewed-by: Damien Neil -Reviewed-by: Nicola Murino -LUCI-TryBot-Result: Go LUCI ---- - vendor/golang.org/x/crypto/ssh/server.go | 15 ++++++++++---- - -diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go -index c0d1c29e6f..5b5ccd96f4 100644 ---- a/vendor/golang.org/x/crypto/ssh/server.go -+++ b/vendor/golang.org/x/crypto/ssh/server.go -@@ -142,7 +142,7 @@ func (s *ServerConfig) AddHostKey(key Signer) { - } - - // cachedPubKey contains the results of querying whether a public key is --// acceptable for a user. -+// acceptable for a user. This is a FIFO cache. - type cachedPubKey struct { - user string - pubKeyData []byte -@@ -150,7 +150,13 @@ type cachedPubKey struct { - perms *Permissions - } - --const maxCachedPubKeys = 16 -+// maxCachedPubKeys is the number of cache entries we store. -+// -+// Due to consistent misuse of the PublicKeyCallback API, we have reduced this -+// to 1, such that the only key in the cache is the most recently seen one. This -+// forces the behavior that the last call to PublicKeyCallback will always be -+// with the key that is used for authentication. -+const maxCachedPubKeys = 1 - - // pubKeyCache caches tests for public keys. Since SSH clients - // will query whether a public key is acceptable before attempting to -@@ -172,9 +178,10 @@ func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { - - // add adds the given tuple to the cache. - func (c *pubKeyCache) add(candidate cachedPubKey) { -- if len(c.keys) < maxCachedPubKeys { -- c.keys = append(c.keys, candidate) -+ if len(c.keys) >= maxCachedPubKeys { -+ c.keys = c.keys[1:] - } -+ c.keys = append(c.keys, candidate) - } - - // ServerConn is an authenticated SSH connection, as seen from the diff --git a/SPECS/packer/CVE-2023-49569.patch b/SPECS/packer/CVE-2025-21613.patch similarity index 73% rename from SPECS/packer/CVE-2023-49569.patch rename to SPECS/packer/CVE-2025-21613.patch index b5d0a7c410a..d31a67b58ea 100644 --- a/SPECS/packer/CVE-2023-49569.patch +++ b/SPECS/packer/CVE-2025-21613.patch @@ -1,15 +1,15 @@ -From 8dbf1953b608a8931f0b77b2c285a5344dcf1aef Mon Sep 17 00:00:00 2001 -From: Pawel Winogrodzki -Date: Wed, 3 Jul 2024 09:36:37 -0700 -Subject: [PATCH] Updated 'go-git' to version 5.12.0. +From 36c9359d89bc1525e38c22eded9cbfcf9966a10d Mon Sep 17 00:00:00 2001 +From: Sudipta Pandit +Date: Thu, 9 Jan 2025 16:33:00 +0530 +Subject: [PATCH] Update go-git to v5.13.0 to fix CVE-2025-21613 --- - go.mod | 43 +++++++++--------- - go.sum | 136 +++++++++++++++++++++++++++++++-------------------------- - 2 files changed, 98 insertions(+), 81 deletions(-) + go.mod | 49 +++++++++++--------- + go.sum | 144 ++++++++++++++++++++++++++++++++------------------------- + 2 files changed, 108 insertions(+), 85 deletions(-) diff --git a/go.mod b/go.mod -index 21cfd2a..0b45f62 100644 +index 21cfd2a..b03fd08 100644 --- a/go.mod +++ b/go.mod @@ -6,12 +6,12 @@ require ( @@ -17,7 +17,7 @@ index 21cfd2a..0b45f62 100644 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e github.com/dsnet/compress v0.0.1 - github.com/go-git/go-git/v5 v5.4.2 -+ github.com/go-git/go-git/v5 v5.12.0 ++ github.com/go-git/go-git/v5 v5.13.0 github.com/go-openapi/runtime v0.25.0 github.com/gobwas/glob v0.2.3 github.com/gofrs/flock v0.8.1 // indirect @@ -32,26 +32,27 @@ index 21cfd2a..0b45f62 100644 github.com/pkg/sftp v1.13.2 // indirect github.com/posener/complete v1.2.3 - github.com/stretchr/testify v1.8.2 -+ github.com/stretchr/testify v1.9.0 ++ github.com/stretchr/testify v1.10.0 github.com/ulikunitz/xz v0.5.10 github.com/zclconf/go-cty v1.10.0 github.com/zclconf/go-cty-yaml v1.0.1 - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.8.0 - golang.org/x/net v0.17.0 -+ golang.org/x/crypto v0.21.0 // indirect -+ golang.org/x/mod v0.12.0 -+ golang.org/x/net v0.22.0 ++ golang.org/x/crypto v0.31.0 // indirect ++ golang.org/x/mod v0.17.0 ++ golang.org/x/net v0.33.0 golang.org/x/oauth2 v0.11.0 - golang.org/x/sync v0.3.0 +- golang.org/x/sync v0.3.0 - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.6.0 -+ golang.org/x/sys v0.18.0 // indirect -+ golang.org/x/term v0.18.0 // indirect -+ golang.org/x/text v0.14.0 // indirect -+ golang.org/x/tools v0.13.0 ++ golang.org/x/sync v0.10.0 ++ golang.org/x/sys v0.28.0 // indirect ++ golang.org/x/term v0.27.0 // indirect ++ golang.org/x/text v0.21.0 // indirect ++ golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d google.golang.org/api v0.128.0 // indirect google.golang.org/grpc v1.59.0 ) @@ -71,7 +72,7 @@ index 21cfd2a..0b45f62 100644 - github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 // indirect - github.com/acomagu/bufpipe v1.0.3 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect -+ github.com/ProtonMail/go-crypto v1.0.0 // indirect ++ github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-cidr v1.0.1 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect @@ -80,7 +81,7 @@ index 21cfd2a..0b45f62 100644 github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/chzyer/test v1.0.0 // indirect + github.com/cloudflare/circl v1.3.7 // indirect -+ github.com/cyphar/filepath-securejoin v0.2.4 // indirect ++ github.com/cyphar/filepath-securejoin v0.2.5 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/digitalocean/go-libvirt v0.0.0-20201209184759-e2a69bcd5bd1 // indirect github.com/digitalocean/go-qemu v0.0.0-20210326154740-ac9e0b687001 // indirect @@ -92,7 +93,7 @@ index 21cfd2a..0b45f62 100644 - github.com/go-git/gcfg v1.5.0 // indirect - github.com/go-git/go-billy/v5 v5.3.1 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect -+ github.com/go-git/go-billy/v5 v5.5.0 // indirect ++ github.com/go-git/go-billy/v5 v5.6.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect @@ -123,7 +124,7 @@ index 21cfd2a..0b45f62 100644 - github.com/sergi/go-diff v1.1.0 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shoenig/go-m1cpu v0.1.5 // indirect -+ github.com/skeema/knownhosts v1.2.2 // indirect ++ github.com/skeema/knownhosts v1.3.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect github.com/tklauser/numcpus v0.6.0 // indirect @@ -134,8 +135,16 @@ index 21cfd2a..0b45f62 100644 github.com/yusufpapurcu/wmi v1.2.2 // indirect go.mongodb.org/mongo-driver v1.11.0 // indirect go.opencensus.io v0.24.0 // indirect +@@ -216,4 +219,6 @@ require ( + gopkg.in/yaml.v3 v3.0.1 // indirect + ) + +-go 1.20 ++go 1.21 ++ ++toolchain go1.23.4 diff --git a/go.sum b/go.sum -index 78887ed..d8adb07 100644 +index 78887ed..f4571c9 100644 --- a/go.sum +++ b/go.sum @@ -11,6 +11,8 @@ cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4= @@ -147,7 +156,7 @@ index 78887ed..d8adb07 100644 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v51.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v64.0.0+incompatible h1:WAA77WBDWYtNfCC95V70VvkdzHe+wM/r2MQ9mG7fnQs= -@@ -70,25 +72,22 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q +@@ -70,36 +72,38 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= @@ -161,8 +170,8 @@ index 78887ed..d8adb07 100644 github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= -+github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -+github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= ++github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk= ++github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= @@ -176,57 +185,66 @@ index 78887ed..d8adb07 100644 -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= ++github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/antchfx/xpath v1.1.11 h1:WOFtK8TVAjLm3lbgqeP0arlHpvCEeTANeWZ/csPpJkQ= ++github.com/antchfx/xpath v1.1.11/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/antchfx/xquery v0.0.0-20180515051857-ad5b8c7a47b0 h1:JaCC8jz0zdMLk2m+qCCVLLLM/PL93p84w4pK3aJWj60= ++github.com/antchfx/xquery v0.0.0-20180515051857-ad5b8c7a47b0/go.mod h1:LzD22aAzDP8/dyiCKFp31He4m2GPjl0AFyzDtZzUu9M= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -@@ -110,7 +109,6 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj - github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= - github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= - github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= --github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= - github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= - github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= - github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -@@ -131,6 +129,7 @@ github.com/biogo/hts v1.4.3 h1:vir2yUTiRkPvtp6ZTpzh9lWTKQJZXJKZ563rpAQAsRM= - github.com/biogo/hts v1.4.3/go.mod h1:eW40HJ1l2ExK9C+yvvoRSftInqWsf3ue+zAEjzCGWjA= - github.com/bmatcuk/doublestar v1.1.5 h1:2bNwBOmhyFEFcoB3tGvTD5xanq+4kyOZlB8wFYbMjkk= - github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= -+github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= - github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= - github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= - github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= -@@ -147,6 +146,9 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38 + github.com/apparentlymart/go-cidr v1.0.1 h1:NmIwLZ/KdsjIUlhf+/Np40atNXm/+lZ5txfTJ/SpF+U= + github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= + github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3 h1:ZSTrOEhiM5J5RFxEaFvMZVEAM1KvT1YzbEOwB2EAGjA= ++github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= + github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= + github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= + github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= + github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= + github.com/approvals/go-approval-tests v0.0.0-20210131072903-38d0b0ec12b1 h1:uroQ0JaeVom9Ffv9xFtc7DcqrpGmyQeZCRzHD9FqPBg= ++github.com/approvals/go-approval-tests v0.0.0-20210131072903-38d0b0ec12b1/go.mod h1:PJOqSY8IofNv3heAD6k8E7EfFS6okiSS9bSAasaAUME= + github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= + github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= + github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= +@@ -147,6 +151,8 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38 github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -+github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -@@ -165,6 +167,8 @@ github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDG +@@ -165,6 +171,8 @@ github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDG github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -+github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -+github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= ++github.com/cyphar/filepath-securejoin v0.2.5 h1:6iR5tXJ/e6tJZzzdMc1km3Sa7RRIVBKAK32O2s7AYfo= ++github.com/cyphar/filepath-securejoin v0.2.5/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -@@ -188,8 +192,9 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb +@@ -177,6 +185,7 @@ github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQ + github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= + github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= + github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= ++github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= + github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= + github.com/docker/docker v1.4.2-0.20200319182547-c7ad2b866182/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +@@ -188,8 +197,11 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb github.com/dylanmei/iso8601 v0.1.0 h1:812NGQDBcqquTfH5Yeo7lwR0nzx/cKdsmf3qMjPURUI= github.com/dylanmei/iso8601 v0.1.0/go.mod h1:w9KhXSgIyROl1DefbMYIE7UVSIvELTbMrCfx+QkYnoQ= github.com/dylanmei/winrmtest v0.0.0-20170819153634-c2fbb09e6c08 h1:0bp6/GrNOrTDtSXe9YYGCwf8jp5Fb/b+4a6MTRm4qzY= -github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -+github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= ++github.com/dylanmei/winrmtest v0.0.0-20170819153634-c2fbb09e6c08/go.mod h1:VBVDFSBXCIW8JaHQpI8lldSKfYaLMzP9oyq6IJ4fhzY= ++github.com/elazarl/goproxy v1.2.1 h1:njjgvO6cRG9rIqN2ebkqy6cQz2Njkx7Fsfv/zIZqgug= ++github.com/elazarl/goproxy v1.2.1/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -@@ -202,24 +207,20 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL +@@ -202,24 +214,22 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= @@ -238,7 +256,8 @@ index 78887ed..d8adb07 100644 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -+github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= ++github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= ++github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= @@ -251,15 +270,24 @@ index 78887ed..d8adb07 100644 -github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -+github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -+github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= ++github.com/go-git/go-billy/v5 v5.6.0 h1:w2hPNtoehvJIxR00Vb4xX94qHQi/ApZfX+nBE2Cjio8= ++github.com/go-git/go-billy/v5 v5.6.0/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -+github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= -+github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= ++github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= ++github.com/go-git/go-git/v5 v5.13.0 h1:vLn5wlGIh/X78El6r3Jr+30W16Blk0CTcxTYcYPWi5E= ++github.com/go-git/go-git/v5 v5.13.0/go.mod h1:Wjo7/JyVKtQgUNdXYXIepzWfJQkUEIGvkvVkiXRR/zw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -@@ -353,8 +354,9 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ +@@ -273,6 +283,7 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me + github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= + github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= + github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= ++github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= + github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= + github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= + github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +@@ -353,8 +364,9 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -270,7 +298,23 @@ index 78887ed..d8adb07 100644 github.com/google/go-github/v33 v33.0.1-0.20210113204525-9318e629ec69 h1:zL0/Ug5CMhV0XRb3A6vnK1SQ9kJM3VIyRxPQ5t9w8Bg= github.com/google/go-github/v33 v33.0.1-0.20210113204525-9318e629ec69/go.mod h1:GMdDnVZY/2TsWgp/lkYnpSAh6TrzhANBBwm6k6TTEXg= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -@@ -504,7 +506,6 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOl +@@ -362,6 +374,7 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD + github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= + github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= + github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= ++github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= + github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= + github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +@@ -417,6 +430,7 @@ github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjh + github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= + github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= + github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= ++github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= + github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= + github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= + github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +@@ -504,7 +518,6 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOl github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 h1:IPJ3dvxmJ4uczJe5YQdrYB16oTJlGSC/OyZDqUk9xX4= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869/go.mod h1:cJ6Cj7dQo+O6GJNiMx+Pa94qKj+TG8ONdKHgMNIyyag= @@ -278,7 +322,7 @@ index 78887ed..d8adb07 100644 github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -@@ -519,8 +520,8 @@ github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u +@@ -519,8 +532,8 @@ github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= @@ -289,17 +333,18 @@ index 78887ed..d8adb07 100644 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -@@ -538,8 +539,7 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +@@ -538,8 +551,8 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= ++github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -@@ -560,9 +560,6 @@ github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL +@@ -560,9 +573,6 @@ github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 h1:2ZKn+w/BJeL github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786/go.mod h1:kCEbxUJlNDEBNbdQMkPSp6yaKcRXVI6f4ddk8Riv4bc= github.com/masterzen/winrm v0.0.0-20210623064412-3b76017826b0 h1:KqYuDbSr8I2X8H65InN8SafDEa0UaLRy6WEmxDqd0F0= github.com/masterzen/winrm v0.0.0-20210623064412-3b76017826b0/go.mod h1:l31LCh9VvG43RJ83A5JLkFPjuz48cZAxBSLQLaIn1p8= @@ -309,15 +354,16 @@ index 78887ed..d8adb07 100644 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -@@ -637,6 +634,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn +@@ -637,6 +647,8 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= ++github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= ++github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -@@ -658,6 +656,8 @@ github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9F +@@ -658,6 +670,8 @@ github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9F github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -326,17 +372,19 @@ index 78887ed..d8adb07 100644 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -@@ -694,7 +694,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L +@@ -694,16 +708,18 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= ++github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= -@@ -702,8 +702,8 @@ github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIH + github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= ++github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= @@ -346,38 +394,39 @@ index 78887ed..d8adb07 100644 github.com/shirou/gopsutil/v3 v3.23.4 h1:hZwmDxZs7Ewt75DV81r4pFMqbq+di2cbt9FsQBqLD2o= github.com/shirou/gopsutil/v3 v3.23.4/go.mod h1:ZcGxyfzAMRevhUR2+cfhXDH6gQdFYE/t8j1nsU4mPI8= github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= -@@ -715,6 +715,9 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx +@@ -715,6 +731,9 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -+github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= -+github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= ++github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY= ++github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -@@ -724,8 +727,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn +@@ -724,8 +743,9 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= ++github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -@@ -735,8 +738,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ +@@ -735,8 +755,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= ++github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= ++github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= -@@ -756,8 +760,8 @@ github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+ +@@ -756,8 +777,8 @@ github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+ github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/vmware/govmomi v0.29.0 h1:SHJQ7DUc4fltFZv16znJNGHR1/XhiDK5iKxm2OqwkuU= github.com/vmware/govmomi v0.29.0/go.mod h1:F7adsVewLNHsW/IIm7ziFURaXDaHEwcc+ym4r3INMdY= @@ -388,7 +437,15 @@ index 78887ed..d8adb07 100644 github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -@@ -793,7 +797,6 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +@@ -786,6 +807,7 @@ go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= + go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4= + go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE= + go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= ++go.opentelemetry.io/otel/sdk v1.11.1/go.mod h1:/l3FE4SupHJ12TduVjUkZtlfFqDCQJlOlithYrdktys= + go.opentelemetry.io/otel/trace v1.11.1 h1:ofxdnzsNrGBYXbP7t7zpUK281+go5rF7dvdIZXF8gdQ= + go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4vbPHFGkTPtOk= + go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +@@ -793,7 +815,6 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -396,7 +453,7 @@ index 78887ed..d8adb07 100644 golang.org/x/crypto v0.0.0-20190222235706-ffb98f73852f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -@@ -809,13 +812,14 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh +@@ -809,17 +830,18 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= @@ -407,25 +464,29 @@ index 78887ed..d8adb07 100644 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -+golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -+golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -+golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -+golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= ++golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= ++golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -@@ -834,8 +838,9 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= + golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= ++golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= ++golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= + golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= + golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= + golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +@@ -834,8 +856,8 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= - golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -+golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -+golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= ++golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= ++golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -@@ -861,14 +866,16 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R +@@ -861,14 +883,13 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -437,23 +498,23 @@ index 78887ed..d8adb07 100644 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -+golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -+golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -+golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= ++golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= ++golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= -@@ -883,6 +890,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ +@@ -883,8 +904,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -+golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= - golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +-golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +-golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= ++golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= ++golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -@@ -900,7 +908,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w + golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +@@ -900,7 +921,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -461,7 +522,7 @@ index 78887ed..d8adb07 100644 golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -@@ -912,34 +919,38 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w +@@ -912,34 +932,32 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -487,60 +548,43 @@ index 78887ed..d8adb07 100644 +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -+golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= ++golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -+golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -+golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -+golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -+golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= ++golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= ++golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -@@ -947,8 +958,11 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +@@ -947,8 +965,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -+golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= ++golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= ++golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= -@@ -973,8 +987,9 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn +@@ -973,8 +991,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200711155855-7342f9734a7d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= - golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -+golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -+golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= ++golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= ++golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -@@ -1035,7 +1050,6 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= --gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= - gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= - gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= - gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -- 2.34.1 diff --git a/SPECS/packer/CVE-2025-21614.nopatch b/SPECS/packer/CVE-2025-21614.nopatch new file mode 100644 index 00000000000..1fd187ee542 --- /dev/null +++ b/SPECS/packer/CVE-2025-21614.nopatch @@ -0,0 +1 @@ +# fixed by CVE-2025-21613.patch file diff --git a/SPECS/packer/packer.signatures.json b/SPECS/packer/packer.signatures.json index c715fd12b55..458be6b9fa0 100644 --- a/SPECS/packer/packer.signatures.json +++ b/SPECS/packer/packer.signatures.json @@ -1,6 +1,6 @@ { "Signatures": { - "packer-1.9.5-vendor.tar.gz": "356f442fec9bd414cc9fdf82ed829f92551509bfea11e7f4c79c6dd0e9a66a87", + "packer-1.9.5-vendor-v2.tar.gz": "4b77d1bba3adb00a8a410b8a507df96f66e2b36a016d49300b08f77c8d3f7245", "packer-1.9.5.tar.gz": "a6da3e455578f5373c5e333023a7be483e9c22f4235ccd599fe39d42df55f870" } } \ No newline at end of file diff --git a/SPECS/packer/packer.spec b/SPECS/packer/packer.spec index e818b1c155f..5223e14d85e 100644 --- a/SPECS/packer/packer.spec +++ b/SPECS/packer/packer.spec @@ -4,7 +4,7 @@ Summary: Tool for creating identical machine images for multiple platforms from a single source configuration. Name: packer Version: 1.9.5 -Release: 4%{?dist} +Release: 5%{?dist} License: MPLv2.0 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -17,7 +17,7 @@ Source0: https://github.com/hashicorp/packer/archive/refs/tags/v%{version # 1. wget https://github.com/hashicorp/packer/archive/v%{version}.tar.gz -O %%{name}-%%{version}.tar.gz # 2. tar -xf %%{name}-%%{version}.tar.gz # 3. cd %%{name}-%%{version} -# 4. Apply all patches affecting "go.mod" and "go.sum" files. Example: CVE-2023-49569.patch. +# 4. Apply all patches affecting "go.mod" and "go.sum" files. Example: CVE-2025-21613.patch. # 5. go mod vendor # 6. tar --sort=name \ # --mtime="2021-04-26 00:00Z" \ @@ -30,14 +30,12 @@ Source0: https://github.com/hashicorp/packer/archive/refs/tags/v%{version # - The additional options enable generation of a tarball with the same hash every time regardless of the environment. # See: https://reproducible-builds.org/docs/archives/ # - For the value of "--mtime" use the date "2021-04-26 00:00Z" to simplify future updates. -Source1: %{name}-%{version}-vendor.tar.gz -Patch0: CVE-2023-45288.patch -Patch1: CVE-2022-3064.patch -Patch2: CVE-2023-49569.patch -Patch3: CVE-2024-6104.patch -Patch4: CVE-2024-24786.patch -Patch5: CVE-2024-45337.patch -BuildRequires: golang >= 1.17.1 +Source1: %{name}-%{version}-vendor-v2.tar.gz +Patch0: CVE-2022-3064.patch +Patch1: CVE-2024-6104.patch +Patch2: CVE-2024-24786.patch +Patch3: CVE-2025-21613.patch +BuildRequires: golang >= 1.21 BuildRequires: kernel-headers BuildRequires: glibc-devel @@ -70,6 +68,10 @@ go test -mod=vendor %{_bindir}/packer %changelog +* Thu Jan 09 2025 Sudipta Pandit - 1.9.5-5 +- Add patch for CVE-2025-21613 and CVE-2025-21614 +- Remove patch for CVE-2023-45288, CVE-2023-49569, CVE-2024-45337 + * Fri Dec 20 2024 Aurelien Bombo - 1.9.5-4 - Add patch for CVE-2024-45337 From 41821e42cf056b70707442ed22cf64179095490e Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:02:34 -0800 Subject: [PATCH 017/163] [AUTO-CHERRYPICK] Fix CVE-2024-56732 for harfbuzz - branch 3.0-dev (#11866) Co-authored-by: Sudipta Pandit --- SPECS/harfbuzz/CVE-2024-56732.patch | 59 +++++++++++++++++++++++++++++ SPECS/harfbuzz/harfbuzz.spec | 6 ++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 SPECS/harfbuzz/CVE-2024-56732.patch diff --git a/SPECS/harfbuzz/CVE-2024-56732.patch b/SPECS/harfbuzz/CVE-2024-56732.patch new file mode 100644 index 00000000000..bf053fdc9f7 --- /dev/null +++ b/SPECS/harfbuzz/CVE-2024-56732.patch @@ -0,0 +1,59 @@ +From 1767f99e2e2196c3fcae27db6d8b60098d3f6d26 Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod +Date: Sun, 10 Nov 2024 22:43:28 -0700 +Subject: [PATCH] [cairo] Guard hb_cairo_glyphs_from_buffer() against bad UTF-8 + +Previously it was assuming valid UTF-8. +--- + src/hb-cairo.cc | 2 ++ + src/hb-utf.hh | 6 ++++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/hb-cairo.cc b/src/hb-cairo.cc +index d8b582c4908..4d22ae059ff 100644 +--- a/src/hb-cairo.cc ++++ b/src/hb-cairo.cc +@@ -1000,6 +1000,7 @@ hb_cairo_glyphs_from_buffer (hb_buffer_t *buffer, + end = start + hb_glyph[i].cluster - hb_glyph[i+1].cluster; + else + end = (const char *) hb_utf_offset_to_pointer ((const uint8_t *) start, ++ (const uint8_t *) utf8, utf8_len, + (signed) (hb_glyph[i].cluster - hb_glyph[i+1].cluster)); + (*clusters)[cluster].num_bytes = end - start; + start = end; +@@ -1020,6 +1021,7 @@ hb_cairo_glyphs_from_buffer (hb_buffer_t *buffer, + end = start + hb_glyph[i].cluster - hb_glyph[i-1].cluster; + else + end = (const char *) hb_utf_offset_to_pointer ((const uint8_t *) start, ++ (const uint8_t *) utf8, utf8_len, + (signed) (hb_glyph[i].cluster - hb_glyph[i-1].cluster)); + (*clusters)[cluster].num_bytes = end - start; + start = end; +diff --git a/src/hb-utf.hh b/src/hb-utf.hh +index 1120bd1cccf..6db9bf2fd79 100644 +--- a/src/hb-utf.hh ++++ b/src/hb-utf.hh +@@ -458,19 +458,21 @@ struct hb_ascii_t + template + static inline const typename utf_t::codepoint_t * + hb_utf_offset_to_pointer (const typename utf_t::codepoint_t *start, ++ const typename utf_t::codepoint_t *text, ++ unsigned text_len, + signed offset) + { + hb_codepoint_t unicode; + + while (offset-- > 0) + start = utf_t::next (start, +- start + utf_t::max_len, ++ text + text_len, + &unicode, + HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT); + + while (offset++ < 0) + start = utf_t::prev (start, +- start - utf_t::max_len, ++ text, + &unicode, + HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT); + diff --git a/SPECS/harfbuzz/harfbuzz.spec b/SPECS/harfbuzz/harfbuzz.spec index f8a7af796af..93362b045ec 100644 --- a/SPECS/harfbuzz/harfbuzz.spec +++ b/SPECS/harfbuzz/harfbuzz.spec @@ -1,13 +1,14 @@ Summary: opentype text shaping engine Name: harfbuzz Version: 8.3.0 -Release: 2%{?dist} +Release: 3%{?dist} License: MIT Vendor: Microsoft Corporation Distribution: Azure Linux Group: System Environment/Libraries URL: https://harfbuzz.github.io/ Source0: https://github.com/%{name}/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz +Patch0: CVE-2024-56732.patch BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(glib-2.0) @@ -90,6 +91,9 @@ find . -type f -name "*.py" -exec sed -i'' -e '1 s|^#!\s*/usr/bin/env\s\+python3 %{_libdir}/libharfbuzz-icu.so.* %changelog +* Wed Jan 08 2025 Sudipta Pandit - 8.3.0-3 +- Patch for CVE-2024-56732 + * Wed Jul 31 2024 Andrew Phelps - 8.3.0-2 - Update file listings to remove duplicate files From d8f78a8f3cfba1697b6937938f54ea068d8f0a91 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:03:10 -0800 Subject: [PATCH 018/163] [AUTO-CHERRYPICK] [AUTOPATCHER-CORE] Upgrade iptraf-ng to 1.2.2 none - branch 3.0-dev (#11867) --- SPECS/iptraf-ng/iptraf-ng.signatures.json | 10 +++++----- SPECS/iptraf-ng/iptraf-ng.spec | 5 ++++- cgmanifest.json | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/SPECS/iptraf-ng/iptraf-ng.signatures.json b/SPECS/iptraf-ng/iptraf-ng.signatures.json index 2bfd3221d23..92d93eeda65 100644 --- a/SPECS/iptraf-ng/iptraf-ng.signatures.json +++ b/SPECS/iptraf-ng/iptraf-ng.signatures.json @@ -1,7 +1,7 @@ { - "Signatures": { - "iptraf-ng-1.2.1.tar.gz": "9f5cef584065420dea1ba32c86126aede1fa9bd25b0f8362b0f9fd9754f00870", - "iptraf-ng-logrotate.conf": "c9c1f849fb04dceeff50aa3e2bd2c40f5e8656e00d1dabcde36e1e9dcfa7a1bb", - "iptraf-ng-tmpfiles.conf": "cd9e13572be9836f8efe6fcea198ccffad97b1db7f97bf0133b7d477f9d65ed0" - } + "Signatures": { + "iptraf-ng-logrotate.conf": "c9c1f849fb04dceeff50aa3e2bd2c40f5e8656e00d1dabcde36e1e9dcfa7a1bb", + "iptraf-ng-tmpfiles.conf": "cd9e13572be9836f8efe6fcea198ccffad97b1db7f97bf0133b7d477f9d65ed0", + "iptraf-ng-1.2.2.tar.gz": "75fd653745ea0705995c25e6c07b34252ecc2563c6a91b007a3a8c26f29cc252" + } } diff --git a/SPECS/iptraf-ng/iptraf-ng.spec b/SPECS/iptraf-ng/iptraf-ng.spec index e6470100552..700c1657171 100644 --- a/SPECS/iptraf-ng/iptraf-ng.spec +++ b/SPECS/iptraf-ng/iptraf-ng.spec @@ -2,7 +2,7 @@ Vendor: Microsoft Corporation Distribution: Azure Linux Summary: A console-based network monitoring utility Name: iptraf-ng -Version: 1.2.1 +Version: 1.2.2 Release: 1%{?dist} Source0: https://github.com/iptraf-ng/iptraf-ng/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: %{name}-logrotate.conf @@ -70,6 +70,9 @@ install -d -m 0755 %{buildroot}/run/%{name}/ %{_prefix}/lib/tmpfiles.d/%{name}.conf %changelog +* Mon Jan 06 2025 CBL-Mariner Servicing Account - 1.2.2-1 +- Auto-upgrade to 1.2.2 - none + * Tue Jun 21 2022 Jon Slobodzian - 1.2.1-1 - Upgrading to fix build break and align with latest ncurses update. - License verified. diff --git a/cgmanifest.json b/cgmanifest.json index f34ce796876..4603d97deb7 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -7441,8 +7441,8 @@ "type": "other", "other": { "name": "iptraf-ng", - "version": "1.2.1", - "downloadUrl": "https://github.com/iptraf-ng/iptraf-ng/archive/v1.2.1.tar.gz" + "version": "1.2.2", + "downloadUrl": "https://github.com/iptraf-ng/iptraf-ng/archive/v1.2.2.tar.gz" } } }, From 39fefe304d2b3972084dd1c2de9826965e302cd8 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:03:37 -0800 Subject: [PATCH 019/163] [AUTO-CHERRYPICK] python-jinja2 : addresss CVE-2024-22195, CVE-2024-34064, CVE-2024-56201, CVE-2024-56326 - branch 3.0-dev (#11868) Co-authored-by: Kanishk Bansal <103916909+Kanishk-Bansal@users.noreply.github.com> --- SPECS/python-jinja2/CVE-2024-22195.patch | 63 ++++++++ SPECS/python-jinja2/CVE-2024-34064.patch | 66 +++++++++ SPECS/python-jinja2/CVE-2024-56201.patch | 32 ++++ SPECS/python-jinja2/CVE-2024-56326.patch | 140 ++++++++++++++++++ SPECS/python-jinja2/python-jinja2.spec | 11 +- .../manifests/package/toolchain_aarch64.txt | 2 +- .../manifests/package/toolchain_x86_64.txt | 2 +- 7 files changed, 312 insertions(+), 4 deletions(-) create mode 100644 SPECS/python-jinja2/CVE-2024-22195.patch create mode 100644 SPECS/python-jinja2/CVE-2024-34064.patch create mode 100644 SPECS/python-jinja2/CVE-2024-56201.patch create mode 100644 SPECS/python-jinja2/CVE-2024-56326.patch diff --git a/SPECS/python-jinja2/CVE-2024-22195.patch b/SPECS/python-jinja2/CVE-2024-22195.patch new file mode 100644 index 00000000000..eb577ccdf59 --- /dev/null +++ b/SPECS/python-jinja2/CVE-2024-22195.patch @@ -0,0 +1,63 @@ +From 3bfb481d9e1c469387ecc7717c4c5cba411d8c79 Mon Sep 17 00:00:00 2001 +From: Kanishk-Bansal +Date: Thu, 2 Jan 2025 06:52:42 +0000 +Subject: [PATCH] Fix CVE-2024-22195 + +--- + src/jinja2/filters.py | 28 +++++++++++++++++++++------- + tests/test_filters.py | 6 ++++++ + 2 files changed, 27 insertions(+), 7 deletions(-) + +diff --git a/src/jinja2/filters.py b/src/jinja2/filters.py +index ed07c4c..c7ecc9b 100644 +--- a/src/jinja2/filters.py ++++ b/src/jinja2/filters.py +@@ -248,13 +248,17 @@ def do_items(value: t.Union[t.Mapping[K, V], Undefined]) -> t.Iterator[t.Tuple[K + yield from value.items() + + ++_space_re = re.compile(r"\s", flags=re.ASCII) ++ ++ + @pass_eval_context + def do_xmlattr( + eval_ctx: "EvalContext", d: t.Mapping[str, t.Any], autospace: bool = True + ) -> str: + """Create an SGML/XML attribute string based on the items in a dict. +- All values that are neither `none` nor `undefined` are automatically +- escaped: ++ ++ If any key contains a space, this fails with a ``ValueError``. Values that ++ are neither ``none`` nor ``undefined`` are automatically escaped. + + .. sourcecode:: html+jinja + +@@ -273,12 +277,22 @@ def do_xmlattr( + + As you can see it automatically prepends a space in front of the item + if the filter returned something unless the second parameter is false. ++ ++ .. versionchanged:: 3.1.3 ++ Keys with spaces are not allowed. + """ +- rv = " ".join( +- f'{escape(key)}="{escape(value)}"' +- for key, value in d.items() +- if value is not None and not isinstance(value, Undefined) +- ) ++ items = [] ++ ++ for key, value in d.items(): ++ if value is None or isinstance(value, Undefined): ++ continue ++ ++ if _space_re.search(key) is not None: ++ raise ValueError(f"Spaces are not allowed in attributes: '{key}'") ++ ++ items.append(f'{escape(key)}="{escape(value)}"') ++ ++ rv = " ".join(items) + + if autospace and rv: + rv = " " + rv + diff --git a/SPECS/python-jinja2/CVE-2024-34064.patch b/SPECS/python-jinja2/CVE-2024-34064.patch new file mode 100644 index 00000000000..3a47aedce5f --- /dev/null +++ b/SPECS/python-jinja2/CVE-2024-34064.patch @@ -0,0 +1,66 @@ +From 71ac6eb2bb8ff62f7b70ca21b1d33fc59f01396d Mon Sep 17 00:00:00 2001 +From: Kanishk-Bansal +Date: Thu, 2 Jan 2025 13:53:49 +0000 +Subject: [PATCH] Fix CVE-2024-34064 + +--- + src/jinja2/filters.py | 22 +++++++++++++++++----- + 1 file changed, 17 insertions(+), 5 deletions(-) + +diff --git a/src/jinja2/filters.py b/src/jinja2/filters.py +index c7ecc9b..bdf6f22 100644 +--- a/src/jinja2/filters.py ++++ b/src/jinja2/filters.py +@@ -248,7 +248,9 @@ def do_items(value: t.Union[t.Mapping[K, V], Undefined]) -> t.Iterator[t.Tuple[K + yield from value.items() + + +-_space_re = re.compile(r"\s", flags=re.ASCII) ++# Check for characters that would move the parser state from key to value. ++# https://html.spec.whatwg.org/#attribute-name-state ++_attr_key_re = re.compile(r"[\s/>=]", flags=re.ASCII) + + + @pass_eval_context +@@ -257,8 +259,14 @@ def do_xmlattr( + ) -> str: + """Create an SGML/XML attribute string based on the items in a dict. + +- If any key contains a space, this fails with a ``ValueError``. Values that +- are neither ``none`` nor ``undefined`` are automatically escaped. ++ **Values** that are neither ``none`` nor ``undefined`` are automatically ++ escaped, safely allowing untrusted user input. ++ ++ User input should not be used as **keys** to this filter. If any key ++ contains a space, ``/`` solidus, ``>`` greater-than sign, or ``=`` equals ++ sign, this fails with a ``ValueError``. Regardless of this, user input ++ should never be used as keys to this filter, or must be separately validated ++ first. + + .. sourcecode:: html+jinja + +@@ -278,6 +286,10 @@ def do_xmlattr( + As you can see it automatically prepends a space in front of the item + if the filter returned something unless the second parameter is false. + ++ .. versionchanged:: 3.1.4 ++ Keys with ``/`` solidus, ``>`` greater-than sign, or ``=`` equals sign ++ are not allowed. ++ + .. versionchanged:: 3.1.3 + Keys with spaces are not allowed. + """ +@@ -287,8 +299,8 @@ def do_xmlattr( + if value is None or isinstance(value, Undefined): + continue + +- if _space_re.search(key) is not None: +- raise ValueError(f"Spaces are not allowed in attributes: '{key}'") ++ if _attr_key_re.search(key) is not None: ++ raise ValueError(f"Invalid character in attribute name: {key!r}") + + items.append(f'{escape(key)}="{escape(value)}"') + +-- +2.45.2 + diff --git a/SPECS/python-jinja2/CVE-2024-56201.patch b/SPECS/python-jinja2/CVE-2024-56201.patch new file mode 100644 index 00000000000..fc09b079d24 --- /dev/null +++ b/SPECS/python-jinja2/CVE-2024-56201.patch @@ -0,0 +1,32 @@ +From da58d627323696d5b0167cc9f1cc9e1070b5e18b Mon Sep 17 00:00:00 2001 +From: Kanishk-Bansal +Date: Thu, 2 Jan 2025 14:24:25 +0000 +Subject: [PATCH] fix CVE-2024-56201 + +--- + src/jinja2/compiler.py | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/jinja2/compiler.py b/src/jinja2/compiler.py +index 3458095..27d86c3 100644 +--- a/src/jinja2/compiler.py ++++ b/src/jinja2/compiler.py +@@ -1122,9 +1122,14 @@ class CodeGenerator(NodeVisitor): + ) + self.writeline(f"if {frame.symbols.ref(alias)} is missing:") + self.indent() ++ # The position will contain the template name, and will be formatted ++ # into a string that will be compiled into an f-string. Curly braces ++ # in the name must be replaced with escapes so that they will not be ++ # executed as part of the f-string. ++ position = self.position(node).replace("{", "{{").replace("}", "}}") + message = ( + "the template {included_template.__name__!r}" +- f" (imported on {self.position(node)})" ++ f" (imported on {position})" + f" does not export the requested name {name!r}" + ) + self.writeline( +-- +2.45.2 + diff --git a/SPECS/python-jinja2/CVE-2024-56326.patch b/SPECS/python-jinja2/CVE-2024-56326.patch new file mode 100644 index 00000000000..e6f3d7fe0ae --- /dev/null +++ b/SPECS/python-jinja2/CVE-2024-56326.patch @@ -0,0 +1,140 @@ +From 241312a0fb234989db874a723dbb2f05907796d3 Mon Sep 17 00:00:00 2001 +From: Kanishk-Bansal +Date: Thu, 2 Jan 2025 14:40:27 +0000 +Subject: [PATCH] Fix CVE-2024-56326 + +--- + src/jinja2/sandbox.py | 75 +++++++++++++++++++++---------------------- + 1 file changed, 37 insertions(+), 38 deletions(-) + +diff --git a/src/jinja2/sandbox.py b/src/jinja2/sandbox.py +index 06d7414..c3f4a33 100644 +--- a/src/jinja2/sandbox.py ++++ b/src/jinja2/sandbox.py +@@ -7,6 +7,7 @@ import typing as t + from _string import formatter_field_name_split # type: ignore + from collections import abc + from collections import deque ++from functools import update_wrapper + from string import Formatter + + from markupsafe import EscapeFormatter +@@ -80,20 +81,6 @@ _mutable_spec: t.Tuple[t.Tuple[t.Type, t.FrozenSet[str]], ...] = ( + ) + + +-def inspect_format_method(callable: t.Callable) -> t.Optional[str]: +- if not isinstance( +- callable, (types.MethodType, types.BuiltinMethodType) +- ) or callable.__name__ not in ("format", "format_map"): +- return None +- +- obj = callable.__self__ +- +- if isinstance(obj, str): +- return obj +- +- return None +- +- + def safe_range(*args: int) -> range: + """A range that can't generate ranges with a length of more than + MAX_RANGE items. +@@ -313,6 +300,9 @@ class SandboxedEnvironment(Environment): + except AttributeError: + pass + else: ++ fmt = self.wrap_str_format(value) ++ if fmt is not None: ++ return fmt + if self.is_safe_attribute(obj, argument, value): + return value + return self.unsafe_undefined(obj, argument) +@@ -330,6 +320,9 @@ class SandboxedEnvironment(Environment): + except (TypeError, LookupError): + pass + else: ++ fmt = self.wrap_str_format(value) ++ if fmt is not None: ++ return fmt + if self.is_safe_attribute(obj, attribute, value): + return value + return self.unsafe_undefined(obj, attribute) +@@ -345,34 +338,43 @@ class SandboxedEnvironment(Environment): + exc=SecurityError, + ) + +- def format_string( +- self, +- s: str, +- args: t.Tuple[t.Any, ...], +- kwargs: t.Dict[str, t.Any], +- format_func: t.Optional[t.Callable] = None, +- ) -> str: +- """If a format call is detected, then this is routed through this +- method so that our safety sandbox can be used for it. ++ def wrap_str_format(self, value: t.Any) -> t.Optional[t.Callable[..., str]]: ++ """If the given value is a ``str.format`` or ``str.format_map`` method, ++ return a new function than handles sandboxing. This is done at access ++ rather than in :meth:`call`, so that calls made without ``call`` are ++ also sandboxed. + """ ++ if not isinstance( ++ value, (types.MethodType, types.BuiltinMethodType) ++ ) or value.__name__ not in ("format", "format_map"): ++ return None ++ f_self: t.Any = value.__self__ ++ if not isinstance(f_self, str): ++ return None ++ str_type: t.Type[str] = type(f_self) ++ is_format_map = value.__name__ == "format_map" + formatter: SandboxedFormatter +- if isinstance(s, Markup): +- formatter = SandboxedEscapeFormatter(self, escape=s.escape) ++ ++ if isinstance(f_self, Markup): ++ formatter = SandboxedEscapeFormatter(self, escape=f_self.escape) + else: + formatter = SandboxedFormatter(self) + +- if format_func is not None and format_func.__name__ == "format_map": +- if len(args) != 1 or kwargs: +- raise TypeError( +- "format_map() takes exactly one argument" +- f" {len(args) + (kwargs is not None)} given" +- ) ++ vformat = formatter.vformat ++ def wrapper(*args: t.Any, **kwargs: t.Any) -> str: ++ if is_format_map: ++ if kwargs: ++ raise TypeError("format_map() takes no keyword arguments") ++ if len(args) != 1: ++ raise TypeError( ++ f"format_map() takes exactly one argument ({len(args)} given)" ++ ) ++ kwargs = args[0] ++ args = () + +- kwargs = args[0] +- args = () ++ return str_type(vformat(f_self, args, kwargs)) + +- rv = formatter.vformat(s, args, kwargs) +- return type(s)(rv) ++ return update_wrapper(wrapper, value) + + def call( + __self, # noqa: B902 +@@ -382,9 +384,6 @@ class SandboxedEnvironment(Environment): + **kwargs: t.Any, + ) -> t.Any: + """Call an object from sandboxed code.""" +- fmt = inspect_format_method(__obj) +- if fmt is not None: +- return __self.format_string(fmt, args, kwargs, __obj) + + # the double prefixes are to avoid double keyword argument + # errors when proxying the call. +-- +2.45.2 + diff --git a/SPECS/python-jinja2/python-jinja2.spec b/SPECS/python-jinja2/python-jinja2.spec index 4cfb5c70a3e..c26b369a551 100644 --- a/SPECS/python-jinja2/python-jinja2.spec +++ b/SPECS/python-jinja2/python-jinja2.spec @@ -1,13 +1,17 @@ Summary: A fast and easy to use template engine written in pure Python Name: python-jinja2 Version: 3.1.2 -Release: 1%{?dist} +Release: 2%{?dist} License: BSD Vendor: Microsoft Corporation Distribution: Azure Linux Group: Development/Languages/Python URL: https://jinja.pocoo.org/ Source0: https://files.pythonhosted.org/packages/source/j/jinja2/Jinja2-%{version}.tar.gz +Patch0: CVE-2024-22195.patch +Patch1: CVE-2024-34064.patch +Patch2: CVE-2024-56201.patch +Patch3: CVE-2024-56326.patch BuildArch: noarch %description @@ -33,7 +37,7 @@ inspired non-XML syntax but supports inline expressions and an optional sandboxed environment. %prep -%autosetup -n Jinja2-%{version} +%autosetup -p1 -n Jinja2-%{version} sed -i 's/\r$//' LICENSE.rst # Fix wrong EOL encoding %build @@ -53,6 +57,9 @@ tox -e py%{python3_version_nodots} %{python3_sitelib}/Jinja2-%{version}-py%{python3_version}.egg-info %changelog +* Thu Jan 2 2025 Kanishk Bansal - 3.1.2-2 +- Address CVE-2024-22195, CVE-2024-34064, CVE-2024-56201, CVE-2024-56326 with an upstream patch. + * Mon Nov 27 2023 Andrew Phelps - 3.1.2-1 - Upgrade to version 3.1.2 diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index eeb45d62e22..f93775571ef 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -538,7 +538,7 @@ python3-debuginfo-3.12.3-5.azl3.aarch64.rpm python3-devel-3.12.3-5.azl3.aarch64.rpm python3-flit-core-3.9.0-1.azl3.noarch.rpm python3-gpg-1.23.2-2.azl3.aarch64.rpm -python3-jinja2-3.1.2-1.azl3.noarch.rpm +python3-jinja2-3.1.2-2.azl3.noarch.rpm python3-libcap-ng-0.8.4-1.azl3.aarch64.rpm python3-libs-3.12.3-5.azl3.aarch64.rpm python3-libxml2-2.11.5-2.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index 4c76101782d..a5660b41442 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -546,7 +546,7 @@ python3-debuginfo-3.12.3-5.azl3.x86_64.rpm python3-devel-3.12.3-5.azl3.x86_64.rpm python3-flit-core-3.9.0-1.azl3.noarch.rpm python3-gpg-1.23.2-2.azl3.x86_64.rpm -python3-jinja2-3.1.2-1.azl3.noarch.rpm +python3-jinja2-3.1.2-2.azl3.noarch.rpm python3-libcap-ng-0.8.4-1.azl3.x86_64.rpm python3-libs-3.12.3-5.azl3.x86_64.rpm python3-libxml2-2.11.5-2.azl3.x86_64.rpm From 1da8035015d346ad5f135f905a12607c45c39606 Mon Sep 17 00:00:00 2001 From: Pawel Winogrodzki Date: Tue, 14 Jan 2025 19:42:49 +0100 Subject: [PATCH 020/163] Added CodeQL configuration to exclude external sources. (#11811) --- .CodeQL.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .CodeQL.yml diff --git a/.CodeQL.yml b/.CodeQL.yml new file mode 100644 index 00000000000..3710c697d95 --- /dev/null +++ b/.CodeQL.yml @@ -0,0 +1,29 @@ +path_classifiers: + library: + # Treat source files for all compiled languages in the specs directories + # as 3rd party library sources because they are not owned by us. + # + # Extensions from https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/. + - "SPECS*/**/*.c" + - "SPECS*/**/*.c++" + - "SPECS*/**/*.cc" + - "SPECS*/**/*.cpp" + - "SPECS*/**/*.cs" + - "SPECS*/**/*.cshtml" + - "SPECS*/**/*.csproj" + - "SPECS*/**/*.cts" + - "SPECS*/**/*.cxx" + - "SPECS*/**/*.go" + - "SPECS*/**/*.h" + - "SPECS*/**/*.h++" + - "SPECS*/**/*.hh" + - "SPECS*/**/*.hpp" + - "SPECS*/**/*.hxx" + - "SPECS*/**/*.java" + - "SPECS*/**/*.kt" + - "SPECS*/**/*.mts" + - "SPECS*/**/*.sln" + - "SPECS*/**/*.swift" + - "SPECS*/**/*.ts" + - "SPECS*/**/*.tsx" + - "SPECS*/**/*.xaml" From cf0f29159d2b5112d058220973c62d67875e5109 Mon Sep 17 00:00:00 2001 From: Alberto Perez Date: Tue, 14 Jan 2025 11:19:52 -0800 Subject: [PATCH 021/163] Identify and Update versions of MOFED dependency SPECS that are present in Azure Linux core (#11841) Co-authored-by: Christopher Co <35273088+christopherco@users.noreply.github.com> --- LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md | 4 +- LICENSES-AND-NOTICES/SPECS/data/licenses.json | 2 + SPECS/mlnx-tools/mlnx-tools.signatures.json | 2 +- SPECS/mlnx-tools/mlnx-tools.spec | 68 ++- SPECS/ofed-docs/ofed-docs.signatures.json | 5 + SPECS/ofed-docs/ofed-docs.spec | 75 +++ .../ofed-scripts/ofed-scripts.signatures.json | 2 +- SPECS/ofed-scripts/ofed-scripts.spec | 160 +++--- SPECS/openmpi/openmpi.signatures.json | 2 +- SPECS/openmpi/openmpi.spec | 6 +- SPECS/perftest/perftest.signatures.json | 2 +- SPECS/perftest/perftest.spec | 9 +- ...Remove-the-bundled-decorator-package.patch | 520 ++++++++++++++++++ .../python-prometheus_client.signatures.json | 5 + .../python-prometheus_client.spec | 196 +++++++ cgmanifest.json | 36 +- 16 files changed, 979 insertions(+), 115 deletions(-) create mode 100644 SPECS/ofed-docs/ofed-docs.signatures.json create mode 100644 SPECS/ofed-docs/ofed-docs.spec create mode 100644 SPECS/python-prometheus_client/0001-Remove-the-bundled-decorator-package.patch create mode 100644 SPECS/python-prometheus_client/python-prometheus_client.signatures.json create mode 100644 SPECS/python-prometheus_client/python-prometheus_client.spec diff --git a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md index a9942f9ccd1..bc5969c8d08 100644 --- a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md +++ b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md @@ -5,14 +5,14 @@ The Azure Linux SPEC files originated from a variety of sources with varying lic | CentOS | [MIT](https://www.centos.org/legal/#licensing-policy) | crash-ptdump-command
delve
fstrm
nodejs-nodemon
rhnlib
rt-setup
rt-tests
rtctl
tuned | | Ceph source | [LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1) | ceph | | Debian | [MIT](https://opensource.org/licenses/MIT) | prometheus-process-exporter | -| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | 389-ds-base
a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capnproto
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpufrequtils
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dhcpcd
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libcxx
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbusmenu
libdc1394
libdecor
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libei
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmd
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libxcvt
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mosh
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp-streams
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-pp
ocaml-ppx-derivers
ocaml-ppx-here
ocaml-ppx-let
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-srpm-macros
ocaml-stdio
ocaml-stdlib-random
ocaml-topkg
ocaml-tyxml
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Refcount
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Match-Simple
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Infix
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-apcu
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
pssh
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-argparse-manpage
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-backoff
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-iniconfig
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-junitxml
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyproject-metadata
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmautospec-core
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xlrd
python-xlsxwriter
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rr
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
shim-unsigned-aarch64
shim-unsigned-x64
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stress-ng
stunnel
subscription-manager
subunit
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-server-Xwayland
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib | +| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | 389-ds-base
a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capnproto
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpufrequtils
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dhcpcd
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libcxx
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbusmenu
libdc1394
libdecor
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libei
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmd
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libxcvt
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mosh
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp-streams
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-pp
ocaml-ppx-derivers
ocaml-ppx-here
ocaml-ppx-let
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-srpm-macros
ocaml-stdio
ocaml-stdlib-random
ocaml-topkg
ocaml-tyxml
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Refcount
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Match-Simple
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Infix
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-apcu
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
pssh
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-argparse-manpage
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-backoff
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-iniconfig
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-junitxml
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-prometheus_client
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyproject-metadata
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmautospec-core
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xlrd
python-xlsxwriter
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rr
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
shim-unsigned-aarch64
shim-unsigned-x64
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stress-ng
stunnel
subscription-manager
subunit
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-server-Xwayland
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib | | Fedora (Copyright Remi Collet) | [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode) | libmemcached-awesome
librabbitmq | | Fedora (ISC) | [ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE) | python-resolvelib | | Magnus Edenhill Open Source | [Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING) | librdkafka | | Microsoft | [Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md) | application-gateway-kubernetes-ingress
asc
azcopy
azure-iot-sdk-c
azure-nvme-utils
azure-storage-cpp
azurelinux-release
azurelinux-repos
azurelinux-rpm-macros
azurelinux-sysinfo
bazel
blobfuse2
bmon
bpftrace
ccache
cert-manager
cf-cli
check-restart
clamav
cloud-hypervisor-cvm
cmake-fedora
containerd
containerd2
coredns
dcos-cli
debugedit
dejavu-fonts
distroless-packages
docker-buildx
docker-cli
docker-compose
doxygen
dtc
elixir
espeak-ng
espeakup
flannel
fluent-bit
freefont
gflags
gh
go-md2man
grpc
grub2-efi-binary-signed
GSL
gtk-update-icon-cache
helm
ig
intel-pf-bb-config
ivykis
jsonbuilder
jx
kata-containers-cc
kata-packages-uvm
keda
keras
kernel-64k-signed
kernel-signed
kernel-uki
kernel-uki-signed
kpatch
kube-vip-cloud-provider
kubernetes
libacvp
libconfini
libconfuse
libgdiplus
libmaxminddb
libmetalink
libsafec
libuv
libxml++
lld
local-path-provisioner
lsb-release
ltp
lttng-consume
mm-common
moby-containerd-cc
moby-engine
msgpack
ncompress
networkd-dispatcher
nlohmann-json
nmap
node-problem-detector
ntopng
opentelemetry-cpp
packer
pcaudiolib
pcre2
perl-Test-Warnings
perl-Text-Template
pigz
prebuilt-ca-certificates
prebuilt-ca-certificates-base
prometheus-adapter
python-cachetools
python-cherrypy
python-cstruct
python-execnet
python-google-pasta
python-libclang
python-libevdev
python-logutils
python-ml-dtypes
python-namex
python-nocasedict
python-omegaconf
python-opt-einsum
python-optree
python-pecan
python-pip
python-pyrpm
python-remoto
python-repoze-lru
python-routes
python-rsa
python-setuptools
python-sphinxcontrib-websupport
python-tensorboard
python-tensorboard-plugin-wit
python-yamlloader
R
rabbitmq-server
rocksdb
rubygem-addressable
rubygem-asciidoctor
rubygem-async
rubygem-async-http
rubygem-async-io
rubygem-async-pool
rubygem-bindata
rubygem-concurrent-ruby
rubygem-connection_pool
rubygem-console
rubygem-cool.io
rubygem-deep_merge
rubygem-digest-crc
rubygem-elastic-transport
rubygem-elasticsearch
rubygem-elasticsearch-api
rubygem-eventmachine
rubygem-excon
rubygem-faraday
rubygem-faraday-em_http
rubygem-faraday-em_synchrony
rubygem-faraday-excon
rubygem-faraday-httpclient
rubygem-faraday-multipart
rubygem-faraday-net_http
rubygem-faraday-net_http_persistent
rubygem-faraday-patron
rubygem-faraday-rack
rubygem-faraday-retry
rubygem-ffi
rubygem-fiber-local
rubygem-fluent-config-regexp-type
rubygem-fluent-logger
rubygem-fluent-plugin-elasticsearch
rubygem-fluent-plugin-kafka
rubygem-fluent-plugin-prometheus
rubygem-fluent-plugin-prometheus_pushgateway
rubygem-fluent-plugin-record-modifier
rubygem-fluent-plugin-rewrite-tag-filter
rubygem-fluent-plugin-systemd
rubygem-fluent-plugin-webhdfs
rubygem-fluent-plugin-windows-exporter
rubygem-fluentd
rubygem-hirb
rubygem-hocon
rubygem-hoe
rubygem-http_parser
rubygem-httpclient
rubygem-io-event
rubygem-jmespath
rubygem-ltsv
rubygem-mini_portile2
rubygem-minitest
rubygem-mocha
rubygem-msgpack
rubygem-multi_json
rubygem-multipart-post
rubygem-net-http-persistent
rubygem-nio4r
rubygem-nokogiri
rubygem-oj
rubygem-parallel
rubygem-power_assert
rubygem-prometheus-client
rubygem-protocol-hpack
rubygem-protocol-http
rubygem-protocol-http1
rubygem-protocol-http2
rubygem-public_suffix
rubygem-puppet-resource_api
rubygem-rdiscount
rubygem-rdkafka
rubygem-rexml
rubygem-ruby-kafka
rubygem-ruby-progressbar
rubygem-rubyzip
rubygem-semantic_puppet
rubygem-serverengine
rubygem-sigdump
rubygem-strptime
rubygem-systemd-journal
rubygem-test-unit
rubygem-thor
rubygem-timers
rubygem-tzinfo
rubygem-tzinfo-data
rubygem-webhdfs
rubygem-webrick
rubygem-yajl-ruby
rubygem-zip-zip
runc
sdbus-cpp
sgx-backwards-compatibility
shim
skopeo
span-lite
sriov-network-device-plugin
SymCrypt
SymCrypt-OpenSSL
systemd-boot-signed
tensorflow
tinyxml2
toml11
tracelogging
umoci
usrsctp
vala
valkey
vnstat
zstd | | Netplan source | [GPLv3](https://github.com/canonical/netplan/blob/main/COPYING) | netplan | | Numad source | [LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) | numad | -| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | libnvidia-container
mlnx-tools
mlx-bootctl
nvidia-container-toolkit
ofed-scripts
perftest | +| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | libnvidia-container
mlnx-tools
mlx-bootctl
nvidia-container-toolkit
ofed-docs
ofed-scripts
perftest | | OpenEuler | [BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE) | pytorch | | OpenMamba | [Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt) | bash-completion | | OpenSUSE | Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing) | ant
ant-junit
antlr
aopalliance
apache-commons-beanutils
apache-commons-cli
apache-commons-codec
apache-commons-collections
apache-commons-collections4
apache-commons-compress
apache-commons-daemon
apache-commons-dbcp
apache-commons-digester
apache-commons-httpclient
apache-commons-io
apache-commons-jexl
apache-commons-lang
apache-commons-lang3
apache-commons-logging
apache-commons-net
apache-commons-pool
apache-commons-pool2
apache-commons-validator
apache-commons-vfs2
apache-parent
args4j
atinject
base64coder
bcel
bea-stax
beust-jcommander
bsf
byaccj
cal10n
cdparanoia
cglib
cni
containerized-data-importer
cpulimit
cri-o
ecj
fillup
flux
gd
geronimo-specs
glassfish-annotation-api
gnu-getopt
gnu-regexp
golang-packaging
guava
guava20
hamcrest
hawtjni-runtime
httpcomponents-core
influx-cli
influxdb
jakarta-taglibs-standard
jansi
jarjar
java-cup
java-cup-bootstrap
javacc
javacc-bootstrap
javassist
jboss-interceptors-1.2-api
jdepend
jflex
jflex-bootstrap
jlex
jline
jna
jsch
jsoup
jsr-305
jtidy
junit
junitperf
jzlib
kubevirt
kured
libcontainers-common
libtheora
libva
libvdpau
lynx
maven-parent
multus
objectweb-anttask
objectweb-asm
objenesis
oro
osgi-annotation
osgi-compendium
osgi-core
patterns-ceph-containers
plexus-classworlds
plexus-interpolation
plexus-pom
plexus-utils
proj
psl-make-dafsa
publicsuffix
qdox
regexp
relaxngDatatype
rhino
ripgrep
servletapi4
servletapi5
shapelib
slf4j
trilead-ssh2
virtiofsd
xalan-j2
xbean
xcursor-themes
xerces-j2
xml-commons-apis
xml-commons-resolver
xmldb-api
xmlrpc-c
xmlunit
xpp2
xpp3
xz-java | diff --git a/LICENSES-AND-NOTICES/SPECS/data/licenses.json b/LICENSES-AND-NOTICES/SPECS/data/licenses.json index 80f62df89c0..272fbba826c 100644 --- a/LICENSES-AND-NOTICES/SPECS/data/licenses.json +++ b/LICENSES-AND-NOTICES/SPECS/data/licenses.json @@ -1764,6 +1764,7 @@ "python-poetry-core", "python-process-tests", "python-productmd", + "python-prometheus_client", "python-ptyprocess", "python-pycares", "python-pycosat", @@ -2458,6 +2459,7 @@ "mlnx-tools", "mlx-bootctl", "nvidia-container-toolkit", + "ofed-docs", "ofed-scripts", "perftest" ] diff --git a/SPECS/mlnx-tools/mlnx-tools.signatures.json b/SPECS/mlnx-tools/mlnx-tools.signatures.json index 4eec62b33dd..5efcf940176 100644 --- a/SPECS/mlnx-tools/mlnx-tools.signatures.json +++ b/SPECS/mlnx-tools/mlnx-tools.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "mlnx-tools-5.2.0.tar.gz": "dab127335ef7698074a234a0937a261682c48674fe7bbaaefe1ac34ee30d68fb" + "mlnx-tools-24.10.tar.gz": "7459a03eebc0c7f939ff9356dc0bcca4ad64120f957623f03f74523d62ee392d" } } diff --git a/SPECS/mlnx-tools/mlnx-tools.spec b/SPECS/mlnx-tools/mlnx-tools.spec index 43492ae788f..adfc50da576 100644 --- a/SPECS/mlnx-tools/mlnx-tools.spec +++ b/SPECS/mlnx-tools/mlnx-tools.spec @@ -26,38 +26,38 @@ # # -%global MLNX_OFED_VERSION 5.6-1.0.3.3 -%global BF_VERSION 3.9.0 +%global MLNX_OFED_VERSION 24.10-0.7.0.0 Summary: Mellanox userland tools and scripts Name: mlnx-tools -Version: 5.2.0 -Release: 2%{?dist} -License: CPL 1.0 or BSD or GPLv2 +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 or BSD Vendor: Microsoft Corporation Distribution: Azure Linux -Group: System Environment/Programming +Group: Applications/System URL: https://github.com/Mellanox/mlnx-tools -Source0: https://linux.mellanox.com/public/repo/bluefield/%{BF_VERSION}/extras/mlnx_ofed/%{MLNX_OFED_VERSION}/SOURCES/%{name}_%{version}.orig.tar.gz#/%{name}-%{version}.tar.gz +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/%{MLNX_OFED_VERSION}/SRPMS/%{name}-%{version}.tar.gz Obsoletes: mlnx-ofa_kernel < 5.4 Obsoletes: mlnx_en-utils < 5.4 +BuildRoot: %{?build_root:%{build_root}}%{!?build_root:/var/tmp/%{name}} + %description Mellanox userland tools and scripts -%define debug_package %{nil} -%define __python %{_bindir}/python3 -BuildRequires: python3 -# mlnx_tune is python2 but is not important enough to create a dependency -# on python2 in a python3 system: -%global __requires_exclude_from mlnx_tune +%global RHEL8 0%{?rhel} >= 8 +%global FEDORA3X 0%{?fedora} >= 30 +%global SLES15 0%{?suse_version} >= 1500 +%global OPENEULER 0%{?openEuler} >= 2 +%global PYTHON3 %{RHEL8} || %{FEDORA3X} || %{SLES15} || %{OPENEULER} +%global python_dir %{_datadir}/%{name}/python %prep -%autosetup -n %{name}-%{version} - -%build +%setup -n %{name}-%{version} %install +rm -rf %{buildroot} add_env() { @@ -74,37 +74,47 @@ EOF } touch mlnx-tools-files -mlnx_python_sitelib=%{python_sitelib} -if [ "$(echo %{_prefix} | sed -e 's@/@@g')" != "usr" ]; then - mlnx_python_sitelib=$(echo %{python_sitelib} | sed -e 's@/usr@%{_prefix}@') -fi export PKG_VERSION="%{version}" -%make_install PYTHON="%__python" PYTHON_SETUP_EXTRA_ARGS="-O1 --prefix=%{buildroot}%{_prefix} --install-lib=%{buildroot}${mlnx_python_sitelib}" +%make_install +%if %PYTHON3 +sed -i -e '1s/python\>/python3/' %{buildroot}/usr/{s,}bin/* \ + %{buildroot}%{python_dir}/*.py +%endif -if [ "$(echo %{_prefix} | sed -e 's@/@@g')" != "usr" ]; then +%if "%{_prefix}" != "/usr" conf_env=/etc/profile.d/mlnx-tools.sh install -d %{buildroot}/etc/profile.d - add_env %{buildroot}$conf_env PYTHONPATH $mlnx_python_sitelib add_env %{buildroot}$conf_env PATH %{_bindir} add_env %{buildroot}$conf_env PATH %{_sbindir} echo $conf_env >> mlnx-tools-files -fi -find %{buildroot}${mlnx_python_sitelib} -type f -print | sed -e 's@%{buildroot}@@' >> mlnx-tools-files +%endif + +%clean +rm -rf %{buildroot} +%if "%{_prefix}" != "/usr" %files -f mlnx-tools-files +%else +%files +%endif +%license LICENSE %doc doc/* -%license debian/copyright %defattr(-,root,root,-) /sbin/sysctl_perf_tuning /sbin/mlnx_bf_configure -/sbin/mlnx_bf_configure_ct /sbin/mlnx-sf %{_sbindir}/* %{_bindir}/* -%{_mandir}/man8/ib2ib_setup.8* +%{_mandir}/man8/*.8* +%{python_dir}/dcbnetlink.py* +%{python_dir}/netlink.py* +%exclude %{python_dir}/__pycache__/*.pyc /lib/udev/mlnx_bf_udev %changelog +* Thu Jan 09 2025 Alberto David Perez Guevara 24.10-1 +- Upgrade package to version 24.10 + * Fri Jul 22 2022 Rachel Menge 5.2.0-2 - Initial CBL-Mariner import from NVIDIA (license: GPLv2). - Lint spec to conform to Mariner @@ -113,5 +123,5 @@ find %{buildroot}${mlnx_python_sitelib} -type f -print | sed -e 's@%{buildroot}@ * Wed May 12 2021 Tzafrir Cohen - 5.2.0-1 - MLNX_OFED branch -* Wed Nov 1 2017 Vladimir Sokolovsky - 4.6.0-1 +* Wed Nov 01 2017 Vladimir Sokolovsky - 4.6.0-1 - Initial packaging diff --git a/SPECS/ofed-docs/ofed-docs.signatures.json b/SPECS/ofed-docs/ofed-docs.signatures.json new file mode 100644 index 00000000000..b3f36eb9671 --- /dev/null +++ b/SPECS/ofed-docs/ofed-docs.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "ofed-docs-24.10.tar.gz": "ca307e3ef7407d9f4386fe021dd3f130d114f793884e60493ae129fdc83f7478" + } +} diff --git a/SPECS/ofed-docs/ofed-docs.spec b/SPECS/ofed-docs/ofed-docs.spec new file mode 100644 index 00000000000..15de25c3357 --- /dev/null +++ b/SPECS/ofed-docs/ofed-docs.spec @@ -0,0 +1,75 @@ +# +# Copyright (c) 2012 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# +# $Id: ofed-docs.spec 7948 2006-06-13 12:42:34Z vlad $ +# + +%global MLNX_OFED_VERSION 24.10-0.7.0.0 +Summary: OFED docs +Name: ofed-docs +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Vendor: Microsoft Corporation +Distribution: Azure Linux +URL: https://www.openfabrics.org +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/%{MLNX_OFED_VERSION}/SRPMS/%{name}-%{version}.tar.gz +Group: Documentation/Man + +BuildRoot: %{?build_root:%{build_root}}%{!?build_root:/var/tmp/%{name}-%{version}-root} + +%description +OpenFabrics documentation + +%prep +%setup -q -n %{name}-%{version} + +%install +mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}-%{version} +cp -a * $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}-%{version} + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%license LICENSE +%defattr(-,root,root) +%{_defaultdocdir}/%{name}-%{version} + +%changelog +* Wed Jan 08 2025 Alberto David Perez Guevara 24.10-1 +- Initial Azure Linux import from NVIDIA (license: GPLv2). +- License verified. + +* Sun Mar 25 2007 Vladimir Sokolovsky +- Changed prefix + +* Thu Jul 27 2006 Vladimir Sokolovsky +- Changed version to 1.1 + +* Tue Jun 06 2006 Vladimir Sokolovsky +- Initial packaging diff --git a/SPECS/ofed-scripts/ofed-scripts.signatures.json b/SPECS/ofed-scripts/ofed-scripts.signatures.json index aa45f94e928..02c6b9a470c 100644 --- a/SPECS/ofed-scripts/ofed-scripts.signatures.json +++ b/SPECS/ofed-scripts/ofed-scripts.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "ofed-scripts-5.6.tar.gz": "43c4b4feef0101d68774ca6f7780eacd5d888beaf6514b155d7987337f1aa968" + "ofed-scripts-24.10.tar.gz": "c27e6739dd878e8879945e8d15b5d0950a5b80597a21b60e1018bf707e281f20" } } diff --git a/SPECS/ofed-scripts/ofed-scripts.spec b/SPECS/ofed-scripts/ofed-scripts.spec index 400099ace80..f0bdf14bdd6 100644 --- a/SPECS/ofed-scripts/ofed-scripts.spec +++ b/SPECS/ofed-scripts/ofed-scripts.spec @@ -28,104 +28,128 @@ # $Id: ofed-scripts.spec 8402 2006-07-06 06:35:57Z vlad $ # +%global MLNX_OFED_VERSION 24.10-0.7.0.0 + Summary: OFED scripts Name: ofed-scripts -# Update long_release with the OFED version along with version updates -Version: 5.6 +Version: 24.10 Release: 1%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux Group: System Environment/Base URL: https://www.openfabrics.org -Source0: https://linux.mellanox.com/public/repo/doca/1.3.0/extras/mlnx_ofed/5.6-1.0.3.3/SOURCES/ofed-scripts_5.6.orig.tar.gz#/%{name}-%{version}.tar.gz +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/%{MLNX_OFED_VERSION}/SRPMS/%{name}-%{version}.tar.gz + +BuildRoot: %{?build_root:%{build_root}}%{!?build_root:/var/tmp/%{name}-%{version}-root} +%global CUSTOM_PREFIX %(if ( echo %{_prefix} | grep -E "^/usr$|^/usr/$" > /dev/null ); then echo -n '0'; else echo -n '1'; fi) +%global RHEL8 0%{?rhel} >= 8 +%global FEDORA3X 0%{?fedora} >= 30 +%global SLES15 0%{?suse_version} >= 1500 +%global PYTHON3 %{RHEL8} || %{FEDORA3X} || %{SLES15} %global debug_package %{nil} -%global long_release OFED.5.6.1.0.3 + +# Packages that are no longer in MLNX_OFED and break package manager +# upgrade: +Obsoletes: ar_mgr %description -OpenFabrics scripts from NVIDA %long_release +OpenFabrics scripts %prep -%autosetup -p1 -n %{name}-%{version} +[ "${RPM_BUILD_ROOT}" != "/" -a -d ${RPM_BUILD_ROOT} ] && rm -rf $RPM_BUILD_ROOT +%setup -q -n %{name}-%{version} %build %install - -install -d %{buildroot}%{_bindir} -install -d %{buildroot}%{_sbindir} -install -m 0755 uninstall.sh %{buildroot}%{_sbindir}/ofed_uninstall.sh -install -m 0755 sysinfo-snapshot.py %{buildroot}%{_sbindir} -install -m 0755 vendor_pre_uninstall.sh %{buildroot}%{_sbindir} -install -m 0755 vendor_post_uninstall.sh %{buildroot}%{_sbindir} -install -m 0755 ofed_info %{buildroot}%{_bindir} -install -m 0755 ofed_rpm_info %{buildroot}%{_bindir} -# Mariner not yet supported upstream -# install -m 0755 hca_self_test.ofed %{buildroot}%{_bindir} - -%post -if [ $1 -ge 1 ]; then #This package is being installed or reinstalled - if [ -e /etc/yum.conf ]; then - list="ibutils-libs" - lista=`echo ${list} | sed -e "s/ /* /g" -e "s/$/*/"` - - if [ -n "$list" ]; then - if ( grep -q "^exclude=" /etc/yum.conf ); then - new_list= - for pkg in $list - do - if (grep "^exclude=" /etc/yum.conf | grep -wq "$pkg"); then - continue - else - new_list="$new_list ${pkg}*" - fi - done - perl -ni -e "s@^(exclude=.*)@\$1 $new_list@;print" /etc/yum.conf - else - perl -i -ne "if (m@^\[main\]@) { - print q@[main] -exclude=$lista -@; - } else { - print; - }" /etc/yum.conf - fi - fi - fi +%if "%{CUSTOM_PREFIX}" == "1" +touch ofed-files +%endif + +install -d $RPM_BUILD_ROOT%{_prefix}/bin +install -d $RPM_BUILD_ROOT%{_prefix}/sbin +install -m 0755 uninstall.sh $RPM_BUILD_ROOT%{_prefix}/sbin/ofed_uninstall.sh +install -m 0755 sysinfo-snapshot.py $RPM_BUILD_ROOT%{_prefix}/sbin +install -m 0755 vendor_pre_uninstall.sh $RPM_BUILD_ROOT%{_prefix}/sbin +install -m 0755 vendor_post_uninstall.sh $RPM_BUILD_ROOT%{_prefix}/sbin +install -m 0755 ofed_info $RPM_BUILD_ROOT%{_prefix}/bin +install -m 0755 ofed_rpm_info $RPM_BUILD_ROOT%{_prefix}/bin +install -m 0755 hca_self_test.ofed $RPM_BUILD_ROOT%{_prefix}/bin + +%if ! (%{PYTHON3}) +sed -s -i -e '1s|python3\>|python|' $RPM_BUILD_ROOT%{_prefix}/sbin/sysinfo-snapshot.py +%endif + +%if "%{CUSTOM_PREFIX}" == "1" +install -d $RPM_BUILD_ROOT/etc/profile.d +cat > $RPM_BUILD_ROOT/etc/profile.d/ofed.sh << EOF +if ! echo \${PATH} | grep -q %{_prefix}/bin ; then + PATH=\${PATH}:%{_prefix}/bin fi +if ! echo \${PATH} | grep -q %{_prefix}/sbin ; then + PATH=\${PATH}:%{_prefix}/sbin +fi +if ! echo \${MANPATH} | grep -q %{_mandir} ; then + MANPATH=\${MANPATH}:%{_mandir} +fi +EOF +cat > $RPM_BUILD_ROOT/etc/profile.d/ofed.csh << EOF +if (\$?path) then +if ( "\${path}" !~ *%{_prefix}/bin* ) then + set path = ( \$path %{_prefix}/bin ) +endif +if ( "\${path}" !~ *%{_prefix}/sbin* ) then + set path = ( \$path %{_prefix}/sbin ) +endif +else + set path = ( %{_prefix}/bin %{_prefix}/sbin ) +endif +if (\$?MANPATH) then +if ( "\${MANPATH}" !~ *%{_mandir}* ) then + setenv MANPATH \${MANPATH}:%{_mandir} +endif +else + setenv MANPATH %{_mandir}: +endif +EOF + +install -d $RPM_BUILD_ROOT/etc/ld.so.conf.d +echo %{_libdir} > $RPM_BUILD_ROOT/etc/ld.so.conf.d/ofed.conf +%ifarch x86_64 ppc64 +echo "%{_prefix}/lib" >> $RPM_BUILD_ROOT/etc/ld.so.conf.d/ofed.conf +%endif +echo "/etc/profile.d/ofed.sh" >> ofed-files +echo "/etc/profile.d/ofed.csh" >> ofed-files +echo "/etc/ld.so.conf.d/ofed.conf" >> ofed-files + +%endif +# End of CUSTOM_PREFIX +%post /sbin/ldconfig %postun -if [ $1 = 0 ]; then #Erase, not upgrade - if [ -e /etc/yum.conf ]; then - list="ibutils-libs" - - if [ -n "$list" ]; then - if ( grep -q "^exclude=" /etc/yum.conf ); then - for pkg in $list - do - if (grep "^exclude=" /etc/yum.conf | grep -wq "$pkg"); then - sed -i -e "s/\<$pkg\>\*//" /etc/yum.conf - sed -i -e "s/\<$pkg\>//" /etc/yum.conf - fi - done - fi - fi - perl -ni -e "print unless /^exclude=\s+$/" /etc/yum.conf - sed -i -e "s/^exclude= \{1,\}/exclude=/" -e "s/ \{1,\}$//" /etc/yum.conf - fi -fi /sbin/ldconfig +%clean +[ "${RPM_BUILD_ROOT}" != "/" -a -d ${RPM_BUILD_ROOT} ] && rm -rf $RPM_BUILD_ROOT + +%if "%{CUSTOM_PREFIX}" == "1" +%files -f ofed-files +%else %files +%endif %defattr(-,root,root) %license debian/copyright -%{_bindir}/* -%{_sbindir}/* +%{_prefix}/bin/* +%{_prefix}/sbin/* %changelog +* Wed Jan 08 2025 Alberto David Perez Guevara 24.10-1 +- Upgrade version to 24.10.0 + * Fri Jul 22 2022 Rachel Menge - 5.6-1 - Initial CBL-Mariner import from NVIDIA (license: GPLv2) - License verified diff --git a/SPECS/openmpi/openmpi.signatures.json b/SPECS/openmpi/openmpi.signatures.json index 21396d279dd..69a359be075 100644 --- a/SPECS/openmpi/openmpi.signatures.json +++ b/SPECS/openmpi/openmpi.signatures.json @@ -3,6 +3,6 @@ "openmpi.module.in": "695a70da40deac62deb3dc69a00320d8001fc7a85cc41ee5a4bf5a2b4bdfbe41", "openmpi.pth.py3": "2acaeda51628ea81b01876497dc4c84fe056317391262cab92e9dd40b0721e74", "macros.openmpi": "28e4f31b72a33a1e9ad593c3bcfe37652f6281895c352795f93c50fcdd0fab6e", - "openmpi-4.1.5.tar.bz2": "a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3" + "openmpi-4.1.7.tar.bz2": "54a33cb7ad81ff0976f15a6cc8003c3922f0f3d8ceed14e1813ef3603f22cd34" } } diff --git a/SPECS/openmpi/openmpi.spec b/SPECS/openmpi/openmpi.spec index b2205b19dd1..beb8bd84f1e 100644 --- a/SPECS/openmpi/openmpi.spec +++ b/SPECS/openmpi/openmpi.spec @@ -27,7 +27,7 @@ %global __requires_exclude lib(mca|ompi|open-(pal|rte|trace)|vt).* Summary: Open Message Passing Interface Name: openmpi%{?_cc_name_suffix} -Version: 4.1.5 +Version: 4.1.7 Release: 1%{?dist} License: BSD AND MIT Vendor: Microsoft Corporation @@ -233,6 +233,7 @@ make check %{_libdir}/%{name}/lib/libmca_common_ofi.so.10* %{_libdir}/%{name}/lib/libmca*.so.41* %{_libdir}/%{name}/lib/libmca*.so.50* +%{_libdir}/%{name}/lib/lib* %{_mandir}/%{namearch}/man1/mpi[er]* %{_mandir}/%{namearch}/man1/ompi* %{_mandir}/%{namearch}/man1/orte[-dr_]* @@ -303,6 +304,9 @@ make check %{python3_sitearch}/openmpi.pth %changelog +* Thu Jan 09 2025 Alberto David Perez Guevara - 4.1.7-1 +- Upgrade to 4.1.7 - Azure Linux 3.0 - package upgrades + * Mon Nov 06 2023 CBL-Mariner Servicing Account - 4.1.5-1 - Auto-upgrade to 4.1.5 - Azure Linux 3.0 - package upgrades diff --git a/SPECS/perftest/perftest.signatures.json b/SPECS/perftest/perftest.signatures.json index f18945907ca..30096a64469 100644 --- a/SPECS/perftest/perftest.signatures.json +++ b/SPECS/perftest/perftest.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "perftest-24.01.0.tar.gz": "bdb9276b0770e37b37cfe5407bde1e0b52cd538967521d69e4c6c599731df3bc" + "perftest-24.10.0.tar.gz": "e81308122e667361ddaac9efb5af7fbfdf177df92bc19587291a8ea78322f239" } } diff --git a/SPECS/perftest/perftest.spec b/SPECS/perftest/perftest.spec index 641276cf083..be339ec9c87 100644 --- a/SPECS/perftest/perftest.spec +++ b/SPECS/perftest/perftest.spec @@ -1,9 +1,9 @@ -%global extended_release 0.38.gd185c9b -%global MLNX_OFED_VERSION 24.01-0.3.3.1 +%global extended_release 0.65.g9093bae +%global MLNX_OFED_VERSION 24.10-0.7.0.0 Summary: IB Performance tests Name: perftest # Update extended_release with version updates -Version: 24.01.0 +Version: 24.10.0 Release: 1%{?dist} License: BSD or GPLv2 Vendor: Microsoft Corporation @@ -38,6 +38,9 @@ chmod -x runme %_mandir/man1/*.1* %changelog +* Wed Jan 08 2025 Alberto David Perez Guevara - 24.10.0-1 +- Upgrade version to 24.10.0 + * Wed Apr 03 2024 Juan Camposeco - 24.01.0-1 - Upgrade version to 24.01.0 diff --git a/SPECS/python-prometheus_client/0001-Remove-the-bundled-decorator-package.patch b/SPECS/python-prometheus_client/0001-Remove-the-bundled-decorator-package.patch new file mode 100644 index 00000000000..45f8a5c9987 --- /dev/null +++ b/SPECS/python-prometheus_client/0001-Remove-the-bundled-decorator-package.patch @@ -0,0 +1,520 @@ +From 522eb96525eebcc0fde047603f00c8df15fd98ef Mon Sep 17 00:00:00 2001 +From: mprahl +Date: Thu, 16 Jun 2022 22:26:53 +0200 +Subject: [PATCH] Remove the bundled decorator package +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Co-Authored-By: Miro Hrončok +--- + NOTICE | 3 - + prometheus_client/context_managers.py | 2 +- + prometheus_client/decorator.py | 427 -------------------------- + setup.py | 1 + + tests/test_core.py | 12 +- + 5 files changed, 13 insertions(+), 432 deletions(-) + delete mode 100644 prometheus_client/decorator.py + +diff --git a/NOTICE b/NOTICE +index 59efb6c..0675ae1 100644 +--- a/NOTICE ++++ b/NOTICE +@@ -1,5 +1,2 @@ + Prometheus instrumentation library for Python applications + Copyright 2015 The Prometheus Authors +- +-This product bundles decorator 4.0.10 which is available under a "2-clause BSD" +-license. For details, see prometheus_client/decorator.py. +diff --git a/prometheus_client/context_managers.py b/prometheus_client/context_managers.py +index 3988ec2..4ff071b 100644 +--- a/prometheus_client/context_managers.py ++++ b/prometheus_client/context_managers.py +@@ -5,7 +5,7 @@ from typing import ( + Union, + ) + +-from .decorator import decorate ++from decorator import decorate + + if TYPE_CHECKING: + from . import Counter +diff --git a/prometheus_client/decorator.py b/prometheus_client/decorator.py +deleted file mode 100644 +index 1ad2c97..0000000 +--- a/prometheus_client/decorator.py ++++ /dev/null +@@ -1,427 +0,0 @@ +-# ######################### LICENSE ############################ # +- +-# Copyright (c) 2005-2016, Michele Simionato +-# All rights reserved. +- +-# Redistribution and use in source and binary forms, with or without +-# modification, are permitted provided that the following conditions are +-# met: +- +-# Redistributions of source code must retain the above copyright +-# notice, this list of conditions and the following disclaimer. +-# Redistributions in bytecode form must reproduce the above copyright +-# notice, this list of conditions and the following disclaimer in +-# the documentation and/or other materials provided with the +-# distribution. +- +-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +-# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +-# DAMAGE. +- +-""" +-Decorator module, see http://pypi.python.org/pypi/decorator +-for the documentation. +-""" +-from __future__ import print_function +- +-import collections +-import inspect +-import itertools +-import operator +-import re +-import sys +- +-__version__ = '4.0.10' +- +-if sys.version_info >= (3,): +- from inspect import getfullargspec +- +- +- def get_init(cls): +- return cls.__init__ +-else: +- class getfullargspec(object): +- "A quick and dirty replacement for getfullargspec for Python 2.X" +- +- def __init__(self, f): +- self.args, self.varargs, self.varkw, self.defaults = \ +- inspect.getargspec(f) +- self.kwonlyargs = [] +- self.kwonlydefaults = None +- +- def __iter__(self): +- yield self.args +- yield self.varargs +- yield self.varkw +- yield self.defaults +- +- getargspec = inspect.getargspec +- +- +- def get_init(cls): +- return cls.__init__.__func__ +- +-# getargspec has been deprecated in Python 3.5 +-ArgSpec = collections.namedtuple( +- 'ArgSpec', 'args varargs varkw defaults') +- +- +-def getargspec(f): +- """A replacement for inspect.getargspec""" +- spec = getfullargspec(f) +- return ArgSpec(spec.args, spec.varargs, spec.varkw, spec.defaults) +- +- +-DEF = re.compile(r'\s*def\s*([_\w][_\w\d]*)\s*\(') +- +- +-# basic functionality +-class FunctionMaker(object): +- """ +- An object with the ability to create functions with a given signature. +- It has attributes name, doc, module, signature, defaults, dict and +- methods update and make. +- """ +- +- # Atomic get-and-increment provided by the GIL +- _compile_count = itertools.count() +- +- def __init__(self, func=None, name=None, signature=None, +- defaults=None, doc=None, module=None, funcdict=None): +- self.shortsignature = signature +- if func: +- # func can be a class or a callable, but not an instance method +- self.name = func.__name__ +- if self.name == '': # small hack for lambda functions +- self.name = '_lambda_' +- self.doc = func.__doc__ +- self.module = func.__module__ +- if inspect.isfunction(func): +- argspec = getfullargspec(func) +- self.annotations = getattr(func, '__annotations__', {}) +- for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs', +- 'kwonlydefaults'): +- setattr(self, a, getattr(argspec, a)) +- for i, arg in enumerate(self.args): +- setattr(self, 'arg%d' % i, arg) +- if sys.version_info < (3,): # easy way +- self.shortsignature = self.signature = ( +- inspect.formatargspec( +- formatvalue=lambda val: "", *argspec)[1:-1]) +- else: # Python 3 way +- allargs = list(self.args) +- allshortargs = list(self.args) +- if self.varargs: +- allargs.append('*' + self.varargs) +- allshortargs.append('*' + self.varargs) +- elif self.kwonlyargs: +- allargs.append('*') # single star syntax +- for a in self.kwonlyargs: +- allargs.append('%s=None' % a) +- allshortargs.append('%s=%s' % (a, a)) +- if self.varkw: +- allargs.append('**' + self.varkw) +- allshortargs.append('**' + self.varkw) +- self.signature = ', '.join(allargs) +- self.shortsignature = ', '.join(allshortargs) +- self.dict = func.__dict__.copy() +- # func=None happens when decorating a caller +- if name: +- self.name = name +- if signature is not None: +- self.signature = signature +- if defaults: +- self.defaults = defaults +- if doc: +- self.doc = doc +- if module: +- self.module = module +- if funcdict: +- self.dict = funcdict +- # check existence required attributes +- assert hasattr(self, 'name') +- if not hasattr(self, 'signature'): +- raise TypeError('You are decorating a non function: %s' % func) +- +- def update(self, func, **kw): +- "Update the signature of func with the data in self" +- func.__name__ = self.name +- func.__doc__ = getattr(self, 'doc', None) +- func.__dict__ = getattr(self, 'dict', {}) +- func.__defaults__ = getattr(self, 'defaults', ()) +- func.__kwdefaults__ = getattr(self, 'kwonlydefaults', None) +- func.__annotations__ = getattr(self, 'annotations', None) +- try: +- frame = sys._getframe(3) +- except AttributeError: # for IronPython and similar implementations +- callermodule = '?' +- else: +- callermodule = frame.f_globals.get('__name__', '?') +- func.__module__ = getattr(self, 'module', callermodule) +- func.__dict__.update(kw) +- +- def make(self, src_templ, evaldict=None, addsource=False, **attrs): +- "Make a new function from a given template and update the signature" +- src = src_templ % vars(self) # expand name and signature +- evaldict = evaldict or {} +- mo = DEF.match(src) +- if mo is None: +- raise SyntaxError('not a valid function template\n%s' % src) +- name = mo.group(1) # extract the function name +- names = set([name] + [arg.strip(' *') for arg in +- self.shortsignature.split(',')]) +- for n in names: +- if n in ('_func_', '_call_'): +- raise NameError('%s is overridden in\n%s' % (n, src)) +- +- if not src.endswith('\n'): # add a newline for old Pythons +- src += '\n' +- +- # Ensure each generated function has a unique filename for profilers +- # (such as cProfile) that depend on the tuple of (, +- # , ) being unique. +- filename = '' % (next(self._compile_count),) +- try: +- code = compile(src, filename, 'single') +- exec(code, evaldict) +- except: +- print('Error in generated code:', file=sys.stderr) +- print(src, file=sys.stderr) +- raise +- func = evaldict[name] +- if addsource: +- attrs['__source__'] = src +- self.update(func, **attrs) +- return func +- +- @classmethod +- def create(cls, obj, body, evaldict, defaults=None, +- doc=None, module=None, addsource=True, **attrs): +- """ +- Create a function from the strings name, signature and body. +- evaldict is the evaluation dictionary. If addsource is true an +- attribute __source__ is added to the result. The attributes attrs +- are added, if any. +- """ +- if isinstance(obj, str): # "name(signature)" +- name, rest = obj.strip().split('(', 1) +- signature = rest[:-1] # strip a right parens +- func = None +- else: # a function +- name = None +- signature = None +- func = obj +- self = cls(func, name, signature, defaults, doc, module) +- ibody = '\n'.join(' ' + line for line in body.splitlines()) +- return self.make('def %(name)s(%(signature)s):\n' + ibody, +- evaldict, addsource, **attrs) +- +- +-def decorate(func, caller): +- """ +- decorate(func, caller) decorates a function using a caller. +- """ +- evaldict = dict(_call_=caller, _func_=func) +- fun = FunctionMaker.create( +- func, "return _call_(_func_, %(shortsignature)s)", +- evaldict, __wrapped__=func) +- if hasattr(func, '__qualname__'): +- fun.__qualname__ = func.__qualname__ +- return fun +- +- +-def decorator(caller, _func=None): +- """decorator(caller) converts a caller function into a decorator""" +- if _func is not None: # return a decorated function +- # this is obsolete behavior; you should use decorate instead +- return decorate(_func, caller) +- # else return a decorator function +- if inspect.isclass(caller): +- name = caller.__name__.lower() +- doc = 'decorator(%s) converts functions/generators into ' \ +- 'factories of %s objects' % (caller.__name__, caller.__name__) +- elif inspect.isfunction(caller): +- if caller.__name__ == '': +- name = '_lambda_' +- else: +- name = caller.__name__ +- doc = caller.__doc__ +- else: # assume caller is an object with a __call__ method +- name = caller.__class__.__name__.lower() +- doc = caller.__call__.__doc__ +- evaldict = dict(_call_=caller, _decorate_=decorate) +- return FunctionMaker.create( +- '%s(func)' % name, 'return _decorate_(func, _call_)', +- evaldict, doc=doc, module=caller.__module__, +- __wrapped__=caller) +- +- +-# ####################### contextmanager ####################### # +- +-try: # Python >= 3.2 +- from contextlib import _GeneratorContextManager +-except ImportError: # Python >= 2.5 +- from contextlib import GeneratorContextManager as _GeneratorContextManager +- +- +-class ContextManager(_GeneratorContextManager): +- def __call__(self, func): +- """Context manager decorator""" +- return FunctionMaker.create( +- func, "with _self_: return _func_(%(shortsignature)s)", +- dict(_self_=self, _func_=func), __wrapped__=func) +- +- +-init = getfullargspec(_GeneratorContextManager.__init__) +-n_args = len(init.args) +-if n_args == 2 and not init.varargs: # (self, genobj) Python 2.7 +- def __init__(self, g, *a, **k): +- return _GeneratorContextManager.__init__(self, g(*a, **k)) +- +- +- ContextManager.__init__ = __init__ +-elif n_args == 2 and init.varargs: # (self, gen, *a, **k) Python 3.4 +- pass +-elif n_args == 4: # (self, gen, args, kwds) Python 3.5 +- def __init__(self, g, *a, **k): +- return _GeneratorContextManager.__init__(self, g, a, k) +- +- +- ContextManager.__init__ = __init__ +- +-contextmanager = decorator(ContextManager) +- +- +-# ############################ dispatch_on ############################ # +- +-def append(a, vancestors): +- """ +- Append ``a`` to the list of the virtual ancestors, unless it is already +- included. +- """ +- add = True +- for j, va in enumerate(vancestors): +- if issubclass(va, a): +- add = False +- break +- if issubclass(a, va): +- vancestors[j] = a +- add = False +- if add: +- vancestors.append(a) +- +- +-# inspired from simplegeneric by P.J. Eby and functools.singledispatch +-def dispatch_on(*dispatch_args): +- """ +- Factory of decorators turning a function into a generic function +- dispatching on the given arguments. +- """ +- assert dispatch_args, 'No dispatch args passed' +- dispatch_str = '(%s,)' % ', '.join(dispatch_args) +- +- def check(arguments, wrong=operator.ne, msg=''): +- """Make sure one passes the expected number of arguments""" +- if wrong(len(arguments), len(dispatch_args)): +- raise TypeError('Expected %d arguments, got %d%s' % +- (len(dispatch_args), len(arguments), msg)) +- +- def gen_func_dec(func): +- """Decorator turning a function into a generic function""" +- +- # first check the dispatch arguments +- argset = set(getfullargspec(func).args) +- if not set(dispatch_args) <= argset: +- raise NameError('Unknown dispatch arguments %s' % dispatch_str) +- +- typemap = {} +- +- def vancestors(*types): +- """ +- Get a list of sets of virtual ancestors for the given types +- """ +- check(types) +- ras = [[] for _ in range(len(dispatch_args))] +- for types_ in typemap: +- for t, type_, ra in zip(types, types_, ras): +- if issubclass(t, type_) and type_ not in t.__mro__: +- append(type_, ra) +- return [set(ra) for ra in ras] +- +- def ancestors(*types): +- """ +- Get a list of virtual MROs, one for each type +- """ +- check(types) +- lists = [] +- for t, vas in zip(types, vancestors(*types)): +- n_vas = len(vas) +- if n_vas > 1: +- raise RuntimeError( +- 'Ambiguous dispatch for %s: %s' % (t, vas)) +- elif n_vas == 1: +- va, = vas +- mro = type('t', (t, va), {}).__mro__[1:] +- else: +- mro = t.__mro__ +- lists.append(mro[:-1]) # discard t and object +- return lists +- +- def register(*types): +- """ +- Decorator to register an implementation for the given types +- """ +- check(types) +- +- def dec(f): +- check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__) +- typemap[types] = f +- return f +- +- return dec +- +- def dispatch_info(*types): +- """ +- An utility to introspect the dispatch algorithm +- """ +- check(types) +- lst = [] +- for anc in itertools.product(*ancestors(*types)): +- lst.append(tuple(a.__name__ for a in anc)) +- return lst +- +- def _dispatch(dispatch_args, *args, **kw): +- types = tuple(type(arg) for arg in dispatch_args) +- try: # fast path +- f = typemap[types] +- except KeyError: +- pass +- else: +- return f(*args, **kw) +- combinations = itertools.product(*ancestors(*types)) +- next(combinations) # the first one has been already tried +- for types_ in combinations: +- f = typemap.get(types_) +- if f is not None: +- return f(*args, **kw) +- +- # else call the default implementation +- return func(*args, **kw) +- +- return FunctionMaker.create( +- func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str, +- dict(_f_=_dispatch), register=register, default=func, +- typemap=typemap, vancestors=vancestors, ancestors=ancestors, +- dispatch_info=dispatch_info, __wrapped__=func) +- +- gen_func_dec.__name__ = 'dispatch_on' + dispatch_str +- return gen_func_dec +diff --git a/setup.py b/setup.py +index 92f6f47..25c4843 100644 +--- a/setup.py ++++ b/setup.py +@@ -26,6 +26,7 @@ setup( + package_data={ + 'prometheus_client': ['py.typed'] + }, ++ install_requires=['decorator'], + extras_require={ + 'twisted': ['twisted'], + }, +diff --git a/tests/test_core.py b/tests/test_core.py +index 6f7c9d1..0555e08 100644 +--- a/tests/test_core.py ++++ b/tests/test_core.py +@@ -1,4 +1,6 @@ + from concurrent.futures import ThreadPoolExecutor ++import collections ++from inspect import getfullargspec + import os + import time + import unittest +@@ -12,10 +14,18 @@ from prometheus_client.core import ( + HistogramMetricFamily, Info, InfoMetricFamily, Metric, Sample, + StateSetMetricFamily, Summary, SummaryMetricFamily, UntypedMetricFamily, + ) +-from prometheus_client.decorator import getargspec + from prometheus_client.metrics import _get_use_created + + ++ArgSpec = collections.namedtuple( ++ 'ArgSpec', 'args varargs varkw defaults') ++ ++def getargspec(f): ++ """A replacement for inspect.getargspec""" ++ spec = getfullargspec(f) ++ return ArgSpec(spec.args, spec.varargs, spec.varkw, spec.defaults) ++ ++ + def assert_not_observable(fn, *args, **kwargs): + """ + Assert that a function call falls with a ValueError exception containing +-- +2.41.0 + diff --git a/SPECS/python-prometheus_client/python-prometheus_client.signatures.json b/SPECS/python-prometheus_client/python-prometheus_client.signatures.json new file mode 100644 index 00000000000..3beac91a011 --- /dev/null +++ b/SPECS/python-prometheus_client/python-prometheus_client.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "python-prometheus_client-0.20.0.tar.gz": "f52b86daa6ac27d63872bf8a436cd399366e9ba50ec51f43252660a5d96eb05f" + } +} diff --git a/SPECS/python-prometheus_client/python-prometheus_client.spec b/SPECS/python-prometheus_client/python-prometheus_client.spec new file mode 100644 index 00000000000..2e811283977 --- /dev/null +++ b/SPECS/python-prometheus_client/python-prometheus_client.spec @@ -0,0 +1,196 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.6.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 3; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +%global srcname prometheus_client + +Name: python-%{srcname} +Version: 0.20.0 +Release: 4%{?dist} +Summary: Python client for Prometheus +Vendor: Microsoft Corporation +Distribution: Azure Linux +License: Apache-2.0 +URL: https://github.com/prometheus/client_python +Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0001: 0001-Remove-the-bundled-decorator-package.patch + +BuildArch: noarch + +%description +%{summary}. + +%package -n python3-%{srcname} +Summary: %{summary} +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3dist(decorator) +BuildRequires: python3dist(pytest) +%{?python_provide:%python_provide python3-%{srcname}} + +%description -n python3-%{srcname} +%{summary}. + +%package -n python3-%{srcname}+twisted +Summary: %{summary} +Requires: python3-%{srcname} = %{version}-%{release} +Requires: python3-twisted +BuildRequires: python3dist(twisted) +%{?python_provide:%python_provide python3-%{srcname}+twisted} + +%description -n python3-%{srcname}+twisted +%{summary}. + +"twisted" extras. + +%prep +%autosetup -p1 -n client_python-%{version} +sed -i -e '1{/^#!/d}' prometheus_client/__init__.py + +%build +%py3_build + +%install +%py3_install + +%check +%{__python3} -m pytest -v + +%files -n python3-%{srcname} +%license LICENSE +%doc README.md MAINTAINERS.md +%{python3_sitelib}/%{srcname}/ +%{python3_sitelib}/%{srcname}-*.egg-info/ + +%files -n python3-%{srcname}+twisted +%{?python_extras_subpkg:%ghost %{python3_sitelib}/%{srcname}-*.egg-info/} + +%changelog +* Thu Jan 09 2025 Alberto David Perez Guevara 0.20.0-4 +- Initial Azure Linux import from Fedora 41 (license: MIT) +- License verified. + +* Fri Jul 19 2024 Fedora Release Engineering - 0.20.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jun 09 2024 Python Maint - 0.20.0-2 +- Rebuilt for Python 3.13 + +* Fri Feb 16 2024 Kai A. Hiller - 0.20.0-1 +- Update to v0.20.0 + +* Fri Jan 26 2024 Fedora Release Engineering - 0.19.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 0.19.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Nov 23 2023 Kai A. Hiller - 0.19.0-1 +- Update to v0.19.0 + +* Wed Nov 15 2023 Kai A. Hiller - 0.18.0-1 +- Update to v0.18.0 + +* Sat Aug 19 2023 Kai A. Hiller - 0.17.1-1 +- Update to v1.17.1 + +* Sat Aug 19 2023 Kai A. Hiller - 0.16.0-4 +- SPDX migration + +* Fri Jul 21 2023 Fedora Release Engineering - 0.16.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 28 2023 Python Maint - 0.16.0-2 +- Rebuilt for Python 3.12 + +* Wed Mar 29 2023 Kai A. Hiller - 0.16.0-1 +- Update to v0.16.0 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.13.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.13.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 14 2022 Python Maint - 0.13.1-2 +- Rebuilt for Python 3.11 + +* Tue Feb 01 2022 Matt Prahl - 0.13.1-1 +- Update to 0.13.1 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.9.0-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 0.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Dec 12 2020 Igor Raits - 0.9.0-1 +- Update to 0.9.0 + +* Sat Aug 01 2020 Fedora Release Engineering - 0.7.1-6 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.7.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Miro Hrončok - 0.7.1-4 +- Add metadata for Python extras subpackages + +* Sun May 24 2020 Miro Hrončok - 0.7.1-3 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 0.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Oct 23 2019 Igor Gnatenko - 0.7.1-1 +- Update to 0.7.1 +- Split twisted extras into a separate subpackage + +* Thu Oct 03 2019 Miro Hrončok - 0.6.0-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Sun Aug 18 2019 Miro Hrončok - 0.6.0-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Feb 21 2019 mprahl - 0.6.0-1 +- Update to 0.6.0 + +* Wed Feb 20 2019 mprahl - 0.5.0-2 +- Remove #!/usr/bin/python line from prometheus_client/openmetrics/*.py + +* Thu Feb 07 2019 mprahl - 0.5.0-1 +- Update to 0.5.0 + +* Sat Feb 02 2019 Fedora Release Engineering - 0.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 14 2019 Miro Hrončok - 0.2.0-4 +- Subpackage python2-prometheus_client has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Sat Jul 14 2018 Fedora Release Engineering - 0.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 0.2.0-2 +- Rebuilt for Python 3.7 + +* Sat Jun 09 2018 Jeremy Cline - 0.2.0-1 +- Initial package + +## END: Generated by rpmautospec diff --git a/cgmanifest.json b/cgmanifest.json index 4603d97deb7..5832a4ca3ec 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -13132,8 +13132,8 @@ "type": "other", "other": { "name": "mlnx-tools", - "version": "5.2.0", - "downloadUrl": "https://linux.mellanox.com/public/repo/bluefield/3.9.0/extras/mlnx_ofed/5.6-1.0.3.3/SOURCES/mlnx-tools_5.2.0.orig.tar.gz" + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-tools-24.10.tar.gz" } } }, @@ -14978,13 +14978,23 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "ofed-docs", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ofed-docs-24.10.tar.gz" + } + } + }, { "component": { "type": "other", "other": { "name": "ofed-scripts", - "version": "5.6", - "downloadUrl": "https://linux.mellanox.com/public/repo/doca/1.3.0/extras/mlnx_ofed/5.6-1.0.3.3/SOURCES/ofed-scripts_5.6.orig.tar.gz" + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ofed-scripts-24.10.tar.gz" } } }, @@ -15163,8 +15173,8 @@ "type": "other", "other": { "name": "openmpi", - "version": "4.1.5", - "downloadUrl": "https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-4.1.5.tar.bz2" + "version": "4.1.7", + "downloadUrl": "https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-4.1.7.tar.bz2" } } }, @@ -15753,8 +15763,8 @@ "type": "other", "other": { "name": "perftest", - "version": "24.01.0", - "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.01-0.3.3.1/SRPMS/perftest-24.01.0-0.38.gd185c9b.tar.gz" + "version": "24.10.0", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/perftest-24.10.0-0.65.g9093bae.tar.gz" } } }, @@ -23688,6 +23698,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "python-prometheus_client", + "version": "0.20.0", + "downloadUrl": "https://github.com/prometheus/client_python/archive/v0.20.0/prometheus_client-0.20.0.tar.gz" + } + } + }, { "component": { "type": "other", From d05c3e739c6b9628f8e842d88a3cde498d4d1bc7 Mon Sep 17 00:00:00 2001 From: Daniel McIlvaney Date: Tue, 14 Jan 2025 19:34:23 -0800 Subject: [PATCH 022/163] Fix shadow-utils detection in imager as well as validator (#11914) --- .../imageconfigvalidator.go | 43 ++++++++--------- .../imagegen/installutils/installutils.go | 31 +++++++++++- .../installutils/installutils_test.go | 47 +++++++++++++++++++ 3 files changed, 99 insertions(+), 22 deletions(-) diff --git a/toolkit/tools/imageconfigvalidator/imageconfigvalidator.go b/toolkit/tools/imageconfigvalidator/imageconfigvalidator.go index 5bc360b7b36..dfcb5979054 100644 --- a/toolkit/tools/imageconfigvalidator/imageconfigvalidator.go +++ b/toolkit/tools/imageconfigvalidator/imageconfigvalidator.go @@ -15,7 +15,6 @@ import ( "github.com/microsoft/azurelinux/toolkit/tools/imagegen/installutils" "github.com/microsoft/azurelinux/toolkit/tools/internal/exe" "github.com/microsoft/azurelinux/toolkit/tools/internal/logger" - "github.com/microsoft/azurelinux/toolkit/tools/internal/pkgjson" "github.com/microsoft/azurelinux/toolkit/tools/internal/timestamp" "github.com/microsoft/azurelinux/toolkit/tools/pkg/profile" @@ -135,28 +134,30 @@ func validatePackages(config configuration.Config) (err error) { selinuxPkgName = configuration.SELinuxPolicyDefault } - for _, pkg := range packageList { - // The installer tools have an undocumented feature which can support both "pkg-name" and "pkg-name=version" formats. - // This is in use, so we need to handle pinned versions in this check. Technically, 'tdnf' also supports "pkg-name-version" format, - // but it is not easily distinguishable from "long-package-name" format so it will not be supported here. - pkgVer, err := pkgjson.PackageStringToPackageVer(pkg) - if err != nil { - return fmt.Errorf("%s: %w", validateError, err) - } + foundKernelPackage, err := installutils.PackagelistContainsPackage(packageList, kernelPkgName) + if err != nil { + return fmt.Errorf("%s: %w", validateError, err) + } - if pkgVer.Name == kernelPkgName { - return fmt.Errorf("%s: kernel should not be included in a package list, add via config file's [KernelOptions] entry", validateError) - } - if pkgVer.Name == dracutFipsPkgName { - foundDracutFipsPackage = true - } - if pkgVer.Name == selinuxPkgName { - foundSELinuxPackage = true - } - if pkgVer.Name == userAddPkgName { - foundUserAddPackage = true - } + foundDracutFipsPackage, err = installutils.PackagelistContainsPackage(packageList, dracutFipsPkgName) + if err != nil { + return fmt.Errorf("%s: %w", validateError, err) } + + foundSELinuxPackage, err = installutils.PackagelistContainsPackage(packageList, selinuxPkgName) + if err != nil { + return fmt.Errorf("%s: %w", validateError, err) + } + + foundUserAddPackage, err = installutils.PackagelistContainsPackage(packageList, userAddPkgName) + if err != nil { + return fmt.Errorf("%s: %w", validateError, err) + } + + if foundKernelPackage { + return fmt.Errorf("%s: kernel should not be included in a package list, add via config file's [KernelOptions] entry", validateError) + } + if strings.Contains(kernelCmdLineString, fipsKernelCmdLine) || systemConfig.KernelCommandLine.EnableFIPS { if !foundDracutFipsPackage { return fmt.Errorf("%s: 'fips=1' provided on kernel cmdline, but '%s' package is not included in the package lists", validateError, dracutFipsPkgName) diff --git a/toolkit/tools/imagegen/installutils/installutils.go b/toolkit/tools/imagegen/installutils/installutils.go index 375b22e485a..0ee732ef2a9 100644 --- a/toolkit/tools/imagegen/installutils/installutils.go +++ b/toolkit/tools/imagegen/installutils/installutils.go @@ -453,6 +453,29 @@ func orderPackageInstallList(packageList []string) []string { return orderedPackageList } +// PackagelistContainsPackage checks if the given package is in the list of packages to install. It will do +// a fuzzy search for the package name and try to ignore version info. +// +// The installer tools have an undocumented feature which can support both "pkg-name" and "pkg-name=version" formats. +// This is in use, so we need to handle pinned versions in this check. Technically, 'tdnf' also supports "pkg-name-version" format, +// but it is not easily distinguishable from "long-package-name" format so it will not be supported here. +func PackagelistContainsPackage(packageList []string, packageName string) (found bool, err error) { + if packageName == "" { + return false, fmt.Errorf("can't search for an empty package name") + } + + for _, pkg := range packageList { + pkgVer, err := pkgjson.PackageStringToPackageVer(pkg) + if err != nil { + return false, err + } + if pkgVer.Name == packageName { + return true, nil + } + } + return false, nil +} + // PopulateInstallRoot fills the installroot with packages and configures the image for boot // - installChroot is a pointer to the install Chroot object // - packagesToInstall is a slice of packages to install @@ -532,7 +555,13 @@ func PopulateInstallRoot(installChroot *safechroot.Chroot, packagesToInstall []s // imageconfigvalidator should have ensured that we intend to install shadow-utils, so we can go ahead and do that here. if len(config.Users) > 0 || len(config.Groups) > 0 { - if !sliceutils.ContainsValue(packagesToInstall, "shadow-utils") { + var hasShadowUtils bool + hasShadowUtils, err = PackagelistContainsPackage(packagesToInstall, "shadow-utils") + if err != nil { + err = fmt.Errorf("failed to check for shadow-utils package in package list:\n%w", err) + return + } + if !hasShadowUtils { err = fmt.Errorf("shadow-utils package must be added to the image's package lists when setting users or groups") return } diff --git a/toolkit/tools/imagegen/installutils/installutils_test.go b/toolkit/tools/imagegen/installutils/installutils_test.go index 3edf08436db..cf89e000dfe 100644 --- a/toolkit/tools/imagegen/installutils/installutils_test.go +++ b/toolkit/tools/imagegen/installutils/installutils_test.go @@ -197,3 +197,50 @@ func TestAddImageIDFileGuardClause(t *testing.T) { err = AddImageIDFile(chroot.RootDir(), "") assert.Error(t, err) } + +func TestPackagelistContainsPackage(t *testing.T) { + packageList := []string{ + "package1", + "package2", + "package3", + } + + found, err := PackagelistContainsPackage(packageList, "package2") + assert.NoError(t, err) + assert.True(t, found) + + found, err = PackagelistContainsPackage(packageList, "package4") + assert.NoError(t, err) + assert.False(t, found) + + found, err = PackagelistContainsPackage(nil, "package4") + assert.NoError(t, err) + assert.False(t, found) + + found, err = PackagelistContainsPackage(packageList, "") + assert.Error(t, err) + assert.False(t, found) +} + +func TestPackagelistContainsPackageBadVersion(t *testing.T) { + packageList := []string{ + "bad package = bad < version", + } + + found, err := PackagelistContainsPackage(packageList, "package2") + assert.Error(t, err) + assert.False(t, found) +} + +func TestPackagelistContainsPackageVersions(t *testing.T) { + packageList := []string{ + "package1", + "package2", + "package3", + "package4 = 1.2.3", + } + + found, err := PackagelistContainsPackage(packageList, "package4") + assert.NoError(t, err) + assert.True(t, found) +} From 4bc53bca60fc83094fa0af7f4c8a21d207279352 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:07:34 -0800 Subject: [PATCH 023/163] Prepare January 2025 Update 2 (#11929) --- SPECS/azurelinux-release/azurelinux-release.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SPECS/azurelinux-release/azurelinux-release.spec b/SPECS/azurelinux-release/azurelinux-release.spec index 116861abf90..e4d43ebdf21 100644 --- a/SPECS/azurelinux-release/azurelinux-release.spec +++ b/SPECS/azurelinux-release/azurelinux-release.spec @@ -5,7 +5,7 @@ Summary: Azure Linux release files Name: azurelinux-release Version: %{dist_version}.0 -Release: 23%{?dist} +Release: 24%{?dist} License: MIT Vendor: Microsoft Corporation Distribution: Azure Linux @@ -118,6 +118,9 @@ install -Dm0644 %{SOURCE4} -t %{buildroot}%{_sysctldir}/ %{_sysctldir}/*.conf %changelog +* Wed Jan 15 2025 CBL-Mariner Servicing Account - 3.0-24 +- Bump release for January 2025 Update 2 + * Sat Dec 21 2024 Jon Slobodzian - 3.0-23 - Bump release for January 2025 Update From cc82a487535576c450a2dbf57acc2e5314d2658a Mon Sep 17 00:00:00 2001 From: akhila-guruju Date: Thu, 16 Jan 2025 10:16:34 +0530 Subject: [PATCH 024/163] Upgrade: python-rpmfluff version to 0.6.5 (#11639) --- .../python-rpmfluff.signatures.json | 4 +- .../python-rpmfluff/python-rpmfluff.spec | 106 +++++++++++++++--- cgmanifest.json | 4 +- 3 files changed, 97 insertions(+), 17 deletions(-) diff --git a/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.signatures.json b/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.signatures.json index 716dd831102..1543b55d760 100644 --- a/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.signatures.json +++ b/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "rpmfluff-0.5.7.1.tar.xz": "416b47529c5129ae37062c5a0d0d18c683c0f8c060f6181b7c0a2ca4eaa776a7" + "python-rpmfluff-0.6.5.tar.xz": "6604e8e6ee71d6675e7e94d879104d253f0551b668bbaefabf06d006b5a48178" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.spec b/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.spec index cd46aa35c0b..2eb6d83efe9 100644 --- a/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.spec +++ b/SPECS-EXTENDED/python-rpmfluff/python-rpmfluff.spec @@ -1,15 +1,15 @@ -Vendor: Microsoft Corporation -Distribution: Azure Linux %global modname rpmfluff Name: python-%{modname} -Version: 0.5.7.1 -Release: 6%{?dist} +Version: 0.6.5 +Release: 4%{?dist} Summary: Lightweight way of building RPMs, and sabotaging them -License: GPLv2+ +License: GPL-2.0-or-later +Vendor: Microsoft Corporation +Distribution: Azure Linux URL: https://pagure.io/rpmfluff -Source0: https://pagure.io/releases/%{modname}/%{modname}-%{version}.tar.xz +Source0: https://pagure.io/releases/%{modname}/%{modname}-%{version}.tar.xz#/%{name}-%{version}.tar.xz BuildArch: noarch @@ -19,7 +19,7 @@ sabotaging them so they are broken in controlled ways.\ \ It is intended for use when validating package analysis tools such as RPM lint.\ It can also be used to construct test cases for package management software\ -such as rpm and yum. +such as RPM, YUM, and DNF. %description %{_description} @@ -29,6 +29,7 @@ Summary: %{summary} BuildRequires: gcc BuildRequires: python3-devel BuildRequires: python3-rpm +BuildRequires: python3-setuptools Requires: rpm-build Requires: createrepo_c @@ -46,18 +47,97 @@ Python 3 version. %py3_install %check -python3 %{modname}.py +python3 -m unittest %{modname}.test %files -n python3-%{modname} %license LICENSE %doc README.md -%{python3_sitelib}/%{modname}.py -%{python3_sitelib}/__pycache__/%{modname}.* -%{python3_sitelib}/%{modname}-*.egg-info +%{python3_sitelib}/* %changelog -* Fri Oct 15 2021 Pawel Winogrodzki - 0.5.7.1-6 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). +* Fri Dec 20 2024 Akhila Guruju - 0.6.5-4 +- Initial Azure Linux import from Fedora 41 (license: MIT). +- License verified. + +* Fri Jul 19 2024 Fedora Release Engineering - 0.6.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 0.6.5-2 +- Rebuilt for Python 3.13 + +* Fri May 31 2024 Jan Hutar - 0.6.4-1 +- dshea: Explicitly disable debuginfo when not requested + +* Fri Jan 26 2024 Fedora Release Engineering - 0.6.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 0.6.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 0.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 17 2023 Jan Hutar - 0.6.3-1 +- gotmax23: remove usage of deprecated rpm.fi + +* Tue Jun 13 2023 Python Maint - 0.6.2-3 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Oct 18 2022 Jan Hutar - 0.6.2-1 +- Change deprecated distutils to setuptools + +* Fri Jul 22 2022 Fedora Release Engineering - 0.6.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.6.1-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.6.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.6.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 03 2021 Python Maint - 0.6.1-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 0.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Aug 12 2020 Jan Hutar - 0.6.1-1 +- jhutar: Expose two more items + +* Fri Aug 07 2020 Jan Hutar - 0.6-1 +- jhutar: Workaround for https://github.com/rpm-software-management/rpm/issues/1301 +- msuchy: Do not write %clean by default +- msuchy: Make build directory in /tmp +- msuchy: Call buildArchs as named argument +- msuchy: Do not clean install +- msuchy: BuildRoot is ignored by rpm +- msuchy: Remove artefacts after the test +- msuchy: Fix various pylint warnings +- msuchy: Break down package into several modules +- msuchy: Remove dead code +- msuchy: Apply 2to3 script +- msuchy: Mention DNF in description +- msuchy: Move rpmfluff.py to rpmfluff/__init__.py +- dcantrell: Only write the License tag if it is set +- jhutar: Sanitize values we use to construct file paths +- tbaeder: Read compiler from CC environment variable +- dcantrell: Allow setting a different spec file basename than the package name + +* Sat Aug 01 2020 Fedora Release Engineering - 0.5.7.1-8 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.5.7.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat May 23 2020 Miro Hrončok - 0.5.7.1-6 +- Rebuilt for Python 3.9 * Thu Jan 30 2020 Fedora Release Engineering - 0.5.7.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/cgmanifest.json b/cgmanifest.json index 5832a4ca3ec..0c84f8a70f3 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -24293,8 +24293,8 @@ "type": "other", "other": { "name": "python-rpmfluff", - "version": "0.5.7.1", - "downloadUrl": "https://pagure.io/releases/rpmfluff/rpmfluff-0.5.7.1.tar.xz" + "version": "0.6.5", + "downloadUrl": "https://pagure.io/releases/rpmfluff/rpmfluff-0.6.5.tar.xz" } } }, From 31c66a0a49d63b1593fdaaa11a9a9f2b7cc516de Mon Sep 17 00:00:00 2001 From: Rohit Rawat Date: Thu, 16 Jan 2025 11:08:01 +0530 Subject: [PATCH 025/163] Add Valkey Container (#11156) --- .../valkey/Dockerfile-Valkey | 26 +++++++++++++++++++ .../valkey-docker-entrypoint.sh | 26 +++++++++++++++++++ .../containerSourceData/valkey/valkey.name | 1 + .../containerSourceData/valkey/valkey.pkg | 3 +++ 4 files changed, 56 insertions(+) create mode 100644 .pipelines/containerSourceData/valkey/Dockerfile-Valkey create mode 100755 .pipelines/containerSourceData/valkey/configuration-files/valkey-docker-entrypoint.sh create mode 100644 .pipelines/containerSourceData/valkey/valkey.name create mode 100644 .pipelines/containerSourceData/valkey/valkey.pkg diff --git a/.pipelines/containerSourceData/valkey/Dockerfile-Valkey b/.pipelines/containerSourceData/valkey/Dockerfile-Valkey new file mode 100644 index 00000000000..e9853d46850 --- /dev/null +++ b/.pipelines/containerSourceData/valkey/Dockerfile-Valkey @@ -0,0 +1,26 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +ARG BASE_IMAGE + +FROM $BASE_IMAGE + +@INCLUDE_MAIN_RUN_INSTRUCTION@ + +RUN set -eux && \ + valkey-cli --version && \ + valkey-server --version && \ + mkdir /data && \ + chown valkey:valkey /data + +VOLUME /data +WORKDIR /data + +COPY valkey-docker-entrypoint.sh /usr/local/bin/ + +RUN chmod +x /usr/local/bin/valkey-docker-entrypoint.sh + +ENTRYPOINT ["/usr/local/bin/valkey-docker-entrypoint.sh"] + +EXPOSE 6379 +CMD ["valkey-server"] \ No newline at end of file diff --git a/.pipelines/containerSourceData/valkey/configuration-files/valkey-docker-entrypoint.sh b/.pipelines/containerSourceData/valkey/configuration-files/valkey-docker-entrypoint.sh new file mode 100755 index 00000000000..430f8d83254 --- /dev/null +++ b/.pipelines/containerSourceData/valkey/configuration-files/valkey-docker-entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +set -e + +# first arg is `-f` or `--some-option` +# or first arg is `something.conf` +if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then + set -- valkey-server "$@" +fi + +# allow the container to be started with `--user` +if [ "$1" = 'valkey-server' -a "$(id -u)" = '0' ]; then + find . \! -user valkey -exec chown valkey '{}' + + exec setpriv --reuid=valkey --regid=valkey --init-groups --inh-caps=-all "$BASH_SOURCE" "$@" +fi + +# set an appropriate umask (if one isn't set already) +# - https://github.com/docker-library/redis/issues/305 +# - https://github.com/redis/redis/blob/bb875603fb7ff3f9d19aad906bd45d7db98d9a39/utils/systemd-redis_server.service#L37 +um="$(umask)" +if [ "$um" = '0022' ]; then + umask 0077 +fi + +exec "$@" $VALKEY_EXTRA_FLAGS \ No newline at end of file diff --git a/.pipelines/containerSourceData/valkey/valkey.name b/.pipelines/containerSourceData/valkey/valkey.name new file mode 100644 index 00000000000..83f14fffee9 --- /dev/null +++ b/.pipelines/containerSourceData/valkey/valkey.name @@ -0,0 +1 @@ +valkey diff --git a/.pipelines/containerSourceData/valkey/valkey.pkg b/.pipelines/containerSourceData/valkey/valkey.pkg new file mode 100644 index 00000000000..3067cfc1626 --- /dev/null +++ b/.pipelines/containerSourceData/valkey/valkey.pkg @@ -0,0 +1,3 @@ +valkey +cronie +util-linux From a66cf438a43cadfa3532b1fc6a2d1adbdd7a8937 Mon Sep 17 00:00:00 2001 From: aninda-al Date: Thu, 16 Jan 2025 07:16:29 -0500 Subject: [PATCH 026/163] Upgraded xdg-utils to version 1.2.1 (#11699) --- ...0001-open-for-post-1.1.3-development.patch | 37 -------- ...tter-pcmanfm-check-BR106636-BR106161.patch | 38 -------- .../xdg-utils/xdg-utils-git_checkout.sh | 17 ---- .../xdg-utils/xdg-utils.signatures.json | 5 +- SPECS-EXTENDED/xdg-utils/xdg-utils.spec | 90 ++++++++++++++----- cgmanifest.json | 4 +- 6 files changed, 70 insertions(+), 121 deletions(-) delete mode 100644 SPECS-EXTENDED/xdg-utils/0001-open-for-post-1.1.3-development.patch delete mode 100644 SPECS-EXTENDED/xdg-utils/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch delete mode 100755 SPECS-EXTENDED/xdg-utils/xdg-utils-git_checkout.sh diff --git a/SPECS-EXTENDED/xdg-utils/0001-open-for-post-1.1.3-development.patch b/SPECS-EXTENDED/xdg-utils/0001-open-for-post-1.1.3-development.patch deleted file mode 100644 index 0472e213e10..00000000000 --- a/SPECS-EXTENDED/xdg-utils/0001-open-for-post-1.1.3-development.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0b73fb82ccf178d496bd8da5b8c0a6906b14d030 Mon Sep 17 00:00:00 2001 -From: Rex Dieter -Date: Sun, 13 May 2018 08:40:55 -0500 -Subject: [PATCH 1/2] open for post 1.1.3 development - ---- - ChangeLog | 3 +++ - scripts/xdg-utils-common.in | 2 +- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/ChangeLog b/ChangeLog -index c9eaeea..6864f88 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,6 @@ -+=== xdg-utils 1.1.4 === -+ -+ - === xdg-utils 1.1.3 === - - 2018-05-10 -diff --git a/scripts/xdg-utils-common.in b/scripts/xdg-utils-common.in -index 9cfc8a3..a8abed8 100644 ---- a/scripts/xdg-utils-common.in -+++ b/scripts/xdg-utils-common.in -@@ -245,7 +245,7 @@ check_common_commands() - ;; - - --version) -- echo "@NAME@ 1.1.3" -+ echo "@NAME@ 1.1.3+" - exit_success - ;; - esac --- -2.17.0 - diff --git a/SPECS-EXTENDED/xdg-utils/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch b/SPECS-EXTENDED/xdg-utils/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch deleted file mode 100644 index f5ed02e371d..00000000000 --- a/SPECS-EXTENDED/xdg-utils/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 31525d3855f876ddf2e29091b2e8d376f923e09e Mon Sep 17 00:00:00 2001 -From: Rex Dieter -Date: Thu, 24 May 2018 14:40:53 -0500 -Subject: [PATCH 2/2] xdg-open: better pcmanfm check (BR106636,BR106161) - ---- - ChangeLog | 2 ++ - scripts/xdg-open.in | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ChangeLog b/ChangeLog -index 6864f88..3eed7c4 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,5 +1,7 @@ - === xdg-utils 1.1.4 === - -+2018-05-24 -+ * xdg-open: better pcmanfm check (BR106636,BR106161) - - === xdg-utils 1.1.3 === - -diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in -index 630e63e..bf9da4c 100644 ---- a/scripts/xdg-open.in -+++ b/scripts/xdg-open.in -@@ -451,7 +451,7 @@ open_lxde() - { - - # pcmanfm only knows how to handle file:// urls and filepaths, it seems. -- if pcmanfm --help >/dev/null 2>&1 -a is_file_url_or_path "$1"; then -+ if pcmanfm --help >/dev/null 2>&1 && is_file_url_or_path "$1"; then - local file="$(file_url_to_path "$1")" - - # handle relative paths --- -2.17.0 - diff --git a/SPECS-EXTENDED/xdg-utils/xdg-utils-git_checkout.sh b/SPECS-EXTENDED/xdg-utils/xdg-utils-git_checkout.sh deleted file mode 100755 index b00452a0451..00000000000 --- a/SPECS-EXTENDED/xdg-utils/xdg-utils-git_checkout.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - - -MODULE=xdg-utils -VERSION=1.1.0 -DATE=$(date +%Y%m%d)git - -set -x - -rm -rf $MODULE - -git clone git://anongit.freedesktop.org/git/xdg/xdg-utils $MODULE/ -pushd $MODULE -git archive master --format tar --prefix=${MODULE}-${VERSION}/ | gzip -9 > ../${MODULE}-${VERSION}-${DATE}.tar.gz -popd - -rm -rf $MODULE diff --git a/SPECS-EXTENDED/xdg-utils/xdg-utils.signatures.json b/SPECS-EXTENDED/xdg-utils/xdg-utils.signatures.json index e670e820da7..ded50f22ba1 100644 --- a/SPECS-EXTENDED/xdg-utils/xdg-utils.signatures.json +++ b/SPECS-EXTENDED/xdg-utils/xdg-utils.signatures.json @@ -1,6 +1,5 @@ { "Signatures": { - "xdg-utils-1.1.3.tar.gz": "d798b08af8a8e2063ddde6c9fa3398ca81484f27dec642c5627ffcaa0d4051d9", - "xdg-utils-git_checkout.sh": "90195ebcfd437270360156f3dc633dfeed04e2dbc2199ed1a6c2deffa8603dbb" + "xdg-utils-v1.2.1.tar.gz": "f6b648c064464c2636884c05746e80428110a576f8daacf46ef2e554dcfdae75" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/xdg-utils/xdg-utils.spec b/SPECS-EXTENDED/xdg-utils/xdg-utils.spec index 2c6220e7be8..2af1238a6c9 100644 --- a/SPECS-EXTENDED/xdg-utils/xdg-utils.spec +++ b/SPECS-EXTENDED/xdg-utils/xdg-utils.spec @@ -1,30 +1,24 @@ Vendor: Microsoft Corporation Distribution: Azure Linux -Summary: Basic desktop integration functions +Summary: Basic desktop integration functions Name: xdg-utils -Version: 1.1.3 -Release: 7%{?dist} +Version: 1.2.1 +Release: 3%{?dist} -URL: http://portland.freedesktop.org/ +URL: https://www.freedesktop.org/wiki/Software/xdg-utils/ %if 0%{?snap:1} Source0: xdg-utils-%{version}-%{snap}.tar.gz %else -# at least until freedesktop folks move over to release dir -Source0: https://people.freedesktop.org/~rdieter/xdg-utils/xdg-utils-%{version}.tar.gz -#Source0: http://portland.freedesktop.org/download/xdg-utils-%{version}%{?prerelease:-%{prerelease}}.tar.gz +Source0: https://gitlab.freedesktop.org/xdg/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz %endif -Source1: xdg-utils-git_checkout.sh -License: MIT - -## upstream patches (treat as sources in lookaside cache) -Patch1: 0001-open-for-post-1.1.3-development.patch -Patch2: 0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch +License: MIT # make sure BuildArch comes *after* patches, to ensure %%autosetup works right # http://bugzilla.redhat.com/1084309 BuildArch: noarch +BuildRequires: make BuildRequires: gawk BuildRequires: xmlto lynx @@ -35,7 +29,7 @@ Requires: which %description The %{name} package is a set of simple scripts that provide basic desktop integration functions for any Free Desktop, such as Linux. -They are intended to provide a set of defacto standards. +They are intended to provide a set of defacto standards. This means that: * Third party software developers can rely on these xdg-utils for all of their simple integration needs. @@ -56,25 +50,25 @@ The following scripts are provided at this time: %prep -%autosetup -n %{name}-%{version}%{?pre:-%{pre}} -p1 +%autosetup -n %{name}-v%{version} -p1 %build %configure %if 0%{?snap:1} -make scripts-clean -C scripts +make scripts-clean -C scripts make man scripts %{?_smp_mflags} -C scripts %endif -make %{?_smp_mflags} - +%make_build %install -make install DESTDIR=%{buildroot} +%make_install %files -%doc ChangeLog LICENSE README TODO +%doc ChangeLog README.md TODO +%license LICENSE %{_bindir}/xdg-desktop-icon %{_bindir}/xdg-desktop-menu %{_bindir}/xdg-email @@ -94,8 +88,57 @@ make install DESTDIR=%{buildroot} %changelog -* Fri Oct 15 2021 Pawel Winogrodzki - 1.1.3-7 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). +* Thu Dec 26 2024 Aninda Pradhan - 1.2.1-3 +- Initial Azure Linux import from Fedora 41 (license: MIT) +- License Verified + +* Sat Jul 20 2024 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Feb 11 2024 Zbigniew Jedrzejewski-Szmek - 1.2.1-1 +- Update to 1.2.1 (rhbz#2241305) + +* Tue Jan 30 2024 Steve Cossette - 1.2.0-1 +- Release to 1.2.0 final + +* Sat Jan 27 2024 Fedora Release Engineering - 1.2.0~git20231511.21fb316-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Nov 18 2023 Alessandro Astone - 1.2.0~git20231511.21fb316-1 +- Update to 1.2.0~ git snapshot + +* Tue Jul 25 2023 Rafael Guterres Jeffman - 1.1.3-15 +- Use "grep -E" instead of the obsoleted "egrep" + Resolves: BZ#2140197 +- mark LICENSE as %%license +- Spec cleanup +- Small patches, as a rule, are in git dist, to be more easy to read. +- Migrated to SPDX license (noop) + +* Sat Jul 22 2023 Fedora Release Engineering - 1.1.3-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 1.1.3-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 1.1.3-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 1.1.3-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1.1.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Apr 23 2021 Rex Dieter - 1.1.3-9 +- pull in upstream fixes +- xdg-open run indefinetly (#1881372) + +* Wed Jan 27 2021 Fedora Release Engineering - 1.1.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.1.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Fri Jan 31 2020 Fedora Release Engineering - 1.1.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild @@ -392,5 +435,4 @@ make install DESTDIR=%{buildroot} - Requires: desktop-file-utils * Mon Jul 24 2006 Rex Dieter 1.0-0.1.beta1 -- 1.0beta1 - +- 1.0beta1 \ No newline at end of file diff --git a/cgmanifest.json b/cgmanifest.json index 0c84f8a70f3..1e6cd116f7b 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -29971,8 +29971,8 @@ "type": "other", "other": { "name": "xdg-utils", - "version": "1.1.3", - "downloadUrl": "https://people.freedesktop.org/~rdieter/xdg-utils/xdg-utils-1.1.3.tar.gz" + "version": "1.2.1", + "downloadUrl": "https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/v1.2.1/xdg-utils-v1.2.1.tar.gz" } } }, From c2942745c0e0eb2ef1f787de44bfb5c66caa8351 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Thu, 16 Jan 2025 06:40:41 -0800 Subject: [PATCH 027/163] [AUTO-CHERRYPICK] Adding systemd patch for CVE-2023-7008 - branch 3.0-dev (#11911) Co-authored-by: Aditya Dubey <110563293+Adub17030MS@users.noreply.github.com> --- .../systemd-boot-signed.spec | 6 ++- SPECS/systemd/CVE-2023-7008.patch | 38 +++++++++++++++++++ SPECS/systemd/systemd.spec | 11 ++++-- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 SPECS/systemd/CVE-2023-7008.patch diff --git a/SPECS-SIGNED/systemd-boot-signed/systemd-boot-signed.spec b/SPECS-SIGNED/systemd-boot-signed/systemd-boot-signed.spec index 6178a71997b..ed68c99a957 100644 --- a/SPECS-SIGNED/systemd-boot-signed/systemd-boot-signed.spec +++ b/SPECS-SIGNED/systemd-boot-signed/systemd-boot-signed.spec @@ -14,7 +14,7 @@ Version: 255 # determine the build information from local checkout Version: %(tools/meson-vcs-tag.sh . error | sed -r 's/-([0-9])/.^\1/; s/-g/_g/') %endif -Release: 19%{?dist} +Release: 20%{?dist} License: LGPL-2.1-or-later AND MIT AND GPL-2.0-or-later Vendor: Microsoft Corporation Distribution: Azure Linux @@ -93,6 +93,10 @@ popd /boot/efi/EFI/BOOT/grubx64.efi %changelog +* Fri Jan 10 2024 Aditya Dubey - 255-20 +- Updating to version 255-19 +- Includes patch for enhancing DNSSEC signature validation integrity + * Thu Dec 12 2024 Daniel McIlvaney - 255-19 - Version bump to force signing with new Azure Linux secure boot key - Add confilcts/recommends on shim to ensure the keys match diff --git a/SPECS/systemd/CVE-2023-7008.patch b/SPECS/systemd/CVE-2023-7008.patch new file mode 100644 index 00000000000..47e0746f093 --- /dev/null +++ b/SPECS/systemd/CVE-2023-7008.patch @@ -0,0 +1,38 @@ +From 43124825d209452d677c267c96da3592e418fca9 Mon Sep 17 00:00:00 2001 +From: Michal Sekletar +Date: Wed, 20 Dec 2023 16:44:14 +0100 +Subject: [PATCH] resolved: actually check authenticated flag of SOA + transaction + +Fixes #25676 + +(cherry picked from commit 3b4cc1437b51fcc0b08da8cc3f5d1175eed25eb1) + +Resolves: RHEL-6216 +--- + src/resolve/resolved-dns-transaction.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c +index 0212569fb03..0306af84a21 100644 +--- a/src/resolve/resolved-dns-transaction.c ++++ b/src/resolve/resolved-dns-transaction.c +@@ -2800,7 +2800,7 @@ static int dns_transaction_requires_rrsig(DnsTransaction *t, DnsResourceRecord * + if (r == 0) + continue; + +- return FLAGS_SET(t->answer_query_flags, SD_RESOLVED_AUTHENTICATED); ++ return FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED); + } + + return true; +@@ -2827,7 +2827,7 @@ static int dns_transaction_requires_rrsig(DnsTransaction *t, DnsResourceRecord * + /* We found the transaction that was supposed to find the SOA RR for us. It was + * successful, but found no RR for us. This means we are not at a zone cut. In this + * case, we require authentication if the SOA lookup was authenticated too. */ +- return FLAGS_SET(t->answer_query_flags, SD_RESOLVED_AUTHENTICATED); ++ return FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED); + } + + return true; + diff --git a/SPECS/systemd/systemd.spec b/SPECS/systemd/systemd.spec index bf0b98fa483..3b08460b67e 100644 --- a/SPECS/systemd/systemd.spec +++ b/SPECS/systemd/systemd.spec @@ -50,7 +50,7 @@ Version: 255 # determine the build information from local checkout Version: %(tools/meson-vcs-tag.sh . error | sed -r 's/-([0-9])/.^\1/; s/-g/_g/') %endif -Release: 19%{?dist} +Release: 20%{?dist} # FIXME - hardcode to 'stable' for now as that's what we have in our blobstore %global stable 1 @@ -142,6 +142,7 @@ Patch0491: azurelinux-use-system-auth-in-pam-systemd-user.patch # Patches for Azure Linux Patch0900: do-not-test-openssl-sm3.patch Patch0901: networkd-default-use-domains.patch +Patch0902: CVE-2023-7008.patch %ifarch %{ix86} x86_64 %global want_bootloader 1 @@ -1216,6 +1217,10 @@ rm -f %{name}.lang # %autochangelog. So we need to continue manually maintaining the # changelog here. %changelog +* Fri Jan 10 2025 Aditya Dubey - 255-20 +- adding patch for enhancing DNSSEC signature validation integrity +- addresses CVE-2023-7008 + * Thu Dec 12 2024 Daniel McIlvaney - 255-19 - Version bump to force signing with new Azure Linux secure boot key @@ -1237,7 +1242,7 @@ rm -f %{name}.lang * Thu May 02 2024 Rachel Menge - 255-13 - Supply 10-console-messages.conf sysctl to lower the default kernel messages to the console -* Thu Apr 18 2024 Dan Streetman - 255-12 +* Thu Apr 25 2024 Dan Streetman - 255-12 - move libidn2 recommends from core package to systemd-networkd * Wed Apr 24 2024 Dan Streetman - 255-11 @@ -1253,7 +1258,7 @@ rm -f %{name}.lang * Mon Mar 11 2024 Daniel McIlvaney - 255-8 - Obsolete the new systemd-bootstrap-libs subpacakge. -* Thu Feb 22 2024 Dan Streetman - 255-7 +* Thu Feb 29 2024 Dan Streetman - 255-7 - remove use of %%azure (or %%azl) macro * Wed Feb 28 2024 Dan Streetman - 255-6 From 1d1d5a066b9787b28e0dd40f26970e929c9523f8 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Thu, 16 Jan 2025 06:41:42 -0800 Subject: [PATCH 028/163] [AUTO-CHERRYPICK] cmake: patch CVE-2024-11053 - branch 3.0-dev (#11940) Co-authored-by: Henry Beberman --- SPECS/cmake/CVE-2024-11053.patch | 304 ++++++++++++++++++ SPECS/cmake/cmake.spec | 6 +- .../manifests/package/toolchain_aarch64.txt | 4 +- .../manifests/package/toolchain_x86_64.txt | 4 +- 4 files changed, 313 insertions(+), 5 deletions(-) create mode 100644 SPECS/cmake/CVE-2024-11053.patch diff --git a/SPECS/cmake/CVE-2024-11053.patch b/SPECS/cmake/CVE-2024-11053.patch new file mode 100644 index 00000000000..e0e5b4787dc --- /dev/null +++ b/SPECS/cmake/CVE-2024-11053.patch @@ -0,0 +1,304 @@ +From c67d69ef80e6d91d4124c704aceb667859d6a0df Mon Sep 17 00:00:00 2001 +From: Henry Beberman +Date: Wed, 15 Jan 2025 21:26:44 +0000 +Subject: [PATCH] Backport patch for CVE-2024-11053 + +Backport fix for CVE-2024-11053 from upstream commit to vendored libcurl 8.8.0 + +From e9b9bbac22c26cf67316fa8e6c6b9e831af31949 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +Date: Fri, 15 Nov 2024 11:06:36 +0100 +Subject: [PATCH] netrc: address several netrc parser flaws + +- make sure that a match that returns a username also returns a + password, that should be blank if no password is found + +- fix handling of multiple logins for same host where the password/login + order might be reversed. + +- reject credentials provided in the .netrc if they contain ASCII control + codes - if the used protocol does not support such (like HTTP and WS do) + +--- + lib/netrc.c | 205 +++++++++++++++++++++++++++++----------------------- + lib/url.c | 2 + + 2 files changed, 116 insertions(+), 91 deletions(-) + +diff --git a/Utilities/cmcurl/lib/netrc.c b/Utilities/cmcurl/lib/netrc.c +index cd2a284..83dd9eb 100644 +--- a/Utilities/cmcurl/lib/netrc.c ++++ b/Utilities/cmcurl/lib/netrc.c +@@ -49,6 +49,15 @@ enum host_lookup_state { + MACDEF + }; + ++enum found_state { ++ NONE, ++ LOGIN, ++ PASSWORD ++}; ++ ++#define FOUND_LOGIN 1 ++#define FOUND_PASSWORD 2 ++ + #define NETRC_FILE_MISSING 1 + #define NETRC_FAILED -1 + #define NETRC_SUCCESS 0 +@@ -66,11 +75,13 @@ static int parsenetrc(const char *host, + FILE *file; + int retcode = NETRC_FILE_MISSING; + char *login = *loginp; +- char *password = *passwordp; ++ char *password = NULL; + bool specific_login = (login && *login != 0); +- bool login_alloc = FALSE; +- bool password_alloc = FALSE; + enum host_lookup_state state = NOTHING; ++ enum found_state keyword = NONE; ++ unsigned char found = 0; /* login + password found bits, as they can come in ++ any order */ ++ bool our_login = FALSE; /* found our login name */ + + char state_login = 0; /* Found a login keyword */ + char state_password = 0; /* Found a password keyword */ +@@ -156,117 +167,129 @@ static int parsenetrc(const char *host, + } + } + +- if((login && *login) && (password && *password)) { +- done = TRUE; +- break; +- } +- + switch(state) { +- case NOTHING: +- if(strcasecompare("macdef", tok)) { +- /* Define a macro. A macro is defined with the specified name; its +- contents begin with the next .netrc line and continue until a +- null line (consecutive new-line characters) is encountered. */ +- state = MACDEF; +- } +- else if(strcasecompare("machine", tok)) { +- /* the next tok is the machine name, this is in itself the +- delimiter that starts the stuff entered for this machine, +- after this we need to search for 'login' and +- 'password'. */ +- state = HOSTFOUND; +- } +- else if(strcasecompare("default", tok)) { +- state = HOSTVALID; +- retcode = NETRC_SUCCESS; /* we did find our host */ +- } +- break; +- case MACDEF: +- if(!strlen(tok)) { +- state = NOTHING; +- } +- break; +- case HOSTFOUND: +- if(strcasecompare(host, tok)) { +- /* and yes, this is our host! */ +- state = HOSTVALID; +- retcode = NETRC_SUCCESS; /* we did find our host */ +- } +- else +- /* not our host */ +- state = NOTHING; +- break; +- case HOSTVALID: +- /* we are now parsing sub-keywords concerning "our" host */ +- if(state_login) { +- if(specific_login) { +- state_our_login = !Curl_timestrcmp(login, tok); ++ case NOTHING: ++ if(strcasecompare("macdef", tok)) ++ /* Define a macro. A macro is defined with the specified name; its ++ contents begin with the next .netrc line and continue until a ++ null line (consecutive new-line characters) is encountered. */ ++ state = MACDEF; ++ else if(strcasecompare("machine", tok)) { ++ /* the next tok is the machine name, this is in itself the delimiter ++ that starts the stuff entered for this machine, after this we ++ need to search for 'login' and 'password'. */ ++ state = HOSTFOUND; ++ keyword = NONE; ++ found = 0; ++ our_login = FALSE; ++ Curl_safefree(password); ++ if(!specific_login) ++ Curl_safefree(login); + } +- else if(!login || Curl_timestrcmp(login, tok)) { +- if(login_alloc) { ++ else if(strcasecompare("default", tok)) { ++ state = HOSTVALID; ++ retcode = NETRC_SUCCESS; /* we did find our host */ ++ } ++ break; ++ case MACDEF: ++ if(!*tok) ++ state = NOTHING; ++ break; ++ case HOSTFOUND: ++ if(strcasecompare(host, tok)) { ++ /* and yes, this is our host! */ ++ state = HOSTVALID; ++ retcode = NETRC_SUCCESS; /* we did find our host */ ++ } ++ else ++ /* not our host */ ++ state = NOTHING; ++ break; ++ case HOSTVALID: ++ /* we are now parsing sub-keywords concerning "our" host */ ++ if(keyword == LOGIN) { ++ if(specific_login) ++ our_login = !Curl_timestrcmp(login, tok); ++ else { ++ our_login = TRUE; + free(login); +- login_alloc = FALSE; ++ login = strdup(tok); ++ if(!login) { ++ retcode = NETRC_FAILED; /* allocation failed */ ++ goto out; ++ } + } +- login = strdup(tok); +- if(!login) { +- retcode = NETRC_FAILED; /* allocation failed */ +- goto out; +- } +- login_alloc = TRUE; ++ found |= FOUND_LOGIN; ++ keyword = NONE; + } +- state_login = 0; +- } +- else if(state_password) { +- if((state_our_login || !specific_login) +- && (!password || Curl_timestrcmp(password, tok))) { +- if(password_alloc) { +- free(password); +- password_alloc = FALSE; +- } ++ else if(keyword == PASSWORD) { ++ free(password); + password = strdup(tok); + if(!password) { + retcode = NETRC_FAILED; /* allocation failed */ + goto out; + } +- password_alloc = TRUE; ++ if(!specific_login || our_login) ++ found |= FOUND_PASSWORD; ++ keyword = NONE; + } +- state_password = 0; +- } +- else if(strcasecompare("login", tok)) +- state_login = 1; +- else if(strcasecompare("password", tok)) +- state_password = 1; +- else if(strcasecompare("machine", tok)) { +- /* ok, there's machine here go => */ +- state = HOSTFOUND; +- state_our_login = FALSE; +- } +- break; +- } /* switch (state) */ ++ else if(strcasecompare("login", tok)) ++ keyword = LOGIN; ++ else if(strcasecompare("password", tok)) ++ keyword = PASSWORD; ++ else if(strcasecompare("machine", tok)) { ++ /* a new machine here */ ++ if(found & FOUND_PASSWORD) { ++ done = TRUE; ++ break; ++ } ++ state = HOSTFOUND; ++ keyword = NONE; ++ found = 0; ++ Curl_safefree(password); ++ if(!specific_login) ++ Curl_safefree(login); ++ } ++ else if(strcasecompare("default", tok)) { ++ state = HOSTVALID; ++ retcode = NETRC_SUCCESS; /* we did find our host */ ++ Curl_safefree(password); ++ if(!specific_login) ++ Curl_safefree(login); ++ } ++ if((found == (FOUND_PASSWORD|FOUND_LOGIN)) && our_login) { ++ done = TRUE; ++ break; ++ } ++ break; ++ } /* switch (state) */ + tok = ++tok_end; + } + } /* while Curl_get_line() */ + + out: + Curl_dyn_free(&buf); ++ if(!retcode) { ++ if(!password && our_login) { ++ /* success without a password, set a blank one */ ++ password = strdup(""); ++ if(!password) ++ retcode = 1; /* out of memory */ ++ } ++ else if(!login && !password) ++ /* a default with no credentials */ ++ retcode = NETRC_FILE_MISSING; ++ } + if(!retcode) { + /* success */ +- if(login_alloc) { +- if(*loginp) +- free(*loginp); ++ if(!specific_login) + *loginp = login; +- } +- if(password_alloc) { +- if(*passwordp) +- free(*passwordp); +- *passwordp = password; +- } ++ *passwordp = password; + } + else { +- if(login_alloc) ++ if(!specific_login) + free(login); +- if(password_alloc) +- free(password); ++ free(password); + } + fclose(file); + } +diff --git a/Utilities/cmcurl/lib/url.c b/Utilities/cmcurl/lib/url.c +index 2814d31..51c7f88 100644 +--- a/Utilities/cmcurl/lib/url.c ++++ b/Utilities/cmcurl/lib/url.c +@@ -2698,6 +2698,7 @@ static CURLcode override_login(struct Curl_easy *data, + url_provided = TRUE; + } + ++ if(!*passwdp) { + ret = Curl_parsenetrc(conn->host.name, + userp, passwdp, + data->set.str[STRING_NETRC_FILE]); +@@ -2729,6 +2730,7 @@ static CURLcode override_login(struct Curl_easy *data, + if(!*userp) + return CURLE_OUT_OF_MEMORY; + } ++ } + } + #endif + +-- +2.45.2 + diff --git a/SPECS/cmake/cmake.spec b/SPECS/cmake/cmake.spec index 84631e3818f..cdbe4a585e2 100644 --- a/SPECS/cmake/cmake.spec +++ b/SPECS/cmake/cmake.spec @@ -2,7 +2,7 @@ Summary: Cmake Name: cmake Version: 3.30.3 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD AND LGPLv2+ Vendor: Microsoft Corporation Distribution: Azure Linux @@ -14,6 +14,7 @@ Patch0: 0001-manually-recreating-patches.patch Patch1: CVE-2024-6197.patch Patch2: CVE-2024-6874.patch Patch3: CVE-2024-8096.patch +Patch4: CVE-2024-11053.patch BuildRequires: bzip2 BuildRequires: bzip2-devel BuildRequires: curl @@ -93,6 +94,9 @@ bin/ctest --force-new-ctest-process --rerun-failed --output-on-failure %{_libdir}/rpm/macros.d/macros.cmake %changelog +* Wed Jan 15 2025 Henry Beberman - 3.30.3-3 +- Patch vendored curl for CVE-2024-11053 + * Thu Sep 26 2024 Jonathan Behrens - 3.30.3-2 - Fix CVE-2024-6197, CVE-2024-6874, and CVE-2024-8096 diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index f93775571ef..f77cdedba6c 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -49,8 +49,8 @@ check-debuginfo-0.15.2-1.azl3.aarch64.rpm chkconfig-1.25-1.azl3.aarch64.rpm chkconfig-debuginfo-1.25-1.azl3.aarch64.rpm chkconfig-lang-1.25-1.azl3.aarch64.rpm -cmake-3.30.3-2.azl3.aarch64.rpm -cmake-debuginfo-3.30.3-2.azl3.aarch64.rpm +cmake-3.30.3-3.azl3.aarch64.rpm +cmake-debuginfo-3.30.3-3.azl3.aarch64.rpm coreutils-9.4-6.azl3.aarch64.rpm coreutils-debuginfo-9.4-6.azl3.aarch64.rpm coreutils-lang-9.4-6.azl3.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index a5660b41442..ab3925abffd 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -52,8 +52,8 @@ check-debuginfo-0.15.2-1.azl3.x86_64.rpm chkconfig-1.25-1.azl3.x86_64.rpm chkconfig-debuginfo-1.25-1.azl3.x86_64.rpm chkconfig-lang-1.25-1.azl3.x86_64.rpm -cmake-3.30.3-2.azl3.x86_64.rpm -cmake-debuginfo-3.30.3-2.azl3.x86_64.rpm +cmake-3.30.3-3.azl3.x86_64.rpm +cmake-debuginfo-3.30.3-3.azl3.x86_64.rpm coreutils-9.4-6.azl3.x86_64.rpm coreutils-debuginfo-9.4-6.azl3.x86_64.rpm coreutils-lang-9.4-6.azl3.x86_64.rpm From 3001d0ee0e5281540f7d53d3a4f234089036b746 Mon Sep 17 00:00:00 2001 From: CBL-Mariner-Bot <75509084+CBL-Mariner-Bot@users.noreply.github.com> Date: Thu, 16 Jan 2025 06:42:24 -0800 Subject: [PATCH 029/163] [AUTO-CHERRYPICK] rsync: upgrade to 3.4.1 to fix multiple CVEs - branch 3.0-dev (#11941) Co-authored-by: Henry Beberman --- SPECS/rsync/rsync.signatures.json | 2 +- SPECS/rsync/rsync.spec | 5 ++++- cgmanifest.json | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/SPECS/rsync/rsync.signatures.json b/SPECS/rsync/rsync.signatures.json index d4d0943647c..0cc523b8dad 100644 --- a/SPECS/rsync/rsync.signatures.json +++ b/SPECS/rsync/rsync.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "rsync-3.2.7.tar.gz": "4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb" + "rsync-3.4.1.tar.gz": "2924bcb3a1ed8b551fc101f740b9f0fe0a202b115027647cf69850d65fd88c52" } } diff --git a/SPECS/rsync/rsync.spec b/SPECS/rsync/rsync.spec index d93cc167afb..e479053dfdb 100644 --- a/SPECS/rsync/rsync.spec +++ b/SPECS/rsync/rsync.spec @@ -1,6 +1,6 @@ Summary: Fast incremental file transfer. Name: rsync -Version: 3.2.7 +Version: 3.4.1 Release: 1%{?dist} License: GPLv3+ Vendor: Microsoft Corporation @@ -60,6 +60,9 @@ EOF %{_sysconfdir}/rsyncd.conf %changelog +* Wed Jan 15 2025 Henry Beberman - 3.4.1-1 +- Upgrade to version 3.4.1 to fix CVE-2024-12084, CVE-2024-12085, CVE-2024-12086, CVE-2024-12087, CVE-2024-12088, CVE-2024-12747 + * Fri Oct 27 2023 CBL-Mariner Servicing Account - 3.2.7-1 - Auto-upgrade to 3.2.7 - Azure Linux 3.0 - package upgrades diff --git a/cgmanifest.json b/cgmanifest.json index 1e6cd116f7b..410bd67fdfa 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -25864,8 +25864,8 @@ "type": "other", "other": { "name": "rsync", - "version": "3.2.7", - "downloadUrl": "https://download.samba.org/pub/rsync/src/rsync-3.2.7.tar.gz" + "version": "3.4.1", + "downloadUrl": "https://download.samba.org/pub/rsync/src/rsync-3.4.1.tar.gz" } } }, From a0739473d92a280be4815902f4fa73123ab02fac Mon Sep 17 00:00:00 2001 From: Kevin Lockwood <57274670+kevin-b-lockwood@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:02:44 -0800 Subject: [PATCH 030/163] Update perl-Lingua-EN-Inflect to version 1.905-1 (#11714) --- .../perl-Lingua-EN-Inflect.signatures.json | 4 ++-- .../perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.spec | 8 ++++++-- cgmanifest.json | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.signatures.json b/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.signatures.json index 5dff96fb405..c2882daadb2 100644 --- a/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.signatures.json +++ b/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "perl-Lingua-EN-Inflect-1.904.tar.gz": "54d344884ba9b585680975bbd4049ddbf27bf654446fb00c7e1fc538e08c3173" + "perl-Lingua-EN-Inflect-1.905.tar.gz": "05c29ec3482e572313a60da2181b0b30c5db7cf01f8ae7616ad67e1b66263296" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.spec b/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.spec index a0160c8a024..d0444b73b19 100644 --- a/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.spec +++ b/SPECS-EXTENDED/perl-Lingua-EN-Inflect/perl-Lingua-EN-Inflect.spec @@ -1,6 +1,6 @@ Name: perl-Lingua-EN-Inflect -Version: 1.904 -Release: 5%{?dist} +Version: 1.905 +Release: 1%{?dist} Summary: Convert singular to plural, select "a" or "an" License: GPL+ or Artistic Vendor: Microsoft Corporation @@ -50,6 +50,10 @@ make test %changelog +* Tue Dec 24 2024 Kevin Lockwood - 1.905-1 +- Update to 1.905 +- License verified + * Fri Oct 15 2021 Pawel Winogrodzki - 1.904-5 - Initial CBL-Mariner import from Fedora 32 (license: MIT). diff --git a/cgmanifest.json b/cgmanifest.json index 410bd67fdfa..6d18e6ce18e 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -18063,8 +18063,8 @@ "type": "other", "other": { "name": "perl-Lingua-EN-Inflect", - "version": "1.904", - "downloadUrl": "https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.904.tar.gz" + "version": "1.905", + "downloadUrl": "https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz" } } }, From a4f754d45922a1df57b03d4b005118a3567ef012 Mon Sep 17 00:00:00 2001 From: Kevin Lockwood <57274670+kevin-b-lockwood@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:03:11 -0800 Subject: [PATCH 031/163] Update perl-IPC-Run3 to version 0.049-1 (#11698) --- ...-RT-52317-Calling-run3-garbles-STDIN.patch | 134 ------------------ .../perl-IPC-Run3.signatures.json | 4 +- .../perl-IPC-Run3/perl-IPC-Run3.spec | 19 ++- cgmanifest.json | 4 +- 4 files changed, 13 insertions(+), 148 deletions(-) delete mode 100644 SPECS-EXTENDED/perl-IPC-Run3/0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch diff --git a/SPECS-EXTENDED/perl-IPC-Run3/0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch b/SPECS-EXTENDED/perl-IPC-Run3/0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch deleted file mode 100644 index fedc11d0767..00000000000 --- a/SPECS-EXTENDED/perl-IPC-Run3/0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 8ebe48760cfdc78fbf4fc46413dde9470121b99e Mon Sep 17 00:00:00 2001 -From: Roderich Schupp -Date: Sun, 29 Sep 2013 18:12:03 +0200 -Subject: [PATCH 5/5] test and fix for RT #52317: Calling run3 garbles STDIN - ---- - lib/IPC/Run3.pm | 26 ++++++------------------- - t/preserve_stdin.t | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 63 insertions(+), 20 deletions(-) - create mode 100644 t/preserve_stdin.t - -diff --git a/lib/IPC/Run3.pm b/lib/IPC/Run3.pm -index 12c9d8a..777e290 100644 ---- a/lib/IPC/Run3.pm -+++ b/lib/IPC/Run3.pm -@@ -363,14 +363,12 @@ sub run3 { - $options if defined $stderr; - - # this should make perl close these on exceptions --# local *STDIN_SAVE; -+ local *STDIN_SAVE; - local *STDOUT_SAVE; - local *STDERR_SAVE; - -- my $saved_fd0 = dup( 0 ) if defined $in_fh; -- --# open STDIN_SAVE, "<&STDIN"# or croak "run3(): $! saving STDIN" --# if defined $in_fh; -+ open STDIN_SAVE, "<&STDIN" or croak "run3(): $! saving STDIN" -+ if defined $in_fh; - open STDOUT_SAVE, ">&STDOUT" or croak "run3(): $! saving STDOUT" - if defined $out_fh; - open STDERR_SAVE, ">&STDERR" or croak "run3(): $! saving STDERR" -@@ -378,17 +376,10 @@ sub run3 { - - my $errno; - my $ok = eval { -- # The open() call here seems to not force fd 0 in some cases; -- # I ran in to trouble when using this in VCP, not sure why. -- # the dup2() seems to work. -- dup2( fileno $in_fh, 0 ) --# open STDIN, "<&=" . fileno $in_fh -+ open STDIN, "<&=" . fileno $in_fh - or croak "run3(): $! redirecting STDIN" - if defined $in_fh; - --# close $in_fh or croak "$! closing STDIN temp file" --# if ref $stdin; -- - open STDOUT, ">&" . fileno $out_fh - or croak "run3(): $! redirecting STDOUT" - if defined $out_fh; -@@ -428,13 +419,8 @@ sub run3 { - - my @errs; - -- if ( defined $saved_fd0 ) { -- dup2( $saved_fd0, 0 ); -- POSIX::close( $saved_fd0 ); -- } -- --# open STDIN, "<&STDIN_SAVE"# or push @errs, "run3(): $! restoring STDIN" --# if defined $in_fh; -+ open STDIN, "<&STDIN_SAVE" or push @errs, "run3(): $! restoring STDIN" -+ if defined $in_fh; - open STDOUT, ">&STDOUT_SAVE" or push @errs, "run3(): $! restoring STDOUT" - if defined $out_fh; - open STDERR, ">&STDERR_SAVE" or push @errs, "run3(): $! restoring STDERR" -diff --git a/t/preserve_stdin.t b/t/preserve_stdin.t -new file mode 100644 -index 0000000..8e090ee ---- /dev/null -+++ b/t/preserve_stdin.t -@@ -0,0 +1,57 @@ -+#!perl -w -+ -+## test whether reading from STDIN is preserved when -+## run3 is called in between reads -+ -+use Test::More; -+use IPC::Run3; -+use File::Temp qw(tempfile); -+use strict; -+ -+# call run3 at different lines (problems might manifest itself -+# on different lines, probably due to different buffering of input) -+my @check_at = (5, 10, 50, 100, 200, 500); -+plan tests => @check_at * 3; -+ -+# create a test file for input containing 1000 lines -+my $nlines = 1000; -+my @exp_lines; -+my ($fh, $file) = tempfile(UNLINK => 1); -+for (my $i = 1; $i <= $nlines; $i++) -+{ -+ my $line = "this is line $i"; -+ push @exp_lines, $line; -+ print $fh $line, "\n"; -+} -+close $fh; -+ -+ -+my ( $in, $out, $err ); -+ -+foreach my $n (@check_at) -+{ -+ my $nread = 0; -+ my $unexpected; -+ open STDIN, "<", $file or die "can't open file $file: $!"; -+ while () -+ { -+ chomp; -+ $unexpected = qq[line $nread: expected "$exp_lines[$nread]", got "$_"\n] -+ unless $exp_lines[$nread] eq $_ || $unexpected; -+ $nread++; -+ -+ if ($nread == $n) -+ { -+ $in = "checking at line $n"; -+ run3 [ $^X, '-e', 'print uc $_ while <>' ], \$in, \$out, \$err; -+ die "command failed" unless $? == 0; -+ is($out, uc $in); -+ } -+ } -+ close STDIN; -+ -+ is($nread, $nlines, "STDIN was read completely"); -+ ok(!$unexpected, "STDIN as expected") or diag($unexpected); -+} -+ -+ --- -1.8.5.3 - diff --git a/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.signatures.json b/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.signatures.json index f7b94f01683..eaf3dca841b 100644 --- a/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.signatures.json +++ b/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "perl-IPC-Run3-0.048.tar.gz": "3d81c3cc1b5cff69cca9361e2c6e38df0352251ae7b41e2ff3febc850e463565" + "perl-IPC-Run3-0.049.tar.gz": "9d048ae7b9ae63871bae976ba01e081d887392d904e5d48b04e22d35ed22011a" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.spec b/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.spec index 2dc270dc516..a5fedbb244c 100644 --- a/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.spec +++ b/SPECS-EXTENDED/perl-IPC-Run3/perl-IPC-Run3.spec @@ -1,6 +1,6 @@ Name: perl-IPC-Run3 -Version: 0.048 -Release: 19%{?dist} +Version: 0.049 +Release: 1%{?dist} Summary: Run a subprocess in batch mode License: GPL+ or Artistic or BSD Vendor: Microsoft Corporation @@ -27,11 +27,6 @@ BuildRequires: perl(Test::Pod::Coverage) BuildRequires: perl(Test::Pod) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) -# RHBZ #1062267 / https://rt.cpan.org/Public/Bug/Display.html?id=52317 -# Patch from -# https://github.com/rschupp/IPC-Run3/commit/8ebe48760cfdc78fbf4fc46413dde9470121b99e -Patch0: 0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch - %description This module allows you to run a subprocess and redirect stdin, stdout, and/or stderr to files and perl data structures. It aims to satisfy 99% of @@ -39,10 +34,9 @@ the need for using system, qx, and open3 with a simple, extremely Perlish API and none of the bloat and rarely used features of IPC::Run. %prep -%setup -q -n IPC-Run3-%{version} -%patch 0 -p1 +%autosetup -n IPC-Run3-%{version} -# Perms in tarballs are broken +# Perms in tarballs are broken find -type f -exec chmod -x {} \; %build @@ -63,6 +57,11 @@ make test RELEASE_TESTING=1 %{_mandir}/man3/* %changelog +* Mon Dec 23 2024 Kevin Lockwood - 0.049-1 +- Update to 0.049 +- License verified +- No longer apply 0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch + * Fri Oct 15 2021 Pawel Winogrodzki - 0.048-19 - Initial CBL-Mariner import from Fedora 32 (license: MIT). diff --git a/cgmanifest.json b/cgmanifest.json index 6d18e6ce18e..7a3d5ac2b0a 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -17943,8 +17943,8 @@ "type": "other", "other": { "name": "perl-IPC-Run3", - "version": "0.048", - "downloadUrl": "https://cpan.metacpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz" + "version": "0.049", + "downloadUrl": "https://cpan.metacpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.049.tar.gz" } } }, From d7bc078b4554090a1523a26bf115312925b32500 Mon Sep 17 00:00:00 2001 From: binujp Date: Thu, 16 Jan 2025 17:12:49 -0800 Subject: [PATCH 032/163] Bphilip/add mofed and dependencies (#11479) Co-authored-by: Binu Jose Philip Co-authored-by: chalamalasetty --- LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md | 3 +- LICENSES-AND-NOTICES/SPECS/data/licenses.json | 35 +- SPECS-SIGNED/fwctl-signed/fwctl-signed.spec | 105 +++ SPECS-SIGNED/iser-signed/iser-signed.spec | 100 +++ SPECS-SIGNED/isert-signed/isert-signed.spec | 100 +++ .../knem-signed/knem-modules-signed.spec | 105 +++ .../mft_kernel-signed/mft_kernel-signed.spec | 68 ++ .../mlnx-nfsrdma-signed.spec | 104 +++ .../mlnx-ofa_kernel-modules-signed.spec | 177 ++++ SPECS-SIGNED/srp-signed/srp-signed.spec | 92 +++ .../xpmem-signed/xpmem-modules-signed.spec | 69 ++ SPECS/fwctl/fwctl.signatures.json | 5 + SPECS/fwctl/fwctl.spec | 255 ++++++ SPECS/ibarr/ibarr.signatures.json | 5 + SPECS/ibarr/ibarr.spec | 60 ++ SPECS/ibsim/ibsim.signatures.json | 5 + SPECS/ibsim/ibsim.spec | 53 ++ SPECS/iser/iser.signatures.json | 5 + SPECS/iser/iser.spec | 252 ++++++ SPECS/isert/isert.signatures.json | 5 + SPECS/isert/isert.spec | 252 ++++++ SPECS/knem/knem.signatures.json | 5 + SPECS/knem/knem.spec | 289 +++++++ SPECS/mft_kernel/mft_kernel.signatures.json | 5 + SPECS/mft_kernel/mft_kernel.spec | 234 ++++++ .../mlnx-ethtool/mlnx-ethtool.signatures.json | 5 + SPECS/mlnx-ethtool/mlnx-ethtool.spec | 46 ++ .../mlnx-iproute2.signatures.json | 5 + SPECS/mlnx-iproute2/mlnx-iproute2.spec | 116 +++ .../mlnx-nfsrdma/mlnx-nfsrdma.signatures.json | 5 + SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec | 253 ++++++ .../mlnx-ofa_kernel.signatures.json | 5 + SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec | 766 ++++++++++++++++++ .../mlx-steering-dump.signatures.json | 5 + .../mlx-steering-dump/mlx-steering-dump.spec | 80 ++ SPECS/multiperf/multiperf.signatures.json | 5 + SPECS/multiperf/multiperf.spec | 44 + SPECS/rshim/rshim.signatures.json | 5 + SPECS/rshim/rshim.spec | 415 ++++++++++ SPECS/sockperf/sockperf.signatures.json | 5 + SPECS/sockperf/sockperf.spec | 88 ++ SPECS/srp/srp.signatures.json | 5 + SPECS/srp/srp.spec | 258 ++++++ SPECS/xpmem-lib/xpmem-lib.signatures.json | 5 + SPECS/xpmem-lib/xpmem-lib.spec | 88 ++ SPECS/xpmem/xpmem.signatures.json | 5 + SPECS/xpmem/xpmem.spec | 251 ++++++ cgmanifest.json | 180 ++++ toolkit/scripts/check_entangled_specs.py | 37 + toolkit/scripts/spec_source_attributions.py | 2 +- 50 files changed, 5064 insertions(+), 3 deletions(-) create mode 100644 SPECS-SIGNED/fwctl-signed/fwctl-signed.spec create mode 100644 SPECS-SIGNED/iser-signed/iser-signed.spec create mode 100644 SPECS-SIGNED/isert-signed/isert-signed.spec create mode 100644 SPECS-SIGNED/knem-signed/knem-modules-signed.spec create mode 100644 SPECS-SIGNED/mft_kernel-signed/mft_kernel-signed.spec create mode 100644 SPECS-SIGNED/mlnx-nfsrdma-signed/mlnx-nfsrdma-signed.spec create mode 100644 SPECS-SIGNED/mlnx-ofa_kernel-signed/mlnx-ofa_kernel-modules-signed.spec create mode 100644 SPECS-SIGNED/srp-signed/srp-signed.spec create mode 100644 SPECS-SIGNED/xpmem-signed/xpmem-modules-signed.spec create mode 100644 SPECS/fwctl/fwctl.signatures.json create mode 100644 SPECS/fwctl/fwctl.spec create mode 100644 SPECS/ibarr/ibarr.signatures.json create mode 100644 SPECS/ibarr/ibarr.spec create mode 100644 SPECS/ibsim/ibsim.signatures.json create mode 100644 SPECS/ibsim/ibsim.spec create mode 100644 SPECS/iser/iser.signatures.json create mode 100644 SPECS/iser/iser.spec create mode 100644 SPECS/isert/isert.signatures.json create mode 100644 SPECS/isert/isert.spec create mode 100644 SPECS/knem/knem.signatures.json create mode 100644 SPECS/knem/knem.spec create mode 100644 SPECS/mft_kernel/mft_kernel.signatures.json create mode 100644 SPECS/mft_kernel/mft_kernel.spec create mode 100644 SPECS/mlnx-ethtool/mlnx-ethtool.signatures.json create mode 100644 SPECS/mlnx-ethtool/mlnx-ethtool.spec create mode 100644 SPECS/mlnx-iproute2/mlnx-iproute2.signatures.json create mode 100644 SPECS/mlnx-iproute2/mlnx-iproute2.spec create mode 100644 SPECS/mlnx-nfsrdma/mlnx-nfsrdma.signatures.json create mode 100644 SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec create mode 100644 SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.signatures.json create mode 100644 SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec create mode 100644 SPECS/mlx-steering-dump/mlx-steering-dump.signatures.json create mode 100644 SPECS/mlx-steering-dump/mlx-steering-dump.spec create mode 100644 SPECS/multiperf/multiperf.signatures.json create mode 100644 SPECS/multiperf/multiperf.spec create mode 100644 SPECS/rshim/rshim.signatures.json create mode 100644 SPECS/rshim/rshim.spec create mode 100644 SPECS/sockperf/sockperf.signatures.json create mode 100644 SPECS/sockperf/sockperf.spec create mode 100644 SPECS/srp/srp.signatures.json create mode 100644 SPECS/srp/srp.spec create mode 100644 SPECS/xpmem-lib/xpmem-lib.signatures.json create mode 100644 SPECS/xpmem-lib/xpmem-lib.spec create mode 100644 SPECS/xpmem/xpmem.signatures.json create mode 100644 SPECS/xpmem/xpmem.spec diff --git a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md index bc5969c8d08..5fcd03e11c9 100644 --- a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md +++ b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md @@ -12,7 +12,8 @@ The Azure Linux SPEC files originated from a variety of sources with varying lic | Microsoft | [Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md) | application-gateway-kubernetes-ingress
asc
azcopy
azure-iot-sdk-c
azure-nvme-utils
azure-storage-cpp
azurelinux-release
azurelinux-repos
azurelinux-rpm-macros
azurelinux-sysinfo
bazel
blobfuse2
bmon
bpftrace
ccache
cert-manager
cf-cli
check-restart
clamav
cloud-hypervisor-cvm
cmake-fedora
containerd
containerd2
coredns
dcos-cli
debugedit
dejavu-fonts
distroless-packages
docker-buildx
docker-cli
docker-compose
doxygen
dtc
elixir
espeak-ng
espeakup
flannel
fluent-bit
freefont
gflags
gh
go-md2man
grpc
grub2-efi-binary-signed
GSL
gtk-update-icon-cache
helm
ig
intel-pf-bb-config
ivykis
jsonbuilder
jx
kata-containers-cc
kata-packages-uvm
keda
keras
kernel-64k-signed
kernel-signed
kernel-uki
kernel-uki-signed
kpatch
kube-vip-cloud-provider
kubernetes
libacvp
libconfini
libconfuse
libgdiplus
libmaxminddb
libmetalink
libsafec
libuv
libxml++
lld
local-path-provisioner
lsb-release
ltp
lttng-consume
mm-common
moby-containerd-cc
moby-engine
msgpack
ncompress
networkd-dispatcher
nlohmann-json
nmap
node-problem-detector
ntopng
opentelemetry-cpp
packer
pcaudiolib
pcre2
perl-Test-Warnings
perl-Text-Template
pigz
prebuilt-ca-certificates
prebuilt-ca-certificates-base
prometheus-adapter
python-cachetools
python-cherrypy
python-cstruct
python-execnet
python-google-pasta
python-libclang
python-libevdev
python-logutils
python-ml-dtypes
python-namex
python-nocasedict
python-omegaconf
python-opt-einsum
python-optree
python-pecan
python-pip
python-pyrpm
python-remoto
python-repoze-lru
python-routes
python-rsa
python-setuptools
python-sphinxcontrib-websupport
python-tensorboard
python-tensorboard-plugin-wit
python-yamlloader
R
rabbitmq-server
rocksdb
rubygem-addressable
rubygem-asciidoctor
rubygem-async
rubygem-async-http
rubygem-async-io
rubygem-async-pool
rubygem-bindata
rubygem-concurrent-ruby
rubygem-connection_pool
rubygem-console
rubygem-cool.io
rubygem-deep_merge
rubygem-digest-crc
rubygem-elastic-transport
rubygem-elasticsearch
rubygem-elasticsearch-api
rubygem-eventmachine
rubygem-excon
rubygem-faraday
rubygem-faraday-em_http
rubygem-faraday-em_synchrony
rubygem-faraday-excon
rubygem-faraday-httpclient
rubygem-faraday-multipart
rubygem-faraday-net_http
rubygem-faraday-net_http_persistent
rubygem-faraday-patron
rubygem-faraday-rack
rubygem-faraday-retry
rubygem-ffi
rubygem-fiber-local
rubygem-fluent-config-regexp-type
rubygem-fluent-logger
rubygem-fluent-plugin-elasticsearch
rubygem-fluent-plugin-kafka
rubygem-fluent-plugin-prometheus
rubygem-fluent-plugin-prometheus_pushgateway
rubygem-fluent-plugin-record-modifier
rubygem-fluent-plugin-rewrite-tag-filter
rubygem-fluent-plugin-systemd
rubygem-fluent-plugin-webhdfs
rubygem-fluent-plugin-windows-exporter
rubygem-fluentd
rubygem-hirb
rubygem-hocon
rubygem-hoe
rubygem-http_parser
rubygem-httpclient
rubygem-io-event
rubygem-jmespath
rubygem-ltsv
rubygem-mini_portile2
rubygem-minitest
rubygem-mocha
rubygem-msgpack
rubygem-multi_json
rubygem-multipart-post
rubygem-net-http-persistent
rubygem-nio4r
rubygem-nokogiri
rubygem-oj
rubygem-parallel
rubygem-power_assert
rubygem-prometheus-client
rubygem-protocol-hpack
rubygem-protocol-http
rubygem-protocol-http1
rubygem-protocol-http2
rubygem-public_suffix
rubygem-puppet-resource_api
rubygem-rdiscount
rubygem-rdkafka
rubygem-rexml
rubygem-ruby-kafka
rubygem-ruby-progressbar
rubygem-rubyzip
rubygem-semantic_puppet
rubygem-serverengine
rubygem-sigdump
rubygem-strptime
rubygem-systemd-journal
rubygem-test-unit
rubygem-thor
rubygem-timers
rubygem-tzinfo
rubygem-tzinfo-data
rubygem-webhdfs
rubygem-webrick
rubygem-yajl-ruby
rubygem-zip-zip
runc
sdbus-cpp
sgx-backwards-compatibility
shim
skopeo
span-lite
sriov-network-device-plugin
SymCrypt
SymCrypt-OpenSSL
systemd-boot-signed
tensorflow
tinyxml2
toml11
tracelogging
umoci
usrsctp
vala
valkey
vnstat
zstd | | Netplan source | [GPLv3](https://github.com/canonical/netplan/blob/main/COPYING) | netplan | | Numad source | [LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) | numad | -| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | libnvidia-container
mlnx-tools
mlx-bootctl
nvidia-container-toolkit
ofed-docs
ofed-scripts
perftest | +| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | fwctl
fwctl-signed
ibarr
ibsim
iser
iser-signed
isert
isert-signed
knem
knem-modules-signed
libnvidia-container
mft_kernel
mft_kernel-signed
mlnx-ethtool
mlnx-iproute2
mlnx-nfsrdma
mlnx-nfsrdma-signed
mlnx-ofa_kernel
mlnx-ofa_kernel-modules-signed
mlnx-tools
mlx-bootctl
mlx-steering-dump
multiperf
nvidia-container-toolkit
ofed-docs
ofed-scripts
perftest
rshim
sockperf
srp
srp-signed
xpmem
xpmem-lib
xpmem-modules-signed | +| NVIDIA (BSD) | [BSD](https://github.com/Mellanox/sockperf/blob/sockperf_v2/copying) | sockperf | | OpenEuler | [BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE) | pytorch | | OpenMamba | [Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt) | bash-completion | | OpenSUSE | Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing) | ant
ant-junit
antlr
aopalliance
apache-commons-beanutils
apache-commons-cli
apache-commons-codec
apache-commons-collections
apache-commons-collections4
apache-commons-compress
apache-commons-daemon
apache-commons-dbcp
apache-commons-digester
apache-commons-httpclient
apache-commons-io
apache-commons-jexl
apache-commons-lang
apache-commons-lang3
apache-commons-logging
apache-commons-net
apache-commons-pool
apache-commons-pool2
apache-commons-validator
apache-commons-vfs2
apache-parent
args4j
atinject
base64coder
bcel
bea-stax
beust-jcommander
bsf
byaccj
cal10n
cdparanoia
cglib
cni
containerized-data-importer
cpulimit
cri-o
ecj
fillup
flux
gd
geronimo-specs
glassfish-annotation-api
gnu-getopt
gnu-regexp
golang-packaging
guava
guava20
hamcrest
hawtjni-runtime
httpcomponents-core
influx-cli
influxdb
jakarta-taglibs-standard
jansi
jarjar
java-cup
java-cup-bootstrap
javacc
javacc-bootstrap
javassist
jboss-interceptors-1.2-api
jdepend
jflex
jflex-bootstrap
jlex
jline
jna
jsch
jsoup
jsr-305
jtidy
junit
junitperf
jzlib
kubevirt
kured
libcontainers-common
libtheora
libva
libvdpau
lynx
maven-parent
multus
objectweb-anttask
objectweb-asm
objenesis
oro
osgi-annotation
osgi-compendium
osgi-core
patterns-ceph-containers
plexus-classworlds
plexus-interpolation
plexus-pom
plexus-utils
proj
psl-make-dafsa
publicsuffix
qdox
regexp
relaxngDatatype
rhino
ripgrep
servletapi4
servletapi5
shapelib
slf4j
trilead-ssh2
virtiofsd
xalan-j2
xbean
xcursor-themes
xerces-j2
xml-commons-apis
xml-commons-resolver
xmldb-api
xmlrpc-c
xmlunit
xpp2
xpp3
xz-java | diff --git a/LICENSES-AND-NOTICES/SPECS/data/licenses.json b/LICENSES-AND-NOTICES/SPECS/data/licenses.json index 272fbba826c..086ec693df5 100644 --- a/LICENSES-AND-NOTICES/SPECS/data/licenses.json +++ b/LICENSES-AND-NOTICES/SPECS/data/licenses.json @@ -2455,13 +2455,46 @@ "NVIDIA": { "license": "[ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0)", "specs": [ + "fwctl", + "fwctl-signed", + "ibarr", + "ibsim", + "iser", + "iser-signed", + "isert", + "isert-signed", + "knem", + "knem-modules-signed", "libnvidia-container", + "mft_kernel", + "mft_kernel-signed", + "mlnx-ethtool", + "mlnx-iproute2", + "mlnx-nfsrdma", + "mlnx-nfsrdma-signed", + "mlnx-ofa_kernel", + "mlnx-ofa_kernel-modules-signed", "mlnx-tools", "mlx-bootctl", + "mlx-steering-dump", + "multiperf", "nvidia-container-toolkit", "ofed-docs", "ofed-scripts", - "perftest" + "perftest", + "rshim", + "sockperf", + "srp", + "srp-signed", + "xpmem", + "xpmem-lib", + "xpmem-modules-signed" + ] + }, + "NVIDIA (BSD)": { + "license": "[BSD](https://github.com/Mellanox/sockperf/blob/sockperf_v2/copying)", + "specs": [ + "sockperf" ] }, "OpenEuler": { diff --git a/SPECS-SIGNED/fwctl-signed/fwctl-signed.spec b/SPECS-SIGNED/fwctl-signed/fwctl-signed.spec new file mode 100644 index 00000000000..9d3f6d9a7a1 --- /dev/null +++ b/SPECS-SIGNED/fwctl-signed/fwctl-signed.spec @@ -0,0 +1,105 @@ +# +# Copyright (c) 2024 Nvidia Inc. All rights reserved. +# +# This software is available to you under a choice of one of two +# licenses. You may choose to be licensed under the terms of the GNU +# General Public License (GPL) Version 2, available from the file +# COPYING in the main directory of this source tree, or the +# OpenIB.org BSD license below: +# +# Redistribution and use in source and binary forms, with or +# without modification, are permitted provided that the following +# conditions are met: +# +# - Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# - Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%{!?_name: %define _name fwctl} + +Summary: %{_name} Driver +Name: %{_name} +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://nvidia.com +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: fwctl.ko +Source2: mlx5_fwctl.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +fwctl signed kernel modules + +%prep + +%build + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/fwctl/fwctl.ko +cp -r %{SOURCE2} %{buildroot}/lib/modules/%{KVERSION}/updates/fwctl/mlx5/mlx5_fwctl.ko + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%files +%defattr(-,root,root,-) +%license %{_datadir}/licenses/%{name}/copyright +/lib/modules/%{KVERSION}/updates/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 24.10.0.6.7.1 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/iser-signed/iser-signed.spec b/SPECS-SIGNED/iser-signed/iser-signed.spec new file mode 100644 index 00000000000..3879e6d8aa1 --- /dev/null +++ b/SPECS-SIGNED/iser-signed/iser-signed.spec @@ -0,0 +1,100 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%{!?_name: %define _name iser} + +Summary: %{_name} Driver +Name: %{_name} +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: ib_iser.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +iser signed kernel modules + +%prep + +%build + + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/iser/ib_iser.ko + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%files +%defattr(-,root,root,-) +%license %{_datadir}/licenses/%{name}/copyright +/lib/modules/%{KVERSION}/updates/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 24.10.0.6.7.1 +- Creating signed spec +- License verified +- Initial Azure Linux import from NVIDIA (license: GPLv2) diff --git a/SPECS-SIGNED/isert-signed/isert-signed.spec b/SPECS-SIGNED/isert-signed/isert-signed.spec new file mode 100644 index 00000000000..a52b4481a6c --- /dev/null +++ b/SPECS-SIGNED/isert-signed/isert-signed.spec @@ -0,0 +1,100 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%{!?_name: %define _name isert} + +Summary: %{_name} Driver +Name: %{_name} +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: ib_isert.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +isert signed kernel modules + +%prep + +%build + + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/isert/ib_isert.ko + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%files +%defattr(-,root,root,-) +%license %{_datadir}/licenses/%{name}/copyright +/lib/modules/%{KVERSION}/updates/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 24.10.0.6.7.1 +- Creating signed spec +- License verified +- Initial Azure Linux import from NVIDIA (license: GPLv2) diff --git a/SPECS-SIGNED/knem-signed/knem-modules-signed.spec b/SPECS-SIGNED/knem-signed/knem-modules-signed.spec new file mode 100644 index 00000000000..c4df6592bc0 --- /dev/null +++ b/SPECS-SIGNED/knem-signed/knem-modules-signed.spec @@ -0,0 +1,105 @@ +# Copyright © INRIA 2009-2010 +# Brice Goglin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +# set package name +%{!?_name: %global _name knem} +%global non_kmp_pname %{_name}-modules + +# knem-modules is a sub-package in SPECS/knem. We are making that into a +# main package for signing. + +Summary: KNEM: High-Performance Intra-Node MPI Communication +Name: %{_name}-modules +Version: 1.1.4.90mlnx3 +Release: 1%{?dist} +Provides: knem-mlnx = %{version}-%{release} +Obsoletes: knem-mlnx < %{version}-%{release} +License: BSD and GPLv2 +Group: System Environment/Libraries +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: knem.ko +BuildRoot: /var/tmp/%{name}-%{version}-build + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +KNEM is a Linux kernel module enabling high-performance intra-node MPI communication for large messages. KNEM offers support for asynchronous and vectorial data transfers as well as offloading memory copies on to Intel I/OAT hardware. +See http://knem.gitlabpages.inria.fr for details. + +%global debug_package %{nil} + +%prep + +%build + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/extra/knem/knem.ko + +%clean +rm -rf %{buildroot} + +%post +depmod %{KVERSION} -a + +%postun +if [ $1 = 0 ]; then # 1 : Erase, not upgrade + depmod %{KVERSION} -a +fi + +%files +%{_datadir}/licenses +/lib/modules/ +%if %{IS_RHEL_VENDOR} +%if ! 0%{?fedora} +%config(noreplace) %{_sysconfdir}/depmod.d/%{_name}.conf +%endif +%endif + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 1.1.4.90mlnx3 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/mft_kernel-signed/mft_kernel-signed.spec b/SPECS-SIGNED/mft_kernel-signed/mft_kernel-signed.spec new file mode 100644 index 00000000000..cfdfbad1ddb --- /dev/null +++ b/SPECS-SIGNED/mft_kernel-signed/mft_kernel-signed.spec @@ -0,0 +1,68 @@ + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%global _name kernel-mft + +Name: %{_name} +Summary: %{name} Kernel Module for the %{KVERSION} kernel +Version: 4.30.0 +Release: 1%{?dist} +License: Dual BSD/GPLv2 +Group: System Environment/Kernel + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: mst_pci.ko +Source2: mst_pciconf.ko +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +mft kernel module(s) + +%global debug_package %{nil} + +%prep + +%build + + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/mst_pci.ko +cp -r %{SOURCE2} %{buildroot}/lib/modules/%{KVERSION}/updates/mst_pciconf.ko + +%clean +rm -rf %{buildroot} + +%post +/sbin/depmod %{KVERSION} + +%postun +/sbin/depmod %{KVERSION} + +%files +%defattr(-,root,root,-) +%license %{_datadir}/licenses/%{name}/COPYING +/lib/modules/%{KVERSION}/updates/ + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 4.30.0 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/mlnx-nfsrdma-signed/mlnx-nfsrdma-signed.spec b/SPECS-SIGNED/mlnx-nfsrdma-signed/mlnx-nfsrdma-signed.spec new file mode 100644 index 00000000000..761c7eb34d7 --- /dev/null +++ b/SPECS-SIGNED/mlnx-nfsrdma-signed/mlnx-nfsrdma-signed.spec @@ -0,0 +1,104 @@ +# +# Copyright (c) 2016 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%{!?_name: %define _name mlnx-nfsrdma} + +Summary: %{_name} Driver +Name: %{_name} +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: rpcrdma.ko +Source2: svcrdma.ko +Source3: xprtrdma.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +mellanox rdma signed kernel modules + +%prep + +%build + + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/mlnx-nfsrdma/rpcrdma.ko +cp -r %{SOURCE2} %{buildroot}/lib/modules/%{KVERSION}/updates/mlnx-nfsrdma/svcrdma.ko +cp -r %{SOURCE3} %{buildroot}/lib/modules/%{KVERSION}/updates/mlnx-nfsrdma/xprtrdma.ko + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%files +%defattr(-,root,root,-) +%license %{_datadir}/licenses/%{name}/copyright +/lib/modules/%{KVERSION}/updates/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 24.10.0.6.7.1 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/mlnx-ofa_kernel-signed/mlnx-ofa_kernel-modules-signed.spec b/SPECS-SIGNED/mlnx-ofa_kernel-signed/mlnx-ofa_kernel-modules-signed.spec new file mode 100644 index 00000000000..ffa0bc558d5 --- /dev/null +++ b/SPECS-SIGNED/mlnx-ofa_kernel-signed/mlnx-ofa_kernel-modules-signed.spec @@ -0,0 +1,177 @@ +# +# Copyright (c) 2012 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +%{!?_name: %global _name mlnx-ofa_kernel} + +# mlnx-ofa_kernel-modules is a sub-package in SPECS/mlnx-ofa_kernel. +# We are making that into a main package for signing. + +Summary: Infiniband HCA Driver +Name: %{_name}-modules +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com/ +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: mlx_compat.ko +Source2: ib_cm.ko +Source3: ib_core.ko +Source4: ib_ucm.ko +Source5: ib_umad.ko +Source6: ib_uverbs.ko +Source7: iw_cm.ko +Source8: rdma_cm.ko +Source9: rdma_ucm.ko +Source10: bnxt_re.ko +Source11: efa.ko +Source12: mlx4_ib.ko +Source13: mlx5_ib.ko +Source14: rdma_rxe.ko +Source15: ib_ipoib.ko +Source16: ib_iser.ko +Source17: ib_isert.ko +Source18: ib_srp.ko +Source19: mlx5_core.ko +Source10: mlxfw.ko +Source11: mlxsw_spectrum.ko +Source12: nvme-rdma.ko +Source13: nvmet-rdma.ko +Source14: mlxdevm.ko +Source15: smc.ko +Source16: smc_diag.ko +Source17: rpcrdma.ko +Source18: svcrdma.ko +Source19: xprtrdma.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Obsoletes: kernel-ib +Obsoletes: mlnx-en +Obsoletes: mlnx_en +Obsoletes: mlnx-en-utils +Obsoletes: kmod-mlnx-en +Obsoletes: mlnx-en-kmp-default +Obsoletes: mlnx-en-kmp-xen +Obsoletes: mlnx-en-kmp-trace +Obsoletes: mlnx-en-doc +Obsoletes: mlnx-en-debuginfo +Obsoletes: mlnx-en-sources + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod +Requires: libstdc++ +Requires: libunwind + +Requires: mlnx-tools >= 5.2.0 +Requires: coreutils +Requires: pciutils +Requires: grep +Requires: procps +Requires: module-init-tools +Requires: lsof +Requires: ofed-scripts + + +%description +Mellanox infiniband kernel modules. +The driver sources are located at: http://www.mellanox.com/downloads/ + +%prep + +%build + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/compat/mlx_compat.ko +cp -r %{SOURCE2} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/ib_cm.ko +cp -r %{SOURCE3} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/ib_core.ko +cp -r %{SOURCE4} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/ib_ucm.ko +cp -r %{SOURCE5} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/ib_umad.ko +cp -r %{SOURCE6} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/ib_uverbs.ko +cp -r %{SOURCE7} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/iw_cm.ko +cp -r %{SOURCE8} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/rdma_cm.ko +cp -r %{SOURCE9} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/core/rdma_ucm.ko +cp -r %{SOURCE10} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/hw/bnxt_re/bnxt_re.ko +cp -r %{SOURCE11} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/hw/efa/efa.ko +cp -r %{SOURCE12} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/hw/mlx4/mlx4_ib.ko +cp -r %{SOURCE13} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/hw/mlx5/mlx5_ib.ko +cp -r %{SOURCE14} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/sw/rxe/rdma_rxe.ko +cp -r %{SOURCE15} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/ulp/ipoib/ib_ipoib.ko +cp -r %{SOURCE16} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/ulp/iser/ib_iser.ko +cp -r %{SOURCE17} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/ulp/isert/ib_isert.ko +cp -r %{SOURCE18} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/infiniband/ulp/srp/ib_srp.ko +cp -r %{SOURCE19} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko +cp -r %{SOURCE10} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko +cp -r %{SOURCE11} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko +cp -r %{SOURCE12} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/nvme/host/nvme-rdma.ko +cp -r %{SOURCE13} %{buildroot}/lib/modules/%{KVERSION}/updates/drivers/nvme/target/nvmet-rdma.ko +cp -r %{SOURCE14} %{buildroot}/lib/modules/%{KVERSION}/updates/net/mlxdevm/mlxdevm.ko +cp -r %{SOURCE15} %{buildroot}/lib/modules/%{KVERSION}/updates/net/smc/smc.ko +cp -r %{SOURCE16} %{buildroot}/lib/modules/%{KVERSION}/updates/net/smc/smc_diag.ko +cp -r %{SOURCE17} %{buildroot}/lib/modules/%{KVERSION}/updates/net/sunrpc/xprtrdma/rpcrdma.ko +cp -r %{SOURCE18} %{buildroot}/lib/modules/%{KVERSION}/updates/net/sunrpc/xprtrdma/svcrdma.ko +cp -r %{SOURCE19} %{buildroot}/lib/modules/%{KVERSION}/updates/net/sunrpc/xprtrdma/xprtrdma.ko + +%clean +rm -rf %{buildroot} + +%post +/sbin/depmod %{KVERSION} + +%postun +if [ $1 = 0 ]; then # 1 : Erase, not upgrade + /sbin/depmod %{KVERSION} +fi + +%files +/lib/modules/%{KVERSION}/updates/ +%license %{_datadir}/licenses/%{name}/copyright + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 24.10 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/srp-signed/srp-signed.spec b/SPECS-SIGNED/srp-signed/srp-signed.spec new file mode 100644 index 00000000000..21b993da44a --- /dev/null +++ b/SPECS-SIGNED/srp-signed/srp-signed.spec @@ -0,0 +1,92 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} + +Summary: srp driver +Name: srp +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: ib_srp.ko +Source2: scsi_transport_srp.ko + +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +srp kernel modules + +%prep + +%build + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/srp/ib_srp.ko +cp -r %{SOURCE2} %{buildroot}/lib/modules/%{KVERSION}/updates/srp/scsi/scsi_transport_srp.ko + +%clean +rm -rf %{buildroot} + +%files modules +%defattr(-,root,root,-) +/lib/modules/%{KVERSION}/updates/srp/ib_srp.ko +/lib/modules/%{KVERSION}/updates/srp/scsi/scsi_transport_srp.ko +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%license %{_datadir}/licenses/%{name}/copyright + +%changelog +* Thu Jan 9 2024 Binu Jose Philip +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS-SIGNED/xpmem-signed/xpmem-modules-signed.spec b/SPECS-SIGNED/xpmem-signed/xpmem-modules-signed.spec new file mode 100644 index 00000000000..47f370d26b4 --- /dev/null +++ b/SPECS-SIGNED/xpmem-signed/xpmem-modules-signed.spec @@ -0,0 +1,69 @@ +%{!?KMP: %global KMP 0} + +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_azurelinux_build_kernel_version %(/bin/rpm -q --queryformat '%{RPMTAG_VERSION}' $(/bin/rpm -q --whatprovides kernel-headers)) +%global target_kernel_release %(/bin/rpm -q --queryformat '%{RPMTAG_RELEASE}' $(/bin/rpm -q --whatprovides kernel-headers) | /bin/cut -d . -f 1) + +%global KVERSION %{target_kernel_version_full} + +# xpmem-modules is a sub-package in SPECS/xpmem. +# We are making that into a main package for signing. + +Summary: Cross-partition memory +Name: xpmem-modules +Version: 2.7.4 +Release: 1%{?dist} +License: GPLv2 and LGPLv2.1 +Group: System Environment/Libraries +Vendor: Microsoft Corporation +Distribution: Azure Linux +BuildRequires: automake autoconf +URL: https://github.com/openucx/xpmem +ExclusiveArch: x86_64 + +# +# To populate these sources: +# 1. Build the unsigned packages as normal +# 2. Sign the desired binary +# 3. Place the unsigned package and signed binary in this spec's folder +# 4. Build this spec + +Source0: %{name}-%{version}-%{release}.%{_arch}.rpm +Source1: xpmem.ko + +Requires: mlnx-ofa_kernel +Requires: mlnx-ofa_kernel-modules +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package includes the kernel module. + +%prep + +%build + + +%install +rpm2cpio %{SOURCE0} | cpio -idmv -D %{buildroot} + +cp -r %{SOURCE1} %{buildroot}/lib/modules/%{KVERSION}/updates/xpmem.ko + +%clean +rm -rf %{buildroot} + +%files modules +/lib/modules/%{KVERSION}/updates/xpmem.ko +%{_datadir}/licenses + + +%changelog +* Tue Dec 16 2024 Binu Jose Philip - 2.7.4 +- Creating signed spec +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/fwctl/fwctl.signatures.json b/SPECS/fwctl/fwctl.signatures.json new file mode 100644 index 00000000000..e5d4ed40f30 --- /dev/null +++ b/SPECS/fwctl/fwctl.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "fwctl-24.10.tgz": "ec00a549851d9c506a8e2aed365db2506e3d8bb31dad970da82f8f665191deec" + } +} \ No newline at end of file diff --git a/SPECS/fwctl/fwctl.spec b/SPECS/fwctl/fwctl.spec new file mode 100644 index 00000000000..63217a5aef7 --- /dev/null +++ b/SPECS/fwctl/fwctl.spec @@ -0,0 +1,255 @@ +# +# Copyright (c) 2024 Nvidia Inc. All rights reserved. +# +# This software is available to you under a choice of one of two +# licenses. You may choose to be licensed under the terms of the GNU +# General Public License (GPL) Version 2, available from the file +# COPYING in the main directory of this source tree, or the +# OpenIB.org BSD license below: +# +# Redistribution and use in source and binary forms, with or +# without modification, are permitted provided that the following +# conditions are met: +# +# - Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# - Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +%{!?_name: %define _name fwctl} +%{!?_version: %define _version 24.10} +%{!?_release: %define _release OFED.24.10.0.6.7.1} + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take kernel version or default to uname -r +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# define release version +%{!?src_release: %global src_release %{_release}_%{krelver}} +%if "%{KMP}" != "1" +%global _release1 %{src_release} +%else +%global _release1 %{_release} +%endif +%global _kmp_rel %{_release1}%{?_kmp_build_num}%{?_dist} + +Summary: %{_name} Driver +Name: fwctl +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://nvidia.com +Group: System Environment/Base +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/fwctl-24.10.tgz#/%{_name}-%{_version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: mlnx-ofa_kernel-devel = %{_version} +BuildRequires: mlnx-ofa_kernel-source = %{_version} + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +%{name} kernel modules + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +BuildRequires: %kernel_module_package_buildreqs +%(mkdir -p %{buildroot}) +%(echo '%defattr (-,root,root)' > %{buildroot}/file_list) +%(echo '/lib/modules/%2-%1' >> %{buildroot}/file_list) +%(echo '%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*-%1.conf' >> %{buildroot}/file_list) +%{kernel_module_package -f %{buildroot}/file_list -x xen -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/%{name}-%{version}/source/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if 0%{?anolis} == 8 +%global __find_requires %{nil} +%endif + +# set modules dir +%if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") +%if 0%{?fedora} +%global install_mod_dir updates/%{name} +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates/%{name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates/%{name}} + +%prep +%setup +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %{flavors_to_build}; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + export LIB_MOD_DIR=/lib/modules/$KVER/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -r source obj/$flavor + cd $PWD/obj/$flavor + make + cd - +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export PREFIX=%{_prefix} +for flavor in %flavors_to_build; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + cd $PWD/obj/$flavor + make install KERNELRELEASE=$KVER + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*\/%{name}} +mod_path=${mod_path/\/${ko_name}} +%if "%{_vendor}" == "suse" + for flavor in %{flavors_to_build}; do + if [[ $module =~ $flavor ]] || [ "X%{KMP}" != "X1" ];then + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}-$flavor.conf + fi + done +%else + %if 0%{?fedora} + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %else + %if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") + echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif + echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif +%endif +done + + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Mon Jul 29 2024 +- Initial packaging diff --git a/SPECS/ibarr/ibarr.signatures.json b/SPECS/ibarr/ibarr.signatures.json new file mode 100644 index 00000000000..741df92c21e --- /dev/null +++ b/SPECS/ibarr/ibarr.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "ibarr-0.1.3.tar.gz": "db24745abfd49af9ed2b3f1990b9b00e0bd51258c282caa6fa3cf420f90b8b25" + } +} \ No newline at end of file diff --git a/SPECS/ibarr/ibarr.spec b/SPECS/ibarr/ibarr.spec new file mode 100644 index 00000000000..2a4a5a481bc --- /dev/null +++ b/SPECS/ibarr/ibarr.spec @@ -0,0 +1,60 @@ +Name: ibarr +Version: 0.1.3 +Release: 2%{?dist} +Summary: Nvidia address and route userspace resolution services for Infiniband +Vendor: Microsoft Corporation +Distribution: Azure Linux +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ibarr-0.1.3.tar.gz#/%{name}-%{version}.tar.gz +Group: Applications/System +License: (GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause +ExclusiveArch: x86_64 + +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: libnl3-devel +BuildRequires: rdma-core-devel + +# The SLES cmake macros do more than the RHEL ones, and have an extra +# cmake_install with a 'cd build' inside. +%if %{undefined cmake_install} +%global cmake_install %make_install +%endif +%if %{undefined cmake_build} + %if %{defined make_jobs} + # SLES12 + %global cmake_build %make_jobs + %else + # RHEL < 9, Fedora < ?? + %global cmake_build %make_build + %endif +%endif + +%description +a userspace application that interacts over NetLink with the Linux RDMA +subsystem and provides 2 services: ip2gid (address resolution) and gid2lid +(PathRecord resolution). + +%prep +%setup -q + +%build +%cmake +%cmake_build + +%install +%cmake_install + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%doc README.md +%license COPYING.BSD_MIT +%{_bindir}/ibarr +# FIXME: should be in the standard directory, under _prefix. +/lib/systemd/system/%{name}.service + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/ibsim/ibsim.signatures.json b/SPECS/ibsim/ibsim.signatures.json new file mode 100644 index 00000000000..bd36bdca1e6 --- /dev/null +++ b/SPECS/ibsim/ibsim.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "ibsim-0.12.tar.gz": "f137872bf1ec1ca56c9f301ddef237a5f9c4111d6b83b4be853b58c054e454a3" + } +} \ No newline at end of file diff --git a/SPECS/ibsim/ibsim.spec b/SPECS/ibsim/ibsim.spec new file mode 100644 index 00000000000..041a89f2dcf --- /dev/null +++ b/SPECS/ibsim/ibsim.spec @@ -0,0 +1,53 @@ + +%define RELEASE 2 +%define rel %{?CUSTOM_RELEASE}%{!?CUSTOM_RELEASE:%RELEASE} + +Summary: InfiniBand fabric simulator for management +Name: ibsim +Version: 0.12 +Release: 1%{?dist} +License: GPLv2 or BSD +Group: System Environment/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ibsim-0.12.tar.gz#/ibsim-%{version}.tar.gz +Url: https://github.com/linux-rdma/ibsim +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: libibmad-devel +BuildRequires: libibumad-devel +BuildRequires: gcc + +%description +ibsim provides simulation of infiniband fabric for using with +OFA OpenSM, diagnostic and management tools. + +%prep +%setup -q + +%build +export CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" +export LDFLAGS="${LDFLAGS:-${RPM_OPT_FLAGS}}" +make prefix=%_prefix libpath=%_libdir binpath=%_bindir %{?_smp_mflags} + +%install +export CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" +export LDFLAGS="${LDFLAGS:-${RPM_OPT_FLAGS}}" +make DESTDIR=${RPM_BUILD_ROOT} prefix=%_prefix libpath=%_libdir binpath=%_bindir install + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%{_libdir}/umad2sim/libumad2sim*.so* +%{_bindir}/ibsim +%{_bindir}/ibsim-run +%doc README TODO net-examples scripts +%license COPYING + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/iser/iser.signatures.json b/SPECS/iser/iser.signatures.json new file mode 100644 index 00000000000..7091fd70f69 --- /dev/null +++ b/SPECS/iser/iser.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "iser-24.10.tgz": "d9c1344146697664a32d47e933b1ab26d4ba1899ea5936c2b6216316a1d974a5" + } +} \ No newline at end of file diff --git a/SPECS/iser/iser.spec b/SPECS/iser/iser.spec new file mode 100644 index 00000000000..989ab646028 --- /dev/null +++ b/SPECS/iser/iser.spec @@ -0,0 +1,252 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +%{!?_name: %define _name iser} +%{!?_version: %define _version 24.10} +%{!?_release: %define _release OFED.24.10.0.6.7.1} + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take kernel version or default to uname -r +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +# %{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# define release version +%{!?src_release: %global src_release %{_release}_%{krelver}} +%if "%{KMP}" != "1" +%global _release1 %{src_release} +%else +%global _release1 %{_release} +%endif +%global _kmp_rel %{_release1}%{?_kmp_build_num}%{?_dist} + +Summary: %{_name} Driver +Name: iser +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/iser-24.10.tgz#/iser-%{_version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: mlnx-ofa_kernel-devel = %{_version} +BuildRequires: mlnx-ofa_kernel-source = %{_version} + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +%{name} kernel modules + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +BuildRequires: %kernel_module_package_buildreqs +%(mkdir -p %{buildroot}) +%(echo '%defattr (-,root,root)' > %{buildroot}/file_list) +%(echo '/lib/modules/%2-%1' >> %{buildroot}/file_list) +%(echo '%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*-%1.conf' >> %{buildroot}/file_list) +%{kernel_module_package -f %{buildroot}/file_list -x xen -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/%{name}-%{version}/source/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if 0%{?anolis} == 8 +%global __find_requires %{nil} +%endif + +# set modules dir +%if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") +%if 0%{?fedora} +%global install_mod_dir updates/%{name} +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates/%{name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates/%{name}} + +%prep +%setup +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %{flavors_to_build}; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + export LIB_MOD_DIR=/lib/modules/$KVER/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -r source obj/$flavor + cd $PWD/obj/$flavor + make + cd - +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export PREFIX=%{_prefix} +for flavor in %flavors_to_build; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + cd $PWD/obj/$flavor + make install KERNELRELEASE=$KVER + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*\/%{name}} +mod_path=${mod_path/\/${ko_name}} +%if "%{_vendor}" == "suse" + for flavor in %{flavors_to_build}; do + if [[ $module =~ $flavor ]] || [ "X%{KMP}" != "X1" ];then + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}-$flavor.conf + fi + done +%else + %if 0%{?fedora} + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %else + %if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") + echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif + echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif +%endif +done + + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Thu Feb 20 2014 Alaa Hleihel +- Initial packaging diff --git a/SPECS/isert/isert.signatures.json b/SPECS/isert/isert.signatures.json new file mode 100644 index 00000000000..616d6a2865f --- /dev/null +++ b/SPECS/isert/isert.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "isert-24.10.tgz": "ee91338b063800563b7a1cc1adfb29ff8913b17b0bc941a24995211f3268d33a" + } +} \ No newline at end of file diff --git a/SPECS/isert/isert.spec b/SPECS/isert/isert.spec new file mode 100644 index 00000000000..7d909d47d90 --- /dev/null +++ b/SPECS/isert/isert.spec @@ -0,0 +1,252 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +%{!?_name: %define _name isert} +%{!?_version: %define _version 24.10} +%{!?_release: %define _release OFED.24.10.0.6.7.1} + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take kernel version or default to uname -r +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +# %{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# define release version +%{!?src_release: %global src_release %{_release}_%{krelver}} +%if "%{KMP}" != "1" +%global _release1 %{src_release} +%else +%global _release1 %{_release} +%endif +%global _kmp_rel %{_release1}%{?_kmp_build_num}%{?_dist} + +Summary: %{_name} Driver +Name: isert +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/isert-24.10.tgz#/isert-%{_version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: mlnx-ofa_kernel-devel = %{_version} +BuildRequires: mlnx-ofa_kernel-source = %{_version} + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +%{name} kernel modules + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +BuildRequires: %kernel_module_package_buildreqs +%(mkdir -p %{buildroot}) +%(echo '%defattr (-,root,root)' > %{buildroot}/file_list) +%(echo '/lib/modules/%2-%1' >> %{buildroot}/file_list) +%(echo '%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*-%1.conf' >> %{buildroot}/file_list) +%{kernel_module_package -f %{buildroot}/file_list -x xen -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/%{name}-%{version}/source/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if 0%{?anolis} == 8 +%global __find_requires %{nil} +%endif + +# set modules dir +%if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") +%if 0%{?fedora} +%global install_mod_dir updates/%{name} +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates/%{name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates/%{name}} + +%prep +%setup +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %{flavors_to_build}; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + export LIB_MOD_DIR=/lib/modules/$KVER/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -r source obj/$flavor + cd $PWD/obj/$flavor + make + cd - +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export PREFIX=%{_prefix} +for flavor in %flavors_to_build; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + cd $PWD/obj/$flavor + make install KERNELRELEASE=$KVER + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*\/%{name}} +mod_path=${mod_path/\/${ko_name}} +%if "%{_vendor}" == "suse" + for flavor in %{flavors_to_build}; do + if [[ $module =~ $flavor ]] || [ "X%{KMP}" != "X1" ];then + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}-$flavor.conf + fi + done +%else + %if 0%{?fedora} + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %else + %if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") + echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif + echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif +%endif +done + + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Thu Feb 20 2014 Alaa Hleihel +- Initial packaging diff --git a/SPECS/knem/knem.signatures.json b/SPECS/knem/knem.signatures.json new file mode 100644 index 00000000000..d2d2c1af0c6 --- /dev/null +++ b/SPECS/knem/knem.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "knem-1.1.4.90mlnx3.tar.gz": "69e917448e76f402890d5e43065ab1afe5b222a678fa0c3f7b61bacde294f053" + } +} \ No newline at end of file diff --git a/SPECS/knem/knem.spec b/SPECS/knem/knem.spec new file mode 100644 index 00000000000..bd33dacfc0d --- /dev/null +++ b/SPECS/knem/knem.spec @@ -0,0 +1,289 @@ +# Copyright © INRIA 2009-2010 +# Brice Goglin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +%{!?_release: %global _release OFED.23.10.0.2.1.1} +# %{!?KVERSION: %global KVERSION %(uname -r)} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} +%global _kmp_rel %{_release}%{?_kmp_build_num}%{?_dist} +%global IS_RHEL_VENDOR "%{_vendor}" == "redhat" || ("%{_vendor}" == "bclinux") || ("%{_vendor}" == "openEuler") +%global KMOD_PREAMBLE "%{_vendor}" != "openEuler" + +# set package name +%{!?_name: %global _name knem} +%global non_kmp_pname %{_name}-modules + +Summary: KNEM: High-Performance Intra-Node MPI Communication +Name: knem +Version: 1.1.4.90mlnx3 +Release: 1%{?dist} +Provides: knem-mlnx = %{version}-%{release} +Obsoletes: knem-mlnx < %{version}-%{release} +License: BSD and GPLv2 +Group: System Environment/Libraries +Vendor: Microsoft Corporation +Distribution: Azure Linux +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/knem-1.1.4.90mlnx3.tar.gz#/knem-%{version}.tar.gz +BuildRoot: /var/tmp/%{name}-%{version}-build +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + + +%description +KNEM is a Linux kernel module enabling high-performance intra-node MPI communication for large messages. KNEM offers support for asynchronous and vectorial data transfers as well as offloading memory copies on to Intel I/OAT hardware. +See http://knem.gitlabpages.inria.fr for details. + +%global debug_package %{nil} + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -C %{1} M=$PWD kernelrelease | grep -v make) +BuildRequires: %kernel_module_package_buildreqs +# prep file list for kmp rpm +%(cat > %{_builddir}/kmp.files << EOF +%defattr(644,root,root,755) +/lib/modules/%2-%1 +%if %{IS_RHEL_VENDOR} +%config(noreplace) %{_sysconfdir}/depmod.d/%{_name}.conf +%endif +EOF) +%(cat > %{_builddir}/preamble << EOF +Obsoletes: kmod-knem-mlnx < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-default < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-trace < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-xen < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-trace < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-ppc64 < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-ppc < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-smp < %{version}-%{release} +Obsoletes: knem-mlnx-kmp-pae < %{version}-%{release} +EOF) +%if %KMOD_PREAMBLE +%kernel_module_package -f %{_builddir}/kmp.files -r %{_kmp_rel} -p %{_builddir}/preamble +%else +%kernel_module_package -f %{_builddir}/kmp.files -r %{_kmp_rel} +%endif +%else # not KMP +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default + +%package -n %{non_kmp_pname} +Release: 1%{?dist} +Summary: KNEM: High-Performance Intra-Node MPI Communication +Group: System Environment/Libraries +%description -n %{non_kmp_pname} +KNEM is a Linux kernel module enabling high-performance intra-node MPI communication for large messages. KNEM offers support for asynchronous and vectorial data transfers as well as loading memory copies on to Intel I/OAT hardware. +See http://runtime.bordeaux.inria.fr/knem/ for details. +%endif #end if "%{KMP}" == "1" + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + $RPM_BUILD_DIR/knem-%{version}/source/tools/sign-modules $RPM_BUILD_ROOT/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates +%endif + + +%global install_mod_dir extra/%{_name} +%global __find_requires %{nil} + +%prep +%setup -n knem-%{version} +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +rm -rf $RPM_BUILD_ROOT +export INSTALL_MOD_DIR=%install_mod_dir +for flavor in %flavors_to_build; do + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + export LIB_MOD_DIR=/lib/modules/$KVERSION/$INSTALL_MOD_DIR + export MODULE_DESTDIR=/lib/modules/$KVERSION/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -a source obj/$flavor + cd $PWD/obj/$flavor + find . -type f -exec touch -t 200012201010 '{}' \; || true + ./configure --prefix=/opt/knem-%{version} --with-linux-release=$KVERSION --with-linux=/lib/modules/$KVERSION/source --with-linux-build=$KSRC --libdir=/opt/knem-%{version}/lib + make + cd - +done + +%install +export INSTALL_MOD_PATH=$RPM_BUILD_ROOT +export INSTALL_MOD_DIR=%install_mod_dir +export KPNAME=%{_name} +mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d +install -d $RPM_BUILD_ROOT/usr/lib64/pkgconfig +for flavor in %flavors_to_build; do + cd $PWD/obj/$flavor + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + make DESTDIR=$RPM_BUILD_ROOT install KERNELRELEASE=$KVERSION + export MODULE_DESTDIR=/lib/modules/$KVERSION/$INSTALL_MOD_DIR + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KVERSION/$INSTALL_MOD_DIR + MODULE_DESTDIR=/lib/modules/$KVERSION/$INSTALL_MOD_DIR DESTDIR=$RPM_BUILD_ROOT KVERSION=$KVERSION $RPM_BUILD_ROOT/opt/knem-%{version}/sbin/knem_local_install + cp knem.pc $RPM_BUILD_ROOT/usr/lib64/pkgconfig + cd - +done + +/bin/rm -rf %{buildroot}/opt/knem-%{version}/lib/modules || true + +%if %{IS_RHEL_VENDOR} +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%if ! 0%{?fedora} +%{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/ +echo "override knem * weak-updates/%{_name}" >> $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/%{_name}.conf +echo "override knem * extra/%{_name}" >> $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d/%{_name}.conf +%endif +%else +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__strip} -p --strip-debug --discard-locals -R .comment -R .note \{\} \; +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +getent group rdma >/dev/null 2>&1 || groupadd -r rdma +touch /etc/udev/rules.d/10-knem.rules +# load knem +/sbin/modprobe -r knem > /dev/null 2>&1 +/sbin/modprobe knem > /dev/null 2>&1 + +# automatically load knem onboot +if [ -d /etc/sysconfig/modules ]; then + # RH + echo "/sbin/modprobe knem > /dev/null 2>&1" > /etc/sysconfig/modules/knem.modules + chmod +x /etc/sysconfig/modules/knem.modules +elif [ -e /etc/sysconfig/kernel ]; then + # SLES + if ! (grep -w knem /etc/sysconfig/kernel); then + sed -i -r -e 's/^(MODULES_LOADED_ON_BOOT=)"(.*)"/\1"\2 knem"/' /etc/sysconfig/kernel + fi +fi + +%preun +# unload knem +/sbin/modprobe -r knem > /dev/null 2>&1 +# RH +/bin/rm -f /etc/sysconfig/modules/knem.modules +# SLES +if (grep -qw knem /etc/sysconfig/kernel 2>/dev/null); then + sed -i -e 's/ knem//g' /etc/sysconfig/kernel 2>/dev/null +fi + +%if "%{KMP}" != "1" +%post -n %{non_kmp_pname} +depmod %{KVERSION} -a + +%postun -n %{non_kmp_pname} +if [ $1 = 0 ]; then # 1 : Erase, not upgrade + depmod %{KVERSION} -a +fi +%endif # end KMP=1 + +%files +%defattr(-, root, root) +%license source/COPYING source/COPYING.BSD-3 source/COPYING.GPL-2 +/opt/knem-%{version} +/usr/lib64/pkgconfig/knem.pc + +%config(noreplace) +/etc/udev/rules.d/10-knem.rules + + +%if "%{KMP}" != "1" +%files -n %{non_kmp_pname} +%license source/COPYING source/COPYING.BSD-3 source/COPYING.GPL-2 +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%if %{IS_RHEL_VENDOR} +%if ! 0%{?fedora} +%config(noreplace) %{_sysconfdir}/depmod.d/%{_name}.conf +%endif +%endif +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Mon Mar 17 2014 Alaa Hleihel +- Use one spec for KMP and non-KMP OS's. +* Thu Apr 18 2013 Alaa Hleihel +- Added KMP support diff --git a/SPECS/mft_kernel/mft_kernel.signatures.json b/SPECS/mft_kernel/mft_kernel.signatures.json new file mode 100644 index 00000000000..71b70dfe5ed --- /dev/null +++ b/SPECS/mft_kernel/mft_kernel.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "kernel-mft-4.30.0.tgz": "9f882bd84a3345c1270e0d05233df66bffc5cb506484916bb15c80da50f41fe6" + } +} \ No newline at end of file diff --git a/SPECS/mft_kernel/mft_kernel.spec b/SPECS/mft_kernel/mft_kernel.spec new file mode 100644 index 00000000000..28a344ba27a --- /dev/null +++ b/SPECS/mft_kernel/mft_kernel.spec @@ -0,0 +1,234 @@ + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take cpu arch from uname -m +%global _cpu_arch %(uname -m) +%global docdir /etc/mft +%global mlxfwreset_ko_path %{docdir}/mlxfwreset/ + + +# take kernel version or default to uname -r +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +%if "%{KMP}" == "1" +%global _name kernel-mft-mlnx +%else +%global _name kernel-mft +%endif + +%{!?version: %global version 4.30.0} +%{!?_release: %global _release 1} +%global _kmp_rel %{_release}%{?_kmp_build_num}%{?_dist} + +Name: kernel-mft +Summary: %{name} Kernel Module for the %{KVERSION} kernel +Version: 4.30.0 +Release: 1%{?dist} +License: Dual BSD/GPLv2 +Group: System Environment/Kernel +BuildRoot: /var/tmp/%{name}-%{version}-build +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/kernel-mft-4.30.0.tgz#/kernel-mft-%{version}.tgz +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + + +%description +mft kernel module(s) + +%global debug_package %{nil} + +%global IS_RHEL_VENDOR "%{_vendor}" == "redhat" || "%{_vendor}" == "bclinux" || "%{_vendor}" == "openEuler" + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -C %{1} M=$PWD kernelrelease | grep -v make | tail -1) +BuildRequires: %kernel_module_package_buildreqs +# prep file list for kmp rpm +%(cat > %{_builddir}/kmp.files << EOF +%defattr(644,root,root,755) +/lib/modules/%2-%1 +%if %{IS_RHEL_VENDOR} +%config(noreplace) %{_sysconfdir}/depmod.d/kernel-mft-*.conf +%endif +EOF) +%{kernel_module_package -f %{_builddir}/kmp.files -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +%description +This package provides a %{name} kernel module for kernel. + +%if "%{KMP}" == "1" +%package utils +Summary: KO utils for MFT +Group: System Environment/Kernel +Vendor: Microsoft Corporation +%description utils +mft utils kernel module(s) +%endif +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + $RPM_BUILD_DIR/kernel-mft-%{version}/source/tools/sign-modules $RPM_BUILD_ROOT/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts + +%if %{IS_RHEL_VENDOR} +%global __find_requires %{nil} +%endif + +# set modules dir +%if %{IS_RHEL_VENDOR} +%if 0%{?fedora} +%global install_mod_dir updates +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates +%endif + +%{!?install_mod_dir: %global install_mod_dir updates} + +%prep +%setup -n kernel-mft-%{version} +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +rm -rf $RPM_BUILD_ROOT +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +for flavor in %{flavors_to_build}; do + rm -rf obj/$flavor + cp -a source obj/$flavor + cd $PWD/obj/$flavor + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + make KPVER=$KVERSION + cd - +done + +%install +export INSTALL_MOD_PATH=$RPM_BUILD_ROOT +export INSTALL_MOD_DIR=%{install_mod_dir} +mkdir -p %{install_mod_dir} +for flavor in %{flavors_to_build}; do + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + install -d $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir} + cp $PWD/obj/$flavor/mst_backward_compatibility/mst_pci/mst_pci.ko $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir} + cp $PWD/obj/$flavor/mst_backward_compatibility/mst_pciconf/mst_pciconf.ko $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir} + %if "%{_cpu_arch}" == "ppc64" || "%{_cpu_arch}" == "ppc64le" + install -d $INSTALL_MOD_PATH/%{mlxfwreset_ko_path}/$KVERSION + install $PWD/obj/$flavor/mst_backward_compatibility/mst_ppc/mst_ppc_pci_reset.ko $INSTALL_MOD_PATH/%{mlxfwreset_ko_path}/$KVERSION/ + %endif + %if "%{_cpu_arch}" == "aarch64" + cp $PWD/obj/$flavor/misc_drivers/bf3_livefish/bf3_livefish.ko $INSTALL_MOD_PATH/lib/modules/$KVERSION/%{install_mod_dir} + %endif +done + +%if %{IS_RHEL_VENDOR} +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} -type f -name \*.ko -exec %{__chmod} u+x \{\} \; + +%if ! 0%{?fedora} +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko*' | grep -v "%{mlxfwreset_ko_path}" | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*%{name}} +mod_path=${mod_path/\/${ko_name}} +echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/%{name}-${mod_name}.conf +echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/%{name}-${mod_name}.conf +done +%endif +%else +find %{buildroot} -type f -name \*.ko -exec %{__strip} -p --strip-debug --discard-locals -R .comment -R .note \{\} \; +%endif + +%post +/sbin/depmod %{KVERSION} + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/COPYING +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%if %{IS_RHEL_VENDOR} +%if ! 0%{?fedora} +%config(noreplace) %{_sysconfdir}/depmod.d/kernel-mft-*.conf +%endif +%endif +%endif +%if "%{_cpu_arch}" == "ppc64" || "%{_cpu_arch}" == "ppc64le" +%if "%{KMP}" == "1" +%files utils +%defattr(-,root,root,-) +%license source/COPYING +%endif +%{docdir} +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/mlnx-ethtool/mlnx-ethtool.signatures.json b/SPECS/mlnx-ethtool/mlnx-ethtool.signatures.json new file mode 100644 index 00000000000..eda2cb8014a --- /dev/null +++ b/SPECS/mlnx-ethtool/mlnx-ethtool.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "mlnx-ethtool-6.9.tar.gz": "927834fe390dda259484cebfa033c962eadcc293422817aa442847ce167b919a" + } +} \ No newline at end of file diff --git a/SPECS/mlnx-ethtool/mlnx-ethtool.spec b/SPECS/mlnx-ethtool/mlnx-ethtool.spec new file mode 100644 index 00000000000..d65e26b5cd9 --- /dev/null +++ b/SPECS/mlnx-ethtool/mlnx-ethtool.spec @@ -0,0 +1,46 @@ +Name: mlnx-ethtool +Version: 6.9 +Release: 2%{?dist} +Group: Utilities +Summary: Settings tool for Ethernet and other network devices +License: GPLv2 +Vendor: Microsoft Corporation +Distribution: Azure Linux +URL: https://ftp.kernel.org/pub/software/network/ethtool/ +Buildroot: /var/tmp/%{name}-%{version}-build +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-ethtool-6.9.tar.gz#/%{name}-%{version}.tar.gz +ExclusiveArch: x86_64 + +BuildRequires: libmnl-devel + +%description +This utility allows querying and changing settings such as speed, +port, auto-negotiation, PCI locations and checksum offload on many +network devices, especially Ethernet devices. + +%prep +%setup -q + + +%build +CFLAGS="${RPM_OPT_FLAGS}" ./configure --prefix=%{_prefix} --mandir=%{_mandir} +make + + +%install +make install DESTDIR=${RPM_BUILD_ROOT} + + +%files +%defattr(-,root,root) +%{_sbindir}/ethtool +%{_mandir}/man8/ethtool.8* +%{_datadir}/bash-completion/completions/ethtool +%doc AUTHORS NEWS README +%license COPYING + + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/mlnx-iproute2/mlnx-iproute2.signatures.json b/SPECS/mlnx-iproute2/mlnx-iproute2.signatures.json new file mode 100644 index 00000000000..7a3487a6604 --- /dev/null +++ b/SPECS/mlnx-iproute2/mlnx-iproute2.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "mlnx-iproute2-6.10.0.tar.gz": "f8333badc404ccd6e79eb29d2761a4f53db122eb86ac4193c65fdb10d6f916f1" + } +} \ No newline at end of file diff --git a/SPECS/mlnx-iproute2/mlnx-iproute2.spec b/SPECS/mlnx-iproute2/mlnx-iproute2.spec new file mode 100644 index 00000000000..a205128e61b --- /dev/null +++ b/SPECS/mlnx-iproute2/mlnx-iproute2.spec @@ -0,0 +1,116 @@ +# This is a version of iproute2.spec sent to upstream with mlnx customization. + +# On e.g. Mariner, __make is set to {_bindir}/make which gets broken when +# you modify _prefix that modifies _bindir. Use 'global' to save this with +# the original value. This works with a simple macro such as __make but +# should probably not ne used with more complex ones: +%global __make %{__make} + +%global _prefix /opt/mellanox/iproute2 +%global _exec_prefix %{_prefix} +%global package_name mlnx-iproute2 +%global package_version 6.10.0 +%global configs_under_prefix 1 +%global netns_package_name netns-mlnx + +# Specify mandatory rpmbuild parameter package_version, like: +# rpmbuild -d'package_version 5.1.0' +# +# Other optional parameters are: package_name, netns_package_name +# and configs_under_prefix. + +%global debug_package %{nil} + +%{!?package_name: %global package_name iproute2} +%{!?netns_package_name: %global netns_package_name netns} + +%if 0%{?configs_under_prefix:1} + %global config_dir %{_prefix}%{_sysconfdir} + %global netns_config_dir %{config_dir}/netns +%else + %global config_dir %{_sysconfdir}/mlnx-iproute2 + %global netns_config_dir %{_sysconfdir}/%{netns_package_name} +%endif + +Summary: Advanced IP routing and network device configuration tools +Name: mlnx-iproute2 +Version: 6.10.0 +Release: 2%{?dist} +License: GPLv2 +Group: Networking/Admin +Vendor: Microsoft Corporation +Distribution: Azure Linux +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-iproute2-6.10.0.tar.gz#/%{name}-%{version}.tar.gz +URL: http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 +ExclusiveArch: x86_64 + +BuildRequires: bison +BuildRequires: flex +BuildRoot: /var/tmp/%{name}-%{version}-build + +%description +The iproute package contains networking utilities (like ip and tc) +designed to use the advanced networking capabilities of the Linux kernel. + +%package -n libnetlink-devel +Summary: Library for the netlink interface +Group: Development/Libraries + +%description -n libnetlink-devel +This library provides an interface for kernel-user netlink interface. + +# The dependency on libdb-5.3 comes from arpd. This tool is not really +# used in our package. In some platforms libdb-5.3 is not available by +# default even though we include the devel package on the build system. +# But users don't really need arpd from this package. +%global __requires_exclude_from sbin/arpd + +%prep +%setup -q + +%build +./configure +%{__make} \ + CC="%{__cc}" \ + PREFIX="%{_prefix}" \ + LIBDIR="%{_libdir}" \ + SBINDIR="%{_sbindir}" \ + CONF_ETC_DIR="%{config_dir}/etc" \ + CONF_USR_DIR="%{config_dir}/usr" \ + NETNS_RUN_DIR="%{_var}/run/%{netns_package_name}" \ + NETNS_ETC_DIR="%{netns_config_dir}" \ + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_includedir},%{_libdir},%{_sbindir}} + +%{__make} install \ + DESTDIR=$RPM_BUILD_ROOT \ + PREFIX="%{_prefix}" \ + LIBDIR="%{_libdir}" \ + SBINDIR="%{_sbindir}" \ + CONF_ETC_DIR="%{config_dir}/etc" \ + CONF_USR_DIR="%{config_dir}/usr" \ + NETNS_RUN_DIR="%{_var}/run/%{netns_package_name}" \ + NETNS_ETC_DIR="%{netns_config_subdir}" \ + +install -m 644 lib/libnetlink.a $RPM_BUILD_ROOT%{_libdir} +install -m 644 include/libnetlink.h $RPM_BUILD_ROOT%{_includedir} + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%license COPYING +%doc README README.devel +%config(noreplace) %verify(not md5 mtime size) %{config_dir}/* +%{_prefix}/include/* +%{_prefix}/share/* +%{_libdir}/* +%{_sbindir}/* + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.signatures.json b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.signatures.json new file mode 100644 index 00000000000..c4fe2cb95e4 --- /dev/null +++ b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "mlnx-nfsrdma-24.10.tgz": "d2e66a9b6d6e40e621728ea25fa10b4b9ccd5ea3952fdaf2546e9420687a648c" + } +} \ No newline at end of file diff --git a/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec new file mode 100644 index 00000000000..0b6f23d1e1c --- /dev/null +++ b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec @@ -0,0 +1,253 @@ +# +# Copyright (c) 2016 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +%{!?_name: %define _name mlnx-nfsrdma} +%{!?_version: %define _version 24.10} +%{!?_release: %define _release OFED.24.10.0.6.7.1} + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take kernel version or default to uname -r +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# define release version +%{!?src_release: %global src_release %{_release}_%{krelver}} +%if "%{KMP}" != "1" +%global _release1 %{src_release} +%else +%global _release1 %{_release} +%endif +%global _kmp_rel %{_release1}%{?_kmp_build_num}%{?_dist} + +Summary: %{_name} Driver +Name: mlnx-nfsrdma +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-nfsrdma-24.10.tgz#/%{_name}-%{_version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: mlnx-ofa_kernel-devel = %{_version} +BuildRequires: mlnx-ofa_kernel-source = %{_version} + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +%{name} kernel modules + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +BuildRequires: %kernel_module_package_buildreqs +%(mkdir -p %{buildroot}) +%(echo '%defattr (-,root,root)' > %{buildroot}/file_list) +%(echo '/lib/modules/%2-%1' >> %{buildroot}/file_list) +%(echo '%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*-%1.conf' >> %{buildroot}/file_list) +%{kernel_module_package -f %{buildroot}/file_list -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/%{name}-%{version}/source/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if 0%{?anolis} == 8 +%global __find_requires %{nil} +%endif + +# set modules dir +%if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") +%if 0%{?fedora} +%global install_mod_dir updates/%{name} +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates/%{name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates/%{name}} + +%prep +%setup +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %{flavors_to_build}; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + export LIB_MOD_DIR=/lib/modules/$KVER/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -r source obj/$flavor + cd $PWD/obj/$flavor + make + cd - +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export PREFIX=%{_prefix} +for flavor in %flavors_to_build; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + cd $PWD/obj/$flavor + make install KERNELRELEASE=$KVER + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*\/%{name}} +mod_path=${mod_path/\/${ko_name}} +%if "%{_vendor}" == "suse" + for flavor in %{flavors_to_build}; do + if [[ $module =~ $flavor ]] || [ "X%{KMP}" != "X1" ];then + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}-$flavor.conf + fi + done +%else + %if 0%{?fedora} + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %else + %if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") + echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif + echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif +%endif +done + + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Mon Aug 15 2016 Alaa Hleihel +- Initial packaging diff --git a/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.signatures.json b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.signatures.json new file mode 100644 index 00000000000..1bc6c70886f --- /dev/null +++ b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "mlnx-ofa_kernel-24.10.tgz": "571588614a9f10409078703252357f69760577909191a3089b95258185b49d2f" + } +} \ No newline at end of file diff --git a/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec new file mode 100644 index 00000000000..5fec8715dbc --- /dev/null +++ b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec @@ -0,0 +1,766 @@ +# +# Copyright (c) 2012 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +%global WITH_SYSTEMD %(if ( test -d "%{_unitdir}" > /dev/null); then echo -n '1'; else echo -n '0'; fi) + +%{!?configure_options: %global configure_options --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-mlx5-mod --with-mlxfw-mod --with-ipoib-mod} + +%global MEMTRACK %(if ( echo %{configure_options} | grep "with-memtrack" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) +%global MADEYE %(if ( echo %{configure_options} | grep "with-madeye-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) + +%global WINDRIVER %(if (grep -qiE "Wind River" /etc/issue /etc/*release* 2>/dev/null); then echo -n '1'; else echo -n '0'; fi) +%global POWERKVM %(if (grep -qiE "powerkvm" /etc/issue /etc/*release* 2>/dev/null); then echo -n '1'; else echo -n '0'; fi) +%global BLUENIX %(if (grep -qiE "Bluenix" /etc/issue /etc/*release* 2>/dev/null); then echo -n '1'; else echo -n '0'; fi) +%global XENSERVER65 %(if (grep -qiE "XenServer.*6\.5" /etc/issue /etc/*release* 2>/dev/null); then echo -n '1'; else echo -n '0'; fi) + +%global IS_RHEL_VENDOR "%{_vendor}" == "redhat" || ("%{_vendor}" == "bclinux") || ("%{_vendor}" == "openEuler") +%global KMOD_PREAMBLE "%{_vendor}" != "openEuler" + +# MarinerOS 1.0 sets -fPIE in the hardening cflags +# (in the gcc specs file). +# This seems to break only this package and not other kernel packages. +%if "%{_vendor}" == "mariner" || "%{_vendor}" == "azl" || "%{_vendor}" == "azurelinux" || (0%{?rhel} >= 10) +%global _hardened_cflags %{nil} +%endif + +# WA: Centos Stream 10 kernel doesn't support PIC mode, so we removed the following flags +%if (0%{?rhel} >= 10) +%global _hardening_gcc_ldflags %{nil} +%global _gcc_lto_cflags %{nil} +%endif + +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# Select packages to build + +# Kernel module packages to be included into kernel-ib +%global build_ipoib %(if ( echo %{configure_options} | grep "with-ipoib-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) +%global build_oiscsi %(if ( echo %{configure_options} | grep "with-iscsi-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) +%global build_mlx5 %(if ( echo %{configure_options} | grep "with-mlx5-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) + +%{!?LIB_MOD_DIR: %global LIB_MOD_DIR /lib/modules/%{KVERSION}/updates} + +%{!?IB_CONF_DIR: %global IB_CONF_DIR /etc/infiniband} + +%{!?KERNEL_SOURCES: %global KERNEL_SOURCES /lib/modules/%{KVERSION}/source} + +%{!?_name: %global _name mlnx-ofa_kernel} +%{!?_version: %global _version 24.10} +%{!?_release: %global _release OFED.24.10.0.7.0.1} +%global _kmp_rel %{_release}%{?_kmp_build_num}%{?_dist} + +%global utils_pname %{_name} +%global devel_pname %{_name}-devel +%global non_kmp_pname %{_name}-modules + +Summary: Infiniband HCA Driver +Name: mlnx-ofa_kernel +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com/ +Group: System Environment/Base +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-ofa_kernel-24.10.tgz#/%{_name}-%{_version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +Obsoletes: kernel-ib +Obsoletes: mlnx-en +Obsoletes: mlnx_en +Obsoletes: mlnx-en-utils +Obsoletes: kmod-mlnx-en +Obsoletes: mlnx-en-kmp-default +Obsoletes: mlnx-en-kmp-xen +Obsoletes: mlnx-en-kmp-trace +Obsoletes: mlnx-en-doc +Obsoletes: mlnx-en-debuginfo +Obsoletes: mlnx-en-sources + +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: kmod +BuildRequires: libstdc++-devel +BuildRequires: libunwind-devel +BuildRequires: pkgconfig + +Requires: kernel = %{target_kernel_version_full} +Requires: kmod +Requires: libstdc++ +Requires: libunwind + +Requires: mlnx-tools >= 5.2.0 +Requires: coreutils +Requires: pciutils +Requires: grep +Requires: procps +Requires: module-init-tools +Requires: lsof +Requires: ofed-scripts + + +%if "%{KMP}" == "1" +BuildRequires: %kernel_module_package_buildreqs +BuildRequires: /usr/bin/perl +%endif +%description +InfiniBand "verbs", Access Layer and ULPs. +Utilities rpm. +The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-24.10-0.7.0.tgz + + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +# prep file list for kmp rpm +%(cat > %{_builddir}/kmp.files << EOF +%defattr(644,root,root,755) +/lib/modules/%2-%1 +%if %{IS_RHEL_VENDOR} +%config(noreplace) %{_sysconfdir}/depmod.d/zz01-%{_name}-*.conf +%endif +EOF) +%(echo "Obsoletes: kmod-mlnx-rdma-rxe, mlnx-rdma-rxe-kmp" >> %{_builddir}/preamble) +%if %KMOD_PREAMBLE +%kernel_module_package -f %{_builddir}/kmp.files -r %{_kmp_rel} -p %{_builddir}/preamble +%else +%kernel_module_package -f %{_builddir}/kmp.files -r %{_kmp_rel} +%endif +%else # not KMP +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%package -n %{non_kmp_pname} +Obsoletes: kernel-ib +Obsoletes: mlnx-en +Obsoletes: mlnx_en +Obsoletes: mlnx-en-utils +Obsoletes: kmod-mlnx-en +Obsoletes: mlnx-en-kmp-default +Obsoletes: mlnx-en-kmp-xen +Obsoletes: mlnx-en-kmp-trace +Obsoletes: mlnx-en-doc +Obsoletes: mlnx-en-debuginfo +Obsoletes: mlnx-en-sources +Obsoletes: mlnx-rdma-rxe +Version: %{_version} +Release: 1%{?dist} +Summary: Infiniband Driver and ULPs kernel modules +Group: System Environment/Libraries +%description -n %{non_kmp_pname} +Core, HW and ULPs kernel modules +Non-KMP format kernel modules rpm. +The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-24.10-0.7.0.tgz +%endif #end if "%{KMP}" == "1" + +%package -n %{devel_pname} +Version: %{_version} +# build KMP rpms? +Release: 1%{?dist} +Obsoletes: kernel-ib-devel +Obsoletes: kernel-ib +Obsoletes: mlnx-en +Obsoletes: mlnx_en +Obsoletes: mlnx-en-utils +Obsoletes: kmod-mlnx-en +Obsoletes: mlnx-en-kmp-default +Obsoletes: mlnx-en-kmp-xen +Obsoletes: mlnx-en-kmp-trace +Obsoletes: mlnx-en-doc +Obsoletes: mlnx-en-debuginfo +Obsoletes: mlnx-en-sources +Requires: coreutils +Requires: pciutils +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives +Summary: Infiniband Driver and ULPs kernel modules sources +Group: System Environment/Libraries +%description -n %{devel_pname} +Core, HW and ULPs kernel modules sources +The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-24.10-0.7.0.tgz + +%package source +Summary: Source of the MLNX_OFED main kernel driver +Group: System Environment/Libraries +%description source +Source of the mlnx-ofa_kernel modules. + +You should probably only install this package if you want to view the +sourecs of driver. Use the -devel package if you want to build other +drivers against it. + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/$NAME-$VERSION/source/ofed_scripts/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{_name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if %{IS_RHEL_VENDOR} +%global __find_requires %{nil} +%endif + +# set modules dir +%if %{IS_RHEL_VENDOR} +%if 0%{?fedora} +%global install_mod_dir updates +%else +%global install_mod_dir extra/%{_name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates +%endif + +%{!?install_mod_dir: %global install_mod_dir updates} + +%prep +%setup -n %{_name}-%{_version} +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +EXTRA_CFLAGS='-DVERSION=\"%version\"' +%if (0%{?rhel} >= 10) +EXTRA_CFLAGS+=' -fno-exceptions' +%endif +export EXTRA_CFLAGS +export CFLAGS="$CFLAGS -fno-exceptions " +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %flavors_to_build; do + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + export LIB_MOD_DIR=/lib/modules/$KVERSION/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -a source obj/$flavor + cd $PWD/obj/$flavor + find compat -type f -exec touch -t 200012201010 '{}' \; || true + ./configure --build-dummy-mods --prefix=%{_prefix} --kernel-version $KVERSION --kernel-sources $KSRC --modules-dir $LIB_MOD_DIR $CONF_OPTIONS %{?_smp_mflags} + make %{?_smp_mflags} kernel + make build_py_scripts + cd - +done + +%install +export RECORD_PY_FILES=1 +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export NAME=%{name} +export VERSION=%{version} +export PREFIX=%{_prefix} +mkdir -p %{buildroot}/%{_prefix}/src/ofa_kernel/%{_arch} +for flavor in %flavors_to_build; do + export KSRC=%{kernel_source $flavor} + export KVERSION=%{kernel_release $KSRC} + cd $PWD/obj/$flavor + make install_modules KERNELRELEASE=$KVERSION + # install script and configuration files + make install_scripts + mkdir -p %{_builddir}/src/$NAME/$flavor + cp -ar include/ %{_builddir}/src/$NAME/$flavor + cp -ar config* %{_builddir}/src/$NAME/$flavor + cp -ar compat* %{_builddir}/src/$NAME/$flavor + cp -ar ofed_scripts %{_builddir}/src/$NAME/$flavor + + modsyms=`find . -name Module.symvers -o -name Modules.symvers` + if [ -n "$modsyms" ]; then + for modsym in $modsyms + do + cat $modsym >> %{_builddir}/src/$NAME/$flavor/Module.symvers + done + else + ./ofed_scripts/create_Module.symvers.sh + cp ./Module.symvers %{_builddir}/src/$NAME/$flavor/Module.symvers + fi + cp -a %{_builddir}/src/$NAME/$flavor %{buildroot}/%{_prefix}/src/ofa_kernel/%{_arch}/$KVERSION + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%if %{IS_RHEL_VENDOR} +%if ! 0%{?fedora} +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*%{_name}} +mod_path=${mod_path/\/${ko_name}} +echo "override ${mod_name} * weak-updates/%{_name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz01-%{_name}-${mod_name}.conf +echo "override ${mod_name} * extra/%{_name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz01-%{_name}-${mod_name}.conf +done +%endif +%endif + +# copy sources +mkdir -p %{buildroot}/%{_prefix}/src/ofa_kernel-%{version} +cp -a %{_builddir}/%{name}-%{version}/source %{buildroot}/%{_prefix}/src/ofa_kernel-%{version}/source +ln -s ofa_kernel-%{version}/source %{buildroot}/%{_prefix}/src/mlnx-ofa_kernel-%{version} +# Fix path of BACKPORT_INCLUDES +sed -i -e "s@=-I.*backport_includes@=-I/usr/src/ofa_kernel-$VERSION/backport_includes@" %{buildroot}/%{_prefix}/src/ofa_kernel/%{_arch}/%{KVERSION}/configure.mk.kernel || true +rm -rf %{_builddir}/src + +INFO=${RPM_BUILD_ROOT}/etc/infiniband/info +/bin/rm -f ${INFO} +mkdir -p ${RPM_BUILD_ROOT}/etc/infiniband +touch ${INFO} + +cat >> ${INFO} << EOFINFO +#!/bin/bash + +echo prefix=%{_prefix} +echo Kernel=%{KVERSION} +echo +echo "Configure options: %{configure_options}" +echo +EOFINFO + +chmod +x ${INFO} > /dev/null 2>&1 + +%if "%{WITH_SYSTEMD}" == "1" +install -d %{buildroot}%{_unitdir} +install -d %{buildroot}/etc/systemd/system +install -m 0644 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/openibd.service %{buildroot}%{_unitdir} +install -m 0644 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/mlnx_interface_mgr\@.service %{buildroot}/etc/systemd/system +%endif + +install -d %{buildroot}/bin +install -m 0755 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/mlnx_conf_mgr.sh %{buildroot}/bin/ +%if "%{WINDRIVER}" == "0" && "%{BLUENIX}" == "0" +install -m 0755 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/mlnx_interface_mgr.sh %{buildroot}/bin/ +%else +# Wind River and Mellanox Bluenix are rpm based, however, interfaces management is done in Debian style +install -d %{buildroot}/usr/sbin +install -m 0755 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/mlnx_interface_mgr_deb.sh %{buildroot}/bin/mlnx_interface_mgr.sh +install -m 0755 %{_builddir}/$NAME-$VERSION/source/ofed_scripts/net-interfaces %{buildroot}/usr/sbin +%endif + +# Install ibroute utilities +# TBD: move these utilities into standalone package +install -d %{buildroot}%{_sbindir} + +# update /etc/init.d/openibd header +is_euler=`grep 'NAME=".*Euler' /etc/os-release 2>/dev/null || :` +if [[ -f /etc/redhat-release || -f /etc/rocks-release || "$is_euler" != '' ]]; then +perl -i -ne 'if (m@^#!/bin/bash@) { + print q@#!/bin/bash +# +# Bring up/down openib +# +# chkconfig: 2345 05 95 +# description: Activates/Deactivates InfiniBand Driver to \ +# start at boot time. +# +### BEGIN INIT INFO +# Provides: openibd +### END INIT INFO +@; + } else { + print; + }' %{buildroot}/etc/init.d/openibd +fi + +if grep -qwE 'suse|SLES' /etc/os-release 2>/dev/null; then + local_fs='$local_fs' + openiscsi='' + %if %{build_oiscsi} + openiscsi='open-iscsi' + %endif + perl -i -ne "if (m@^#!/bin/bash@) { + print q@#!/bin/bash +### BEGIN INIT INFO +# Provides: openibd +# Required-Start: $local_fs +# Required-Stop: opensmd $openiscsi +# Default-Start: 2 3 5 +# Default-Stop: 0 1 2 6 +# Description: Activates/Deactivates InfiniBand Driver to \ +# start at boot time. +### END INIT INFO +@; + } else { + print; + }" %{buildroot}/etc/init.d/openibd +fi + +%if %{build_ipoib} +case $(uname -m) in + i[3-6]86) + # Decrease send/receive queue sizes on 32-bit arcitecture + echo "options ib_ipoib send_queue_size=64 recv_queue_size=128" >> %{buildroot}/etc/modprobe.d/ib_ipoib.conf + ;; +esac +%endif + +%clean +rm -rf %{buildroot} + + +%if "%{KMP}" != "1" +%post -n %{non_kmp_pname} +/sbin/depmod %{KVERSION} +# W/A for OEL6.7/7.x inbox modules get locked in memory +# in dmesg we get: Module mlx4_core locked in memory until next boot +if (grep -qiE "Oracle.*(6.([7-9]|10)| 7)" /etc/issue /etc/*release* 2>/dev/null); then + /sbin/dracut --force +fi + +%postun -n %{non_kmp_pname} +if [ $1 = 0 ]; then # 1 : Erase, not upgrade + /sbin/depmod %{KVERSION} + # W/A for OEL6.7/7.x inbox modules get locked in memory + # in dmesg we get: Module mlx4_core locked in memory until next boot + if (grep -qiE "Oracle.*(6.([7-9]|10)| 7)" /etc/issue /etc/*release* 2>/dev/null); then + /sbin/dracut --force + fi +fi +%endif # end KMP=1 + +%post -n %{utils_pname} +if [ $1 -eq 1 ]; then # 1 : This package is being installed +############################################################################################################# +is_euler=`grep 'NAME=".*Euler' /etc/os-release 2>/dev/null || :` +is_kylin=`grep 'NAME=".*Kylin' /etc/os-release 2>/dev/null || :` +if [[ -f /etc/redhat-release || -f /etc/rocks-release || -f /etc/UnionTech-release || -f /etc/ctyunos-release || "$is_euler" != '' || "$is_kylin" != '' ]]; then + /sbin/chkconfig openibd off >/dev/null 2>&1 || true + /usr/bin/systemctl disable openibd >/dev/null 2>&1 || true + /sbin/chkconfig --del openibd >/dev/null 2>&1 || true + +%if "%{WITH_SYSTEMD}" != "1" + /sbin/chkconfig --add openibd >/dev/null 2>&1 || true + /sbin/chkconfig openibd on >/dev/null 2>&1 || true +%else + /usr/bin/systemctl enable openibd >/dev/null 2>&1 || true +%endif +fi + +if grep -qwE 'suse|SLES' /etc/os-release 2>/dev/null; then + /sbin/chkconfig openibd off >/dev/null 2>&1 || true + /usr/bin/systemctl disable openibd >/dev/null 2>&1 || true + /sbin/insserv -r openibd >/dev/null 2>&1 || true + +%if "%{WITH_SYSTEMD}" != "1" + /sbin/insserv openibd >/dev/null 2>&1 || true + /sbin/chkconfig openibd on >/dev/null 2>&1 || true +%else + /usr/bin/systemctl enable openibd >/dev/null 2>&1 || true +%endif +fi + +%if "%{WINDRIVER}" == "1" || "%{BLUENIX}" == "1" +/usr/sbin/update-rc.d openibd defaults || true +%endif + +%if "%{POWERKVM}" == "1" +/usr/bin/systemctl disable openibd >/dev/null 2>&1 || true +/usr/bin/systemctl enable openibd >/dev/null 2>&1 || true +%endif + +%if "%{WITH_SYSTEMD}" == "1" +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +cat /proc/sys/kernel/random/boot_id 2>/dev/null | sed -e 's/-//g' > /var/run/openibd.bootid || true +test -s /var/run/openibd.bootid || echo manual > /var/run/openibd.bootid || true +%endif + +# Comment core modules loading hack +if [ -e /etc/modprobe.conf.dist ]; then + sed -i -r -e 's/^(\s*install ib_core.*)/#MLX# \1/' /etc/modprobe.conf.dist + sed -i -r -e 's/^(\s*alias ib.*)/#MLX# \1/' /etc/modprobe.conf.dist +fi + +%if %{build_ipoib} +if [ -e /etc/modprobe.d/ipv6 ]; then + sed -i -r -e 's/^(\s*install ipv6.*)/#MLX# \1/' /etc/modprobe.d/ipv6 +fi +%endif + +# Update limits.conf (but not for Containers) +if [ ! -e "/.dockerenv" ] && ! (grep -q docker /proc/self/cgroup 2>/dev/null); then + if [ -e /etc/security/limits.conf ]; then + LIMITS_UPDATED=0 + if ! (grep -qE "soft.*memlock" /etc/security/limits.conf 2>/dev/null); then + echo "* soft memlock unlimited" >> /etc/security/limits.conf + LIMITS_UPDATED=1 + fi + if ! (grep -qE "hard.*memlock" /etc/security/limits.conf 2>/dev/null); then + echo "* hard memlock unlimited" >> /etc/security/limits.conf + LIMITS_UPDATED=1 + fi + if [ $LIMITS_UPDATED -eq 1 ]; then + echo "Configured /etc/security/limits.conf" + fi + fi +fi + +# Make IPoIB interfaces be unmanaged on XenServer +if (grep -qi xenserver /etc/issue /etc/*-release 2>/dev/null); then + IPOIB_PNUM=$(lspci -d 15b3: 2>/dev/null | wc -l 2>/dev/null) + IPOIB_PNUM=$(($IPOIB_PNUM * 2)) + for i in $(seq 1 $IPOIB_PNUM) + do + uuid=$(xe pif-list 2>/dev/null | grep -B2 ib${i} | grep uuid | cut -d : -f 2 | sed -e 's/ //g') + if [ "X${uuid}" != "X" ]; then + xe pif-forget uuid=${uuid} >/dev/null 2>&1 || true + fi + done +fi + +fi # 1 : closed +# END of post + +%preun -n %{utils_pname} +is_euler=`grep 'NAME=".*Euler' /etc/os-release 2>/dev/null || :` +is_kylin=`grep 'NAME=".*Kylin' /etc/os-release 2>/dev/null || :` +if [ $1 = 0 ]; then # 1 : Erase, not upgrade + if [[ -f /etc/redhat-release || -f /etc/rocks-release || -f /etc/UnionTech-release || "$is_euler" != '' || "$is_kylin" != '' ]]; then + /sbin/chkconfig openibd off >/dev/null 2>&1 || true + /usr/bin/systemctl disable openibd >/dev/null 2>&1 || true + /sbin/chkconfig --del openibd >/dev/null 2>&1 || true + fi + if grep -qwE 'suse|SLES' /etc/os-release 2>/dev/null; then + /sbin/chkconfig openibd off >/dev/null 2>&1 || true + /usr/bin/systemctl disable openibd >/dev/null 2>&1 || true + /sbin/insserv -r openibd >/dev/null 2>&1 || true + fi + if [ -f /etc/debian_version ]; then + if ! ( /usr/sbin/update-rc.d openibd remove > /dev/null 2>&1 ); then + true + fi + fi +%if "%{WINDRIVER}" == "1" || "%{BLUENIX}" == "1" +/usr/sbin/update-rc.d -f openibd remove || true +%endif + +%if "%{POWERKVM}" == "1" +/usr/bin/systemctl disable openibd >/dev/null 2>&1 || true +%endif +fi + +%postun -n %{utils_pname} +%if "%{WITH_SYSTEMD}" == "1" +/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : +%endif + +# Uncomment core modules loading hack +if [ -e /etc/modprobe.conf.dist ]; then + sed -i -r -e 's/^#MLX# (.*)/\1/' /etc/modprobe.conf.dist +fi + +%if %{build_ipoib} +if [ -e /etc/modprobe.d/ipv6 ]; then + sed -i -r -e 's/^#MLX# (.*)/\1/' /etc/modprobe.d/ipv6 +fi +%endif + +#end of post uninstall + +%post -n %{devel_pname} +if [ -d "%{_prefix}/src/ofa_kernel/default" -a $1 -gt 1 ]; then + touch %{_prefix}/src/ofa_kernel/%{_arch}/%{KVERSION}.missing_link + # Will run update-alternatives in posttrans +else + update-alternatives --install \ + %{_prefix}/src/ofa_kernel/default \ + ofa_kernel_headers \ + %{_prefix}/src/ofa_kernel/%{_arch}/%{KVERSION} \ + 20 +fi + +%posttrans -n %{devel_pname} +symlink="%{_prefix}/src/ofa_kernel/default" +# Should only be used for upgrading from pre-5.5-0.2.6.0 packages: +# At the time of upgrade there was still a directory, so postpone +# generating the alternative symlink to that point: +for flag_file in %{_prefix}/src/ofa_kernel/*/*.missing_link; do + dir=${flag_file%.missing_link} + if [ ! -d "$dir" ]; then + # Directory is no longer there. Nothing left to handle + rm -f "$flag_file" + continue + fi + if [ -d "$symlink" ]; then + echo "%{devel_pname}-%{version}: $symlink is still a non-empty directory. Deleting in preparation for a symlink." + rm -rf "$symlink" + fi + update-alternatives --install \ + "$symlink" \ + ofa_kernel_headers \ + "$dir" \ + 20 + rm -f "$flag_file" +done + +%postun -n %{devel_pname} +update-alternatives --remove \ + ofa_kernel_headers \ + %{_prefix}/src/ofa_kernel/%{_arch}/%{KVERSION} \ + +%files -n %{utils_pname} +%defattr(-,root,root,-) +%license source/debian/copyright +%doc source/ofed_scripts/82-net-setup-link.rules source/ofed_scripts/vf-net-link-name.sh +%if "%{KMP}" == "1" +%if %{IS_RHEL_VENDOR} +%endif # end rh +%endif # end KMP=1 +%dir /etc/infiniband +%config(noreplace) /etc/infiniband/openib.conf +%config(noreplace) /etc/infiniband/mlx5.conf +/etc/infiniband/info +/etc/init.d/openibd +%if "%{WITH_SYSTEMD}" == "1" +%{_unitdir}/openibd.service +/etc/systemd/system/mlnx_interface_mgr@.service +%endif +/lib/udev/sf-rep-netdev-rename +/lib/udev/auxdev-sf-netdev-rename +/usr/sbin/setup_mr_cache.sh +%_datadir/mlnx_ofed/mlnx_bf_assign_ct_cores.sh +%config(noreplace) /etc/modprobe.d/mlnx.conf +%config(noreplace) /etc/modprobe.d/mlnx-bf.conf +%{_sbindir}/* +/lib/udev/rules.d/83-mlnx-sf-name.rules +/lib/udev/rules.d/90-ib.rules +/bin/mlnx_interface_mgr.sh +/bin/mlnx_conf_mgr.sh +%if "%{WINDRIVER}" == "1" || "%{BLUENIX}" == "1" +/usr/sbin/net-interfaces +%endif +%if %{build_ipoib} +%config(noreplace) /etc/modprobe.d/ib_ipoib.conf +%endif +%if %{build_mlx5} +%{_sbindir}/ibdev2netdev +%endif + +%if "%{KMP}" != "1" +%files -n %{non_kmp_pname} +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%if %{IS_RHEL_VENDOR} +%if ! 0%{?fedora} +%config(noreplace) %{_sysconfdir}/depmod.d/zz01-%{_name}-*.conf +%endif +%endif +%endif + +%files -n %{devel_pname} +%defattr(-,root,root,-) +%license source/debian/copyright +%{_prefix}/src/ofa_kernel/%{_arch}/[0-9]* + +%files source +%defattr(-,root,root,-) +%license source/debian/copyright +%{_prefix}/src/ofa_kernel-%version/source +%{_prefix}/src/mlnx-ofa_kernel-%version + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Thu Jun 18 2015 Alaa Hleihel +- Renamed kernel-ib package to mlnx-ofa_kernel-modules +* Thu Apr 10 2014 Alaa Hleihel +- Add QoS utils. +* Thu Mar 13 2014 Alaa Hleihel +- Use one spec for KMP and non-KMP OS's. +* Tue Apr 24 2012 Vladimir Sokolovsky +- Remove FC support +* Tue Mar 6 2012 Vladimir Sokolovsky +- Add weak updates support +* Wed Jul 6 2011 Vladimir Sokolovsky +- Add KMP support +* Mon Oct 4 2010 Vladimir Sokolovsky +- Add mlx4_fc and mlx4_vnic support +* Mon May 10 2010 Vladimir Sokolovsky +- Support install macro that removes RPM_BUILD_ROOT +* Thu Feb 4 2010 Vladimir Sokolovsky +- Added ibdev2netdev script +* Mon Sep 8 2008 Vladimir Sokolovsky +- Added nfsrdma support +* Wed Aug 13 2008 Vladimir Sokolovsky +- Added mlx4_en support +* Tue Aug 21 2007 Vladimir Sokolovsky +- Added %build macro +* Sun Jan 28 2007 Vladimir Sokolovsky +- Created spec file for kernel-ib diff --git a/SPECS/mlx-steering-dump/mlx-steering-dump.signatures.json b/SPECS/mlx-steering-dump/mlx-steering-dump.signatures.json new file mode 100644 index 00000000000..831b41489af --- /dev/null +++ b/SPECS/mlx-steering-dump/mlx-steering-dump.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "mlx-steering-dump-1.0.0.tar.gz": "d0c5aa459fc248246d07a439a5ce0fa297c05be98654981d718ab74196d0334c" + } +} \ No newline at end of file diff --git a/SPECS/mlx-steering-dump/mlx-steering-dump.spec b/SPECS/mlx-steering-dump/mlx-steering-dump.spec new file mode 100644 index 00000000000..d5d0c266669 --- /dev/null +++ b/SPECS/mlx-steering-dump/mlx-steering-dump.spec @@ -0,0 +1,80 @@ +# +# Copyright (c) 2017 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +Summary: Mellanox steering dump parser +Name: mlx-steering-dump +Version: 1.0.0 +Release: 1%{?dist} +License: GPLv2 +Url: https://github.com/Mellanox/mlx_steering_dump +Group: Applications/System +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlx-steering-dump-1.0.0.tar.gz#/%{name}-%{version}.tar.gz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 +Requires: python3 + +%description +This is Mellanox SW steering parser and triggering for dump files in CSV format. +The supported dump files are those generated by ConnectX5 and ConnectX6DX. + +%prep +%setup -q %{name}-%{version} + +%install +install -d %{buildroot}/usr/share/mlx-steering-dump/sws/src/parsers +install -d %{buildroot}/usr/share/mlx-steering-dump/hws/src +install -d %{buildroot}/usr/bin/ + +install -m 755 sws/mlx_steering_dump_parser.py %{buildroot}/usr/share/mlx-steering-dump/sws +install -m 644 sws/src/*.py %{buildroot}/usr/share/mlx-steering-dump/sws/src/ +install -m 644 sws/src/parsers/*.py %{buildroot}/usr/share/mlx-steering-dump/sws/src/parsers/ +install -m 755 sws/mlx_steering_dump %{buildroot}/usr/bin/ + +install -m 755 hws/mlx_hw_steering_parser.py %{buildroot}/usr/share/mlx-steering-dump/hws +install -m 644 hws/src/*.py %{buildroot}/usr/share/mlx-steering-dump/hws/src/ +install -m 755 hws/mlx_hw_steering_dump %{buildroot}/usr/bin/ + +%clean + +%preun + + +%files +%license debian/copyright +/usr/share/mlx-steering-dump/* +/usr/bin/mlx_steering_dump +/usr/bin/mlx_hw_steering_dump + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Wed Oct 6 2021 Mohammad Kabat +- Add rpm support diff --git a/SPECS/multiperf/multiperf.signatures.json b/SPECS/multiperf/multiperf.signatures.json new file mode 100644 index 00000000000..29bc7c149fe --- /dev/null +++ b/SPECS/multiperf/multiperf.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "multiperf-3.0.tar.gz": "b9c43501a200c20ee5af7614da324372cd9f1fbd2fc3d7dfd775a9164bf3a68e" + } +} \ No newline at end of file diff --git a/SPECS/multiperf/multiperf.spec b/SPECS/multiperf/multiperf.spec new file mode 100644 index 00000000000..a589ef6089c --- /dev/null +++ b/SPECS/multiperf/multiperf.spec @@ -0,0 +1,44 @@ +Name: multiperf +Summary: IB Performance tests +Version: 3.0 +Release: 1%{?dist} +License: BSD 3-Clause, GPL v2 or later +Vendor: Microsoft Corporation +Distribution: Azure Linux +Group: Productivity/Networking/Diagnostic +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/multiperf-3.0.tar.gz#/%{name}-%{version}.tar.gz +Url: "" +BuildRoot: /var/tmp/%{name}-%{version}-build +ExclusiveArch: x86_64 + +BuildRequires: libibverbs-devel + +%description +gen3 uverbs microbenchmarks + +%prep +%setup -q + +%build +%configure +%{__make} + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=%{buildroot} install + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-, root, root) +%doc README +%license COPYING +%_bindir/* + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Sun Feb 08 2015 - gilr@mellanox.com +- Initial Package, Version 3.0 diff --git a/SPECS/rshim/rshim.signatures.json b/SPECS/rshim/rshim.signatures.json new file mode 100644 index 00000000000..89bdfe8312e --- /dev/null +++ b/SPECS/rshim/rshim.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "rshim-2.1.5.tar.gz": "a7776c66696dd7d1ff2983cfa536673f987394083f9e4c8434fb95f5bea15e8b" + } +} \ No newline at end of file diff --git a/SPECS/rshim/rshim.spec b/SPECS/rshim/rshim.spec new file mode 100644 index 00000000000..a954745b57e --- /dev/null +++ b/SPECS/rshim/rshim.spec @@ -0,0 +1,415 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2019 Mellanox Technologies. All Rights Reserved. +# + +Name: rshim +Version: 2.1.5 +Release: 1%{?dist} +Summary: User-space driver for Mellanox BlueField SoC +License: GPLv2 +Vendor: Microsoft Corporation +Distribution: Azure Linux +URL: https://github.com/mellanox/rshim-user-space +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/rshim-2.1.5.tar.gz#/%{name}-%{version}.tar.gz +ExclusiveArch: x86_64 +BuildRequires: gcc, autoconf, automake, pkgconfig, make +BuildRequires: pkgconfig(libpci), pkgconfig(libusb-1.0) fuse3-devel fuse3-libs + +%global with_systemd %(if (test -d "%{_unitdir}" > /dev/null); then echo -n '1'; else echo -n '0'; fi) +%global debug_package %{nil} + +%description +This is the user-space driver to access the BlueField SoC via the rshim +interface. It provides ways to push boot stream, debug the target or login +via the virtual console or network interface. + +%prep +rm -fr %{name}-%{version} +mkdir %{name}-%{version} +tar -axf %{SOURCE0} -C %{name}-%{version} --strip-components 1 +%setup -q -D -T + +%build +./bootstrap.sh +%configure +%if %{?make_build:1}%{!?make_build:0} +%make_build +%else +make +%endif + +%install +%undefine _missing_build_ids_terminate_build +%makeinstall -C src INSTALL_DIR="%{buildroot}%{_sbindir}" +%if "%{with_systemd}" == "1" + %{__install} -d %{buildroot}%{_unitdir} + %{__install} -m 0644 rshim.service %{buildroot}%{_unitdir} +%endif +%{__install} -d %{buildroot}%{_mandir}/man8 +%{__install} -m 0644 man/rshim.8 %{buildroot}%{_mandir}/man8 +%{__install} -m 0644 man/bfb-install.8 %{buildroot}%{_mandir}/man8 +%{__install} -m 0644 man/bf-reg.8 %{buildroot}%{_mandir}/man8 +%{__install} -d %{buildroot}%{_sysconfdir} +%{__install} -m 0644 etc/rshim.conf %{buildroot}%{_sysconfdir} +%{__install} -m 0755 scripts/bfb-install %{buildroot}%{_sbindir} +%{__install} -m 0755 scripts/bf-reg %{buildroot}%{_sbindir} + +%pre +%if "%{with_systemd}" == "1" + if systemctl is-active --quiet rshim ; then + systemctl stop rshim + fi +%endif + +%post +%if "%{with_systemd}" == "1" + echo "Installation complete. To enable and start the rshim service, run:" + echo " systemctl daemon-reload" + echo " systemctl enable rshim" + echo " systemctl start rshim" +%endif + +%preun +if [ "$1" = "0" ]; then +%if "%{with_systemd}" == "1" + if systemctl is-active --quiet rshim ; then + systemctl stop rshim + fi +%else + killall -9 rshim +%endif +fi + +%files +%{!?_licensedir:%global license %%doc} +%license LICENSE +%defattr(-,root,root,-) +%doc README.md +%config(noreplace) %{_sysconfdir}/rshim.conf +%if "%{with_systemd}" == "1" + %{_unitdir}/rshim.service +%endif +%{_sbindir}/rshim +%{_sbindir}/bfb-install +%{_sbindir}/bf-reg +%{_mandir}/man8/rshim.8.gz +%{_mandir}/man8/bfb-install.8.gz +%{_mandir}/man8/bf-reg.8.gz + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified + +* Mon Oct 14 2024 Penghe Geng - 2.1.5 +- Revert "Abort rshim rpm installation if no cuse.ko found" + +* Thu Oct 10 2024 Penghe Geng - 2.1.4 +- Make rshim run in single instance +- Abort rshim rpm installation if no cuse.ko found +- Increase default boot timeout to 300s +- bfb-install: Fix premature bfb-install exit when rebooting BMC + +* Tue Sep 10 2024 Penghe Geng - 2.1.3 +- Reduce the access_check() wait time + +* Fri Aug 30 2024 Liming Sun - 2.1.2 +- Improve access_check() to reduce likelihood of race condition +- Revert the 2-second delay + +* Thu Aug 15 2024 Liming Sun - 2.1.1 +- Add support for command mode +- Fix some coding style issues +- Cleanup rshim debug/syslog messages + +* Thu Aug 08 2024 Liming Sun - 2.0.41 +- Add a small delay to access the boot file +- Fix a valgrind warning + +* Mon Aug 05 2024 Penghe Geng - 2.0.40 +- Fix rshim deb package for DOCA build on Ubuntu + +* Fri Aug 02 2024 Penghe Geng - 2.0.39 +- Fix rshim masking issue on Ubuntu +- bfb-install: Fix NIC_MODE installation for BlueField-2 +- pcie: Add VFIO support for BlueField-3 + +* Fri Jul 26 2024 Penghe Geng - 2.0.38 +- Make sending the initial force command a one-time event +- bfb-install: adjust the log file to be per rshim + +* Tue Jul 16 2024 Penghe Geng - 2.0.37 +- add missing --force in help menu + +* Mon Jul 15 2024 Penghe Geng - 2.0.36 +- Allow /dev/rshim devfs creation only with --force option enabled +- bfb-install: fix for NIC mode +- bfb-install: Exit with error if running remote bfb-install without + password-less root SSH +- Fix compiling issue for FreeBSD + +* Fri Jul 05 2024 Penghe Geng - 2.0.35 +- Add ownership transfer feature (primarily via "FORCE_CMD") +- bfb-install: enhancement for NIC mode + +* Tue Jun 11 2024 Liming Sun - 2.0.34 +- bfb-install: Enable CLEAR_ON_READ +- bfb-install: add cleanup code for runtime update + +* Thu Jun 06 2024 Liming Sun - 2.0.33 +- misc: add 'CLEAR_ON_READ' command +- bfb-install: add runtime image support + +* Tue Jun 04 2024 Liming Sun - 2.0.32 +- bf3/pcie_lf: Fix the 4B access via MSN GW + +* Fri May 17 2024 Liming Sun - 2.0.31 +- bf3/pcie_lf: support register read/write via /dev/rshim0/rshim +- Only poll/check locked mode for PCIe backend +- Remove workaround support for BF2 A0 chip + +* Mon May 13 2024 Liming Sun - 2.0.30 +- pcie: Adjust default reset delay to 3 seconds +- Avoid polling blocked status during reset +- Disable installation of rshim on host by default + +* Tue Apr 30 2024 Liming Sun - 2.0.29 +- Some robust fixes for rshim over USB +- Lower log level for register read errors as it's normal during reset + +* Thu Apr 25 2024 Penghe Geng - 2.0.28 +- Secure NIC Mode: Prevent running simultaneously on both bmc and host + +* Fri Apr 12 2024 Penghe Geng - 2.0.27 +- bfb-install: Fix incorrect IP address resolution for multi-hop routing + +* Fri Apr 12 2024 Liming Sun - 2.0.26 +- rshim_pcie: set PCIE bit in scratchpad6 +- Revert semantics of --reverse-nc + +* Fri Apr 05 2024 Liming Sun - 2.0.25 +- Avoid a race of rshim ownership during bfb push + +* Thu Apr 04 2024 Liming Sun - 2.0.24 +- DROP_MODE: sync-up the Rx FIFO when clearing DROP_MODE + +* Tue Apr 02 2024 Liming Sun - 2.0.23 +- Add some robust fixes for the DROP_MODE + +* Fri Mar 22 2024 Penghe Geng - 2.0.22 +- bfb-install: add support for remote rshim update; add speed optimizations + +* Tue Mar 19 2024 Penghe Geng - 2.0.21 +- rshim_pci: output Secure NIC mode status in misc file + +* Fri Feb 16 2024 Liming Sun - 2.0.20 +- rshim_pci: adjust delay time for nic_fw reset +- bfb-install: Exit on "Linux up" + +* Wed Jan 10 2024 Liming Sun - 2.0.19 +- Fix incorrect console message drop +- Allow runtime debug code for DK cards + +* Thu Dec 14 2023 Liming Sun - 2.0.18 +- Clear scratchpad1 register when setting drop_mode + +* Wed Nov 22 2023 Liming Sun - 2.0.17 +- bfb-install: Fix duplicate output + +* Thu Nov 16 2023 Liming Sun - 2.0.16 +- Remove fuse build dependency + +* Tue Nov 14 2023 Liming Sun - 2.0.15 +- Add BFB completion condition for enhanced NIC mode + +* Fri Nov 10 2023 Liming Sun - 2.0.14 +- Fix 9f19cfb4a75687ae + +* Wed Nov 08 2023 Liming Sun - 2.0.13 +- Several robust fixes +- Add fuse3 support + +* Mon Oct 23 2023 Liming Sun - 2.0.12 +- BF3: Add UPTIME display in seconds + +* Tue Sep 26 2023 Liming Sun - 2.0.11 +- Remove version 0 support for NIC FW_RESET +- bfb-install: Return failure code + +* Mon Sep 18 2023 Liming Sun - 2.0.10 +- Fix interrupt handling for NIC FW_RESET + +* Sat Jun 17 2023 Liming Sun - 2.0.9 +- rshim/usb/bf3: fix timeout logic + +* Tue May 16 2023 Liming Sun - 2.0.8 +- Fix the fall-back logic of direct-mapping + +* Thu Mar 30 2023 Liming Sun - 2.0.7 +- Avoid opening /dev/uio multiple times +- Update common files to dual-license +- Adjust rshim reset delay + +* Sun Nov 20 2022 Liming Sun - 2.0.6-19 +- BF3: Support 4B access for PCIe + +* Tue Oct 25 2022 Liming Sun - 2.0.6-18 +- pcie: fix initialization issue when setting DROP_MODE in rshim.conf + +* Thu Oct 20 2022 Liming Sun - 2.0.6-17 +- pcie: Avoid using cached pci_dev +- rshim_fuse: display misc file even when rshim is not accessible + +* Thu Oct 06 2022 Liming Sun - 2.0.6-16 +- pcie: Support mixed vfio and direct mapping mode + +* Thu Sep 29 2022 Liming Sun - 2.0.6-15 +- Add dependency of libfuse2 for .deb +- rshim-pcie: add a new bad-access code +- Fix a potential NULL pointer access during USB disconnect +- Adjust default boot timeout to 150s + +* Tue Aug 16 2022 Liming Sun - 2.0.6-14 +- Avoid potential race when stopping the rshim process +- Add configuration option to enable/disable PCIe VFIO/UIO +- Fix warnings for compiling on 32-bit BMC +- Mustang rshim usb supports for 4B and 8B transactions + +* Sun Jul 17 2022 Liming Sun - 2.0.6-13 +- BF3: Support 32-bit CR-space access via USB +- Avoid kernel-modules-extra dependency on ctyunos + +* Thu Jun 16 2022 Liming Sun - 2.0.6-12 +- Optimize the rshim_work_fd +- Detect new USB/rshim hot plugin + +* Mon May 16 2022 Liming Sun - 2.0.6-11 +- Avoid kernel crash when unbind rshim from uio + +* Mon May 02 2022 Liming Sun - 2.0.6-10 +- Fix several compiling issues for FreeBSD + +* Thu Apr 28 2022 Liming Sun - 2.0.6-9 +- Use per-device memory-map mode + +* Mon Apr 18 2022 Liming Sun - 2.0.6-8 +- Add interrupt polling for direct mmap() mode +- Fix several coverity warnings + +* Thu Apr 07 2022 Liming Sun - 2.0.6-7 +- Keep intr_fd during rshim_pcie disable/enable +- Mustang: Add support for rshim over pcie and pcie_lf + +* Wed Mar 30 2022 Liming Sun - 2.0.6-6 +- Clear scratchpad1 to 0 before PCI resources are unmapped +- Fallback to UIO if VFIO failed + +* Fri Mar 18 2022 Liming Sun - 2.0.6-5 +- PCIe: Add UIO and IRQ support +- PCIe: Remove 32-bit support + +* Mon Feb 28 2022 Liming Sun - 2.0.6-4 +- VFIO support +- Fix potential race in rshim_work_signal + +* Mon Nov 29 2021 Liming Sun - 2.0.6-3 +- Adjust the defaul value of usb_reset_delay to 5 +- Add a delay after USB probe +- Make the reset delay configurable + +* Wed Nov 03 2021 Liming Sun - 2.0.6-2 +- bfb-install: Handle new indications for installation completion +- Clean up some un-needed register definition +- Fix MTU of the tmfifo_net0 interface on FreeBSD +- Several fixes to prevent hypervisor crash +- Refine some BF-2 Rev0 workaround condition + +* Wed May 12 2021 Liming Sun - 2.0.6-1 +- Disable the background timer if no rshim devices +- Setting default path for rshim config file + +* Wed Mar 10 2021 Liming Sun - 2.0.5-10 +- PCIe hotplug support +- Reduce CPU utilization when there is no rshim device + +* Wed Jan 27 2021 Liming Sun - 2.0.5-9 +- Fix potential tmfifo data loss +- Add workaround checking for Bluefield-2 REV-0 +- Fix network traffic stop issue when Tx buffer full + +* Fri Dec 11 2020 Liming Sun - 2.0.5-8 +- Don't allow any register access when DROP_MODE is set +- Avoid potential race in rshim_fifo_read + +* Wed Dec 09 2020 Liming Sun - 2.0.5-7 +- Fix potential dead-lock when calling rshim_access_check +- Ignore rshim access checking when global drop mode is enabled +- Fix some secure boot related issue + +* Wed Dec 02 2020 Liming Sun - 2.0.5-6 +- Add some default configuration in rshim.conf +- Change the debug level of Rshim byte access widget timeout +- Add bfb-install script + +* Thu Oct 29 2020 Liming Sun - 2.0.5-5 +- Check rshim accessibility when re-enabling it +- Enable console output during boot stream pushing +- Add some delay for the pcie_lf probe +- Auto-start rshim service after installation + +* Fri Sep 25 2020 Liming Sun - 2.0.5-4 +- Some robust fixes for USB rshim +- Fix a typo in pcie mmap + +* Mon Aug 17 2020 Liming Sun - 2.0.5-3 +- Fix several coverity warnings +- Add workaround to boot Viper rev A0 in LiveFish mode +- Display/configure OPN string for BlueField-2 + +* Fri Jul 24 2020 Liming Sun - 2.0.5-2 +- Add configuration file support +- misc: Display device version / revision ID +- Add service file for FreeBSD + +* Tue Jun 16 2020 Liming Sun - 2.0.5-1 +- Improve response time to ctrl+c for boot stream +- Fix a rpmbuild issue when make_build is not defined +- Add DROP_MODE configuration in misc file +- Avoid reading the fifo if still booting +- Fix configure issue for FreeBSD 12.1-RELEASE +- Add domain id to the DEV_NAME in the misc file +- Fix the debian copyright format +- Enhance rshim_pcie_enable function + +* Tue Apr 21 2020 Liming Sun - 2.0.4-1 +- Update .spec file according to review comments +- Fix the 'KillMode' in rshim.service +- Support process termination by SIGTERM +- Fix some compiling warnings and configure issue for FreeBSD +- Fix a read()/write() issue in rshim_pcie.c caused by optimization + +* Tue Apr 14 2020 Liming Sun - 2.0.3-1 +- Enable pci device during probing +- Map the pci resource0 file instead of /dev/mem +- Add copyright header in bootstrap.sh +- Add 'Requires' tag check in the rpm .spec for kernel-modules-extra +- Fix the 'rshim --version' output + +* Thu Apr 09 2020 Liming Sun - 2.0.2-1 +- Remove unnecessary dependency in .spec and use make_build +- Add package build for debian/ubuntu +- Fix some format in the man page +- Add check for syslog headers + +* Mon Mar 23 2020 Liming Sun - 2.0.1-1 +- Rename bfrshim to rshim +- Remove rshim.spec since it's auto-generated from rshim.spec.in +- Fix some warnings reported by coverity +- Add file rhel/rshim.spec.in for fedora +- Move rshim to sbin and move man page to man8 + +* Fri Mar 13 2020 Liming Sun - 2.0-1 +- Update the spec file according to fedora packaging-guidelines + +* Mon Dec 16 2019 Liming Sun +- Initial packaging diff --git a/SPECS/sockperf/sockperf.signatures.json b/SPECS/sockperf/sockperf.signatures.json new file mode 100644 index 00000000000..ed3db5a58ca --- /dev/null +++ b/SPECS/sockperf/sockperf.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "sockperf-3.10.tar.gz": "9e16b8e7774d62c03b51c6161fd4950c9b81080fa11c09d180a2630a533f31af" + } +} \ No newline at end of file diff --git a/SPECS/sockperf/sockperf.spec b/SPECS/sockperf/sockperf.spec new file mode 100644 index 00000000000..39c25b61cab --- /dev/null +++ b/SPECS/sockperf/sockperf.spec @@ -0,0 +1,88 @@ +%global version 3.10 +%global git_ref 5ebd327da983225321818c0355db922515e026bd +%global release 0.git5ebd327da983.2410068 +%global full_ver %{version}-%{release} + +Name: sockperf +Version: %{version} +Release: 1%{?dist} +Summary: Network benchmarking utility for testing latency and throughput +Group: Applications/Internet +License: BSD +Vendor: Microsoft Corporation +Distribution: Azure Linux +URL: https://github.com/mellanox/%{name} +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/sockperf-3.10.tar.gz#/%{name}-%{version}.tar.gz +ExclusiveArch: x86_64 + +BuildRequires: doxygen + +# can't use _pkgdocdir neither _docdir since it is not the same even where it is defined +%global _my_pkgdocdir /usr/share/doc/%{name} + + +%description +sockperf is a network benchmarking utility over socket API that was designed +for testing performance (latency and throughput) of high-performance systems +(it is also good for testing performance of regular networking systems as +well). It covers most of the socket API calls and options. + +Specifically, in addition to the standard throughput tests, sockperf, does the +following: + +* Measure latency of each discrete packet at sub-nanosecond resolution (using + TSC register that counts CPU ticks with very low overhead). + +* Does the above for both ping-pong mode and for latency under load mode. This + means that we measure latency of single packets even under load of millions + Packets Per Second (without waiting for reply of packet before sending + subsequent packet on time) + +* Enable spike analysis by providing histogram, with various percentiles of the + packets' latencies (for example: median, min, max, 99% percentile, and more), + (this is in addition to average and standard deviation). Also, sockperf + provides full log with all packet's tx/rx times that can be further analyzed + with external tools, such as MS-Excel or matplotlib - All this without + affecting the benchmark itself. + +* Support MANY optional settings for good coverage of socket API and network + configurations, while still keeping very low overhead in the fast path to + allow cleanest results. + +%prep +#%setup -q -n %{name}-%{git_ref} +%setup -q -n %{name}-%{version} + + +%build + +# Upstream wants and defaults to "-O3 --param inline-unit-growth=200". +# The Fedora optflags would override the former, so let's put it back. +# Avner wrote: +# > I reached that in the past after fine tuning the performance of sockperf. +# > We used sockperf for measuring latency of extremely fast networks. +# > Sometimes at sub microsecond resolution. This parameter helps us keeping +# > the entire fast path of the application as "one big function" with no +# > calls to other functions because it helps the compiler to respect all our +# > "inline" directive for other functions that we call (while still keeping +# > the "one big function" at a reasonable size for good performance at run +# > time). +export CXXFLAGS='%{optflags} -O3' +%configure --enable-doc +# --enable-tool --enable-test +make %{?_smp_mflags} + +%install +make install DESTDIR="%{?buildroot}" + +%files +%defattr(-,root,root,-) +%license copying +%{_bindir}/%{name} +%{_mandir}/man3/%{name}.3.* +%{_my_pkgdocdir} + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: BSD). +- License verified diff --git a/SPECS/srp/srp.signatures.json b/SPECS/srp/srp.signatures.json new file mode 100644 index 00000000000..226e0a58452 --- /dev/null +++ b/SPECS/srp/srp.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "srp-24.10.tgz": "bc4897a8317fe2204109cffe935ae64aeb7dd5f09df3ac9a0317ddfb6ed71286" + } +} diff --git a/SPECS/srp/srp.spec b/SPECS/srp/srp.spec new file mode 100644 index 00000000000..73472b521cb --- /dev/null +++ b/SPECS/srp/srp.spec @@ -0,0 +1,258 @@ +# +# Copyright (c) 2014 Mellanox Technologies. All rights reserved. +# +# This Software is licensed under one of the following licenses: +# +# 1) under the terms of the "Common Public License 1.0" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/cpl.php. +# +# 2) under the terms of the "The BSD License" a copy of which is +# available from the Open Source Initiative, see +# http://www.opensource.org/licenses/bsd-license.php. +# +# 3) under the terms of the "GNU General Public License (GPL) Version 2" a +# copy of which is available from the Open Source Initiative, see +# http://www.opensource.org/licenses/gpl-license.php. +# +# Licensee has the right to choose one of the above licenses. +# +# Redistributions of source code must retain the above copyright +# notice and one of the license notices. +# +# Redistributions in binary form must reproduce both the above copyright +# notice, one of the license notices in the documentation +# and/or other materials provided with the distribution. +# +# + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +%{!?_name: %define _name srp} +%{!?_version: %define _version 24.10} +%{!?_release: %define _release OFED.24.10.0.6.7.1} + +# KMP is disabled by default +%{!?KMP: %global KMP 0} + +# take kernel version or default to uname -r +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +# take path to kernel sources if provided, otherwise look in default location (for non KMP rpms). +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} + +# define release version +%{!?src_release: %global src_release %{_release}_%{krelver}} +%if "%{KMP}" != "1" +%global _release1 %{src_release} +%else +%global _release1 %{_release} +%endif +%global _kmp_rel %{_release1}%{?_kmp_build_num}%{?_dist} + +Summary: srp driver +Name: srp +Version: 24.10 +Release: 1%{?dist} +License: GPLv2 +Url: http://www.mellanox.com +Group: System Environment/Base +Source: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/srp-24.10.tgz#/%{name}-%{version}.tgz +BuildRoot: /var/tmp/%{name}-%{version}-build +Vendor: Microsoft Corporation +Distribution: Azure Linux +ExclusiveArch: x86_64 + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: libconfig-devel +BuildRequires: mlnx-ofa_kernel-devel = %{_version} +BuildRequires: mlnx-ofa_kernel-source = %{_version} + +Requires: mlnx-ofa_kernel = %{_version} +Requires: mlnx-ofa_kernel-modules = %{_version} +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + +%description +%{name} kernel modules + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -s -C %{1} kernelrelease M=$PWD) +BuildRequires: %kernel_module_package_buildreqs +%(mkdir -p %{buildroot}) +%(echo '%defattr (-,root,root)' > %{buildroot}/file_list) +%(echo '/lib/modules/%2-%1' >> %{buildroot}/file_list) +%(echo '%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*-%1.conf' >> %{buildroot}/file_list) +%{kernel_module_package -f %{buildroot}/file_list -x xen -r %{_kmp_rel} } +%else +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default +%endif + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + %{_builddir}/%{name}-%{version}/source/tools/sign-modules %{buildroot}/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +%global __debug_package 1 +%global buildsubdir %{name}-%{version} +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if "%{_vendor}" == "suse" +%debug_package +%endif + +%if 0%{?anolis} == 8 +%global __find_requires %{nil} +%endif + +# set modules dir +%if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") +%if 0%{?fedora} +%global install_mod_dir updates/%{name} +%else +%global install_mod_dir extra/%{name} +%endif +%endif + +%if "%{_vendor}" == "suse" +%global install_mod_dir updates/%{name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates/%{name}} + +%prep +%setup +set -- * +mkdir source +mv "$@" source/ +mkdir obj + +%build +export EXTRA_CFLAGS='-DVERSION=\"%version\"' +export INSTALL_MOD_DIR=%{install_mod_dir} +export CONF_OPTIONS="%{configure_options}" +for flavor in %{flavors_to_build}; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + export LIB_MOD_DIR=/lib/modules/$KVER/$INSTALL_MOD_DIR + rm -rf obj/$flavor + cp -r source obj/$flavor + cd $PWD/obj/$flavor + make + cd - +done + +%install +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=%{install_mod_dir} +export PREFIX=%{_prefix} +for flavor in %flavors_to_build; do + export K_BUILD=%{kernel_source $flavor} + export KVER=%{kernel_release $K_BUILD} + cd $PWD/obj/$flavor + make install KERNELRELEASE=$KVER + # Cleanup unnecessary kernel-generated module dependency files. + find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \; + cd - +done + +# Set the module(s) to be executable, so that they will be stripped when packaged. +find %{buildroot} \( -type f -name '*.ko' -o -name '*ko.gz' \) -exec %{__chmod} u+x \{\} \; + +%{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ +for module in `find %{buildroot}/ -name '*.ko' -o -name '*.ko.gz' | sort` +do +ko_name=${module##*/} +mod_name=${ko_name/.ko*/} +mod_path=${module/*\/%{name}} +mod_path=${mod_path/\/${ko_name}} +%if "%{_vendor}" == "suse" + for flavor in %{flavors_to_build}; do + if [[ $module =~ $flavor ]] || [ "X%{KMP}" != "X1" ];then + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}-$flavor.conf + fi + done +%else + %if 0%{?fedora} + echo "override ${mod_name} * updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %else + %if "%{_vendor}" == "redhat" || ("%{_vendor}" == "openEuler") + echo "override ${mod_name} * weak-updates/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif + echo "override ${mod_name} * extra/%{name}${mod_path}" >> %{buildroot}%{_sysconfdir}/depmod.d/zz02-%{name}-${mod_name}.conf + %endif +%endif +done + + +%clean +rm -rf %{buildroot} + +%post +if [ $1 -ge 1 ]; then # 1 : This package is being installed or reinstalled + /sbin/depmod %{KVERSION} +fi # 1 : closed +# add SRP_LOAD=no to openib.conf +if [ -f "/etc/infiniband/openib.conf" ] && ! (grep -q SRP_LOAD /etc/infiniband/openib.conf > /dev/null 2>&1) ; then + echo "# Load SRP module" >> /etc/infiniband/openib.conf + echo "SRP_LOAD=no" >> /etc/infiniband/openib.conf +fi +# END of post + +%postun +/sbin/depmod %{KVERSION} + +%if "%{KMP}" != "1" +%files +%defattr(-,root,root,-) +%license source/debian/copyright +/lib/modules/%{KVERSION}/%{install_mod_dir}/ +%config(noreplace) %{_sysconfdir}/depmod.d/zz02-%{name}-*.conf +%endif + +%changelog +* Thu Jan 9 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified +* Thu Feb 20 2014 Alaa Hleihel +- Initial packaging diff --git a/SPECS/xpmem-lib/xpmem-lib.signatures.json b/SPECS/xpmem-lib/xpmem-lib.signatures.json new file mode 100644 index 00000000000..c2fe3accad7 --- /dev/null +++ b/SPECS/xpmem-lib/xpmem-lib.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "xpmem-lib-2.7.tar.gz": "0f3666d0e0a32be87cf625bc56b18bf3384b0068d3914e16c3e8808311319281" + } +} \ No newline at end of file diff --git a/SPECS/xpmem-lib/xpmem-lib.spec b/SPECS/xpmem-lib/xpmem-lib.spec new file mode 100644 index 00000000000..ab962c9e8b2 --- /dev/null +++ b/SPECS/xpmem-lib/xpmem-lib.spec @@ -0,0 +1,88 @@ +#define buildforkernels newest +#define buildforkernels current +#define buildforkernels akmod + +Summary: XPMEM: Cross-partition memory +Name: xpmem-lib +Version: 2.7 +Release: 1%{?dist} +License: GPLv2 +Group: System Environment/Libraries +Vendor: Microsoft Corporation +Distribution: Azure Linux +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/xpmem-lib-2.7.tar.gz#/%{name}-%{version}.tar.gz +ExclusiveArch: x86_64 + +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool +BuildRequires: pkg-config + +%{!?make_build: %global make_build %{__make} %{?_smp_mflags} %{?mflags} V=1} +%{!?run_ldconfig: %global run_ldconfig %{?ldconfig}} + +%description +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +%package -n libxpmem +Summary: XPMEM: user-space library + +%description -n libxpmem +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package contains the user-space library needed to interface with XPMEM. + +%package -n libxpmem-devel +Summary: XPMEM: user-space library headers +Group: System Environment/Libraries +Requires: libxpmem%{?_isa} = %{version}-%{release} + +%description -n libxpmem-devel +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package contains the development headers for the user-space library +needed to interface with XPMEM. + +%prep +%setup + +%build +%configure --disable-kernel-module +%make_build + +%install +%make_install +rm -rf ${RPM_BUILD_ROOT}/etc # /etc/.version , udev rules + +%post -n libxpmem +%if 0%{?fedora} || 0%{?rhel} > 7 +# https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets +%else +%{run_ldconfig} +%endif + +%files -n libxpmem +%doc README AUTHORS +%license COPYING COPYING.LESSER +%{_libdir}/libxpmem.so.* + +%files -n libxpmem-devel +%{_includedir}/xpmem.h +%{_libdir}/libxpmem.a +%{_libdir}/libxpmem.la +%{_libdir}/libxpmem.so +%{_libdir}/pkgconfig/cray-xpmem.pc + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified diff --git a/SPECS/xpmem/xpmem.signatures.json b/SPECS/xpmem/xpmem.signatures.json new file mode 100644 index 00000000000..06aa62d82ff --- /dev/null +++ b/SPECS/xpmem/xpmem.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "xpmem-2.7.4.tar.gz": "499fcb6d9206e433c14250d91599636ae753eb6172bb8aea30ca0a4a2e351128" + } +} \ No newline at end of file diff --git a/SPECS/xpmem/xpmem.spec b/SPECS/xpmem/xpmem.spec new file mode 100644 index 00000000000..f505bd5b56b --- /dev/null +++ b/SPECS/xpmem/xpmem.spec @@ -0,0 +1,251 @@ +%{!?KMP: %global KMP 0} + +%if 0%{azl} +%global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) +%else +%global target_kernel_version_full f.a.k.e +%endif + +%global KVERSION %{target_kernel_version_full} +%global K_SRC /lib/modules/%{target_kernel_version_full}/build + +# %{!?KVERSION: %global KVERSION %(uname -r)} +%{!?KVERSION: %global KVERSION %{target_kernel_version_full}} +%global kernel_version %{KVERSION} +%global krelver %(echo -n %{KVERSION} | sed -e 's/-/_/g') +%{!?K_SRC: %global K_SRC /lib/modules/%{KVERSION}/build} +# A separate variable _release is required because of the odd way the +# script append_number_to_package_release.sh works: +%global _release 1.2410068 + +%bcond_with kernel_only + +%if %{with kernel_only} +%undefine _debugsource_packages +%global debug_package %{nil} +%global make_kernel_only SUBDIRS=kernel +%else +%global make_kernel_only %{nil} +%endif + +%define need_firmware_dir 0%{?euleros} > 0 + +%if "%_vendor" == "openEuler" +%global __find_requires %{nil} +%endif + +Summary: Cross-partition memory +Name: xpmem +Version: 2.7.4 +Release: 1%{?dist} +License: GPLv2 and LGPLv2.1 +Group: System Environment/Libraries +Vendor: Microsoft Corporation +Distribution: Azure Linux +BuildRequires: automake autoconf +URL: https://github.com/openucx/xpmem +Source0: https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/xpmem-2.7.4.tar.gz#/%{name}-%{version}.tar.gz +ExclusiveArch: x86_64 + +# name gets a different value in subpackages +%global _name %{name} +%global _kmp_rel %{release}%{?_kmp_build_num}%{?_dist} +# Required for e.g. SLES12: +%if %{undefined make_build} +%global make_build %{__make} %{?_smp_mflags} +%endif + +# Ugly workaround until anolis kmod package stops requiring +# 'kernel(' dependencies its kernel package does not provide. +# This uses the __find_provides from /usr/lib/rpm/redhat/macros +# rather than the one from /usr/lib/rpm/macros.d/macros.kmp +%if 0%{?anolis} > 0 +%{?filter_setup} +%endif + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kernel-devel = %{target_kernel_version_full} +BuildRequires: kernel-headers = %{target_kernel_version_full} +BuildRequires: binutils +BuildRequires: systemd +BuildRequires: kmod +BuildRequires: mlnx-ofa_kernel-devel +BuildRequires: mlnx-ofa_kernel-source + +Requires: mlnx-ofa_kernel +Requires: mlnx-ofa_kernel-modules +Requires: kernel = %{target_kernel_version_full} +Requires: kmod + + +%description +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package includes helper tools for the kernel module. + +%if ! %{with kernel_only} +%package -n libxpmem +Summary: XPMEM: Userspace library +%description -n libxpmem +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + + +%package -n libxpmem-devel +Summary: XPMEM: userspace library development headers +%description -n libxpmem-devel +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package includes development headers. +%endif + +# build KMP rpms? +%if "%{KMP}" == "1" +%global kernel_release() $(make -C %{1} M=$PWD kernelrelease | grep -v make) +BuildRequires: %kernel_module_package_buildreqs +%(cat > %{_builddir}/preamble << EOF +EOF) +%{kernel_module_package -r %{_kmp_rel} -p %{_builddir}/preamble} +%else # not KMP +%global kernel_source() %{K_SRC} +%global kernel_release() %{KVERSION} +%global flavors_to_build default + +%package modules +# %{nil}: to avoid having the script that build OFED-internal +# munge the release version here as well: +Release: 1%{?dist} +Summary: XPMEM: kernel modules +Group: System Environment/Libraries +%description modules +XPMEM is a Linux kernel module that enables a process to map the +memory of another process into its virtual address space. Source code +can be obtained by cloning the Git repository, original Mercurial +repository or by downloading a tarball from the link above. + +This package includes the kernel module (non KMP version). +%endif #end if "%{KMP}" == "1" + +# +# setup module sign scripts if paths to the keys are given +# +%global WITH_MOD_SIGN %(if ( test -f "$MODULE_SIGN_PRIV_KEY" && test -f "$MODULE_SIGN_PUB_KEY" ); \ + then \ + echo -n '1'; \ + else \ + echo -n '0'; fi) + +%if "%{WITH_MOD_SIGN}" == "1" +# call module sign script +%global __modsign_install_post \ + $RPM_BUILD_DIR/xpmem-%{version}/tools/sign-modules $RPM_BUILD_ROOT/lib/modules/ %{kernel_source default} || exit 1 \ +%{nil} + +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%define __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__modsign_install_post} \ +%{nil} + +%endif # end of setup module sign scripts +# + +%if 0%{?rhel} > 0 || 0%{?euleros} >= 2 +%global install_mod_dir extra/%{_name} +%endif + +%{!?install_mod_dir: %global install_mod_dir updates} + +%global moduledir /lib/modules/%{KVERSION}/%{install_mod_dir} + +%prep +%setup -q + +%build +env= +if [ "$CROSS_COMPILE" != '' ]; then + env="$env CC=${CROSS_COMPILE}gcc" +fi +./autogen.sh +%{configure} \ + --with-module-prefix= \ + --with-kerneldir=%{K_SRC} \ + $env \ + # +%{make_build} %{make_kernel_only} + +%install +%{make_install} moduledir=%{moduledir} %{make_kernel_only} +rm -rf $RPM_BUILD_ROOT/%{_libdir}/libxpmem.la +rm -rf $RPM_BUILD_ROOT/etc/init.d/xpmem +mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/modules-load.d +echo "xpmem" >$RPM_BUILD_ROOT%{_prefix}/lib/modules-load.d/xpmem.conf +%if %{with kernel_only} +rm -f $RPM_BUILD_ROOT/usr/lib*/pkgconfig/cray-xpmem.pc +%endif +%if %{need_firmware_dir} +mkdir -p $RPM_BUILD_ROOT/lib/firmware +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%if ! %{with kernel_only} +%post -n libxpmem -p /sbin/ldconfig +%postun -n libxpmem -p /sbin/ldconfig +%endif + +%postun +if [ "$1" = 0 ]; then + if lsmod | grep -qw xpmem; then + # If the module fails to unload, give an error, + # but don't fail uninstall. User should handle this + # Maybe the module is in use + rmmod xpmem || : + fi +fi + +%files +/lib/udev/rules.d/*-xpmem.rules +%{_prefix}/lib/modules-load.d/xpmem.conf +%doc README AUTHORS +%license COPYING COPYING.LESSER + +%if ! %{with kernel_only} +%files -n libxpmem +%{_libdir}/libxpmem.so.* +%license COPYING COPYING.LESSER + +%files -n libxpmem-devel +%{_prefix}/include/xpmem.h +%{_libdir}/libxpmem.a +%{_libdir}/libxpmem.so +%{_libdir}/pkgconfig/cray-xpmem.pc +%license COPYING COPYING.LESSER +%endif + +%if "%{KMP}" != "1" +%files modules +%{moduledir}/xpmem.ko +%license COPYING COPYING.LESSER +%endif + +%changelog +* Tue Dec 17 2024 Binu Jose Philip +- Initial Azure Linux import from NVIDIA (license: GPLv2) +- License verified + diff --git a/cgmanifest.json b/cgmanifest.json index 7a3d5ac2b0a..d7915aa840f 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -4005,6 +4005,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "fwctl", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/fwctl-24.10.tgz" + } + } + }, { "component": { "type": "other", @@ -6985,6 +6995,26 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "ibarr", + "version": "0.1.3", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ibarr-0.1.3.tar.gz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "ibsim", + "version": "0.12", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/ibsim-0.12.tar.gz" + } + } + }, { "component": { "type": "other", @@ -7516,6 +7546,26 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "iser", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/iser-24.10.tgz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "isert", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/isert-24.10.tgz" + } + } + }, { "component": { "type": "other", @@ -8276,6 +8326,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "knem", + "version": "1.1.4.90mlnx3", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/knem-1.1.4.90mlnx3.tar.gz" + } + } + }, { "component": { "type": "other", @@ -13036,6 +13096,56 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "kernel-mft", + "version": "4.30.0", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/kernel-mft-4.30.0.tgz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "mlnx-ethtool", + "version": "6.9", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-ethtool-6.9.tar.gz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "mlnx-iproute2", + "version": "6.10.0", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-iproute2-6.10.0.tar.gz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "mlnx-nfsrdma", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-nfsrdma-24.10.tgz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "mlnx-ofa_kernel", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlnx-ofa_kernel-24.10.tgz" + } + } + }, { "component": { "type": "other", @@ -13157,6 +13267,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "mlx-steering-dump", + "version": "1.0.0", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/mlx-steering-dump-1.0.0.tar.gz" + } + } + }, { "component": { "type": "other", @@ -13487,6 +13607,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "multiperf", + "version": "3.0", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/multiperf-3.0.tar.gz" + } + } + }, { "component": { "type": "other", @@ -25859,6 +25989,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "rshim", + "version": "2.1.5", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/rshim-2.1.5.tar.gz" + } + } + }, { "component": { "type": "other", @@ -27851,6 +27991,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "sockperf", + "version": "3.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/sockperf-3.10.tar.gz" + } + } + }, { "component": { "type": "other", @@ -28081,6 +28231,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "srp", + "version": "24.10", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/srp-24.10.tgz" + } + } + }, { "component": { "type": "other", @@ -30654,6 +30814,26 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "xpmem-lib", + "version": "2.7", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/xpmem-lib-2.7.tar.gz" + } + } + }, + { + "component": { + "type": "other", + "other": { + "name": "xpmem", + "version": "2.7.4", + "downloadUrl": "https://linux.mellanox.com/public/repo/mlnx_ofed/24.10-0.7.0.0/SRPMS/xpmem-2.7.4.tar.gz" + } + } + }, { "component": { "type": "other", diff --git a/toolkit/scripts/check_entangled_specs.py b/toolkit/scripts/check_entangled_specs.py index f2fd5cadb4b..33cb81406e1 100755 --- a/toolkit/scripts/check_entangled_specs.py +++ b/toolkit/scripts/check_entangled_specs.py @@ -46,7 +46,44 @@ "SPECS/shim/shim.spec", "SPECS/shim-unsigned-x64/shim-unsigned-x64.spec", "SPECS/shim-unsigned-aarch64/shim-unsigned-aarch64.spec" + ]), + frozenset([ + "SPECS-SIGNED/fwctl-signed/fwctl-signed.spec", + "SPECS/fwctl/fwctl.spec" + ]), + frozenset([ + "SPECS-SIGNED/iser-signed/iser-signed.spec", + "SPECS/iser/iser.spec" + ]), + frozenset([ + "SPECS-SIGNED/isert-signed/isert-signed.spec", + "SPECS/isert/isert.spec" + ]), + frozenset([ + "SPECS-SIGNED/knem-signed/knem-modules-signed.spec", + "SPECS/knem/knem.spec" + ]), + frozenset([ + "SPECS-SIGNED/mft_kernel-signed/mft_kernel-signed.spec", + "SPECS/mft_kernel/mft_kernel.spec" + ]), + frozenset([ + "SPECS-SIGNED/mlnx-nfsrdma-signed/mlnx-nfsrdma-signed.spec", + "SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec" + ]), + frozenset([ + "SPECS-SIGNED/mlnx-ofa_kernel-signed/mlnx-ofa_kernel-modules-signed.spec", + "SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec" + ]), + frozenset([ + "SPECS-SIGNED/srp-signed/srp-signed.spec", + "SPECS/srp/srp.spec" + ]), + frozenset([ + "SPECS-SIGNED/xpmem-signed/xpmem-modules-signed.spec", + "SPECS/xpmem/xpmem.spec" ]) + ] version_matching_groups = [ diff --git a/toolkit/scripts/spec_source_attributions.py b/toolkit/scripts/spec_source_attributions.py index 8d5b367547f..f04a6f531c0 100755 --- a/toolkit/scripts/spec_source_attributions.py +++ b/toolkit/scripts/spec_source_attributions.py @@ -16,7 +16,7 @@ "Fedora (Copyright Remi Collet)": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from Fedora \d+ \(license: CC-BY-SA\)(\.|\n|$)', "Fedora (ISC)": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from Fedora \d+ \(license: ISC\)(\.|\n|$)', "Magnus Edenhill Open Source": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from Magnus Edenhill Open Source \(license: BSD\)(\.|\n|$)', - "NVIDIA": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from NVIDIA \(license: (ASL 2\.0|GPLv2)\)(\.|\n|$)', + "NVIDIA": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from NVIDIA \(license: (ASL 2\.0|GPLv2|BSD)\)(\.|\n|$)', "OpenEuler": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from OpenEuler \(license: BSD\)(\.|\n|$)', "OpenMamba": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from OpenMamba(\.|\n|$)', "OpenSUSE": r'\n-\s+Initial (CBL-Mariner|Azure Linux) import from openSUSE \w+ \(license: same as "License" tag\)(\.|\n|$)', From 586efce0c6839d2139154989d6c2feec7a3bf535 Mon Sep 17 00:00:00 2001 From: Elaheh Dehghani <108492863+ellie-di@users.noreply.github.com> Date: Fri, 17 Jan 2025 11:04:54 -0800 Subject: [PATCH 033/163] Add logic to PR checker to detect kernel upgrade for OOT module specs (#11983) --- SPECS/fwctl/fwctl.spec | 2 + SPECS/iser/iser.spec | 2 + SPECS/isert/isert.spec | 2 + SPECS/knem/knem.spec | 2 + SPECS/mft_kernel/mft_kernel.spec | 1 + SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec | 2 + SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec | 5 ++- SPECS/srp/srp.spec | 2 + SPECS/xpmem/xpmem.spec | 3 +- toolkit/scripts/check_entangled_specs.py | 49 ++++++++++++++++++++-- 10 files changed, 64 insertions(+), 6 deletions(-) diff --git a/SPECS/fwctl/fwctl.spec b/SPECS/fwctl/fwctl.spec index 63217a5aef7..c079bcb9458 100644 --- a/SPECS/fwctl/fwctl.spec +++ b/SPECS/fwctl/fwctl.spec @@ -30,6 +30,8 @@ # SOFTWARE. # +%global last-known-kernel 6.6.64.2 + %{!?_name: %define _name fwctl} %{!?_version: %define _version 24.10} %{!?_release: %define _release OFED.24.10.0.6.7.1} diff --git a/SPECS/iser/iser.spec b/SPECS/iser/iser.spec index 989ab646028..f1bfeaba193 100644 --- a/SPECS/iser/iser.spec +++ b/SPECS/iser/iser.spec @@ -26,6 +26,8 @@ # # +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else diff --git a/SPECS/isert/isert.spec b/SPECS/isert/isert.spec index 7d909d47d90..bb145a141d8 100644 --- a/SPECS/isert/isert.spec +++ b/SPECS/isert/isert.spec @@ -26,6 +26,8 @@ # # +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else diff --git a/SPECS/knem/knem.spec b/SPECS/knem/knem.spec index bd33dacfc0d..6ef9e41d22f 100644 --- a/SPECS/knem/knem.spec +++ b/SPECS/knem/knem.spec @@ -26,6 +26,8 @@ # KMP is disabled by default %{!?KMP: %global KMP 0} +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else diff --git a/SPECS/mft_kernel/mft_kernel.spec b/SPECS/mft_kernel/mft_kernel.spec index 28a344ba27a..faaf2e0baaa 100644 --- a/SPECS/mft_kernel/mft_kernel.spec +++ b/SPECS/mft_kernel/mft_kernel.spec @@ -1,3 +1,4 @@ +%global last-known-kernel 6.6.64.2 %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) diff --git a/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec index 0b6f23d1e1c..a16a4d06c6f 100644 --- a/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec +++ b/SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec @@ -26,6 +26,8 @@ # # +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else diff --git a/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec index 5fec8715dbc..fa5b82eac1d 100644 --- a/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec +++ b/SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec @@ -25,6 +25,7 @@ # and/or other materials provided with the distribution. # # +%global last-known-kernel 6.6.64.2 %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) @@ -147,7 +148,7 @@ Requires: ofed-scripts BuildRequires: %kernel_module_package_buildreqs BuildRequires: /usr/bin/perl %endif -%description +%description InfiniBand "verbs", Access Layer and ULPs. Utilities rpm. The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-24.10-0.7.0.tgz @@ -324,7 +325,7 @@ export NAME=%{name} export VERSION=%{version} export PREFIX=%{_prefix} mkdir -p %{buildroot}/%{_prefix}/src/ofa_kernel/%{_arch} -for flavor in %flavors_to_build; do +for flavor in %flavors_to_build; do export KSRC=%{kernel_source $flavor} export KVERSION=%{kernel_release $KSRC} cd $PWD/obj/$flavor diff --git a/SPECS/srp/srp.spec b/SPECS/srp/srp.spec index 73472b521cb..dd59aa8a5cc 100644 --- a/SPECS/srp/srp.spec +++ b/SPECS/srp/srp.spec @@ -26,6 +26,8 @@ # # +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else diff --git a/SPECS/xpmem/xpmem.spec b/SPECS/xpmem/xpmem.spec index f505bd5b56b..6dbed23e477 100644 --- a/SPECS/xpmem/xpmem.spec +++ b/SPECS/xpmem/xpmem.spec @@ -1,5 +1,7 @@ %{!?KMP: %global KMP 0} +%global last-known-kernel 6.6.64.2 + %if 0%{azl} %global target_kernel_version_full %(/bin/rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel-headers) %else @@ -248,4 +250,3 @@ fi * Tue Dec 17 2024 Binu Jose Philip - Initial Azure Linux import from NVIDIA (license: GPLv2) - License verified - diff --git a/toolkit/scripts/check_entangled_specs.py b/toolkit/scripts/check_entangled_specs.py index 33cb81406e1..395cc5f2b9c 100755 --- a/toolkit/scripts/check_entangled_specs.py +++ b/toolkit/scripts/check_entangled_specs.py @@ -124,6 +124,21 @@ ]) ] +# OOT kernel module specs to match the `last-known-kernel` with kernel-headers `version` +oot_kmodule_matching_groups = [ + frozenset([ + "SPECS/fwctl/fwctl.spec", + "SPECS/iser/iser.spec", + "SPECS/isert/isert.spec", + "SPECS/knem/knem.spec", + "SPECS/mft_kernel/mft_kernel.spec", + "SPECS/mlnx-nfsrdma/mlnx-nfsrdma.spec", + "SPECS/mlnx-ofa_kernel/mlnx-ofa_kernel.spec", + "SPECS/srp/srp.spec", + "SPECS/xpmem/xpmem.spec" + ]) +] + def check_spec_tags(base_path: str, tags: List[str], groups: List[FrozenSet]) -> Set[FrozenSet]: """Returns spec sets which violate matching rules for given tags. """ err_groups = set() @@ -141,6 +156,21 @@ def check_spec_tags(base_path: str, tags: List[str], groups: List[FrozenSet]) -> return err_groups +def check_oot_kmodules(base_path: str, tag: str, groups: List[FrozenSet]) -> Set[FrozenSet]: + """Returns OOT kernel modules which violate matching with kernel-headers version. """ + err_groups = set() + + kernel_headers_spec = Spec.from_file(path.join(base_path, "SPECS/kernel-headers/kernel-headers.spec")) + kernel_headers_version = get_tag_value(kernel_headers_spec, 'version') + + for group in groups: + for spec_filename in group: + parsed_spec = Spec.from_file(path.join(base_path, spec_filename)) + tag_value = get_tag_value(parsed_spec, tag) + if tag_value != kernel_headers_version: + err_groups.add(spec_filename) + return err_groups + def check_mstflintver_match_groups(base_path: str) -> Set[FrozenSet]: return check_spec_tags(base_path, ['mstflintver'], mstflintver_matching_groups) @@ -153,16 +183,23 @@ def check_version_release_match_groups(base_path: str) -> Set[FrozenSet]: def check_version_match_groups(base_path: str) -> Set[FrozenSet]: return check_spec_tags(base_path, ['epoch', 'version'], version_matching_groups) +def check_oot_kmodule_matching_groups(base_path: str) -> Set[FrozenSet]: + return check_oot_kmodules(base_path, 'last-known-kernel', oot_kmodule_matching_groups) def check_matches(base_path: str): version_match_errors = check_version_match_groups(base_path) version_release_match_errors = check_version_release_match_groups(base_path) sdkver_match_errors = check_sdkver_match_groups(base_path) mstflintver_match_errors = check_mstflintver_match_groups(base_path) + oot_kmodule_match_errors = check_oot_kmodule_matching_groups(base_path) printer = pprint.PrettyPrinter() - if len(version_match_errors) or len(version_release_match_errors) or len(sdkver_match_errors) or len(mstflintver_match_errors): + if len(version_match_errors) or \ + len(version_release_match_errors) or \ + len(sdkver_match_errors) or \ + len(mstflintver_match_errors) or \ + len(oot_kmodule_match_errors): print('The current repository state violates a spec entanglement rule!') if len(version_match_errors): @@ -182,13 +219,19 @@ def check_matches(base_path: str): '\nPlease update the following sets of specs to have the same "sdkver" global variables:') for e in sdkver_match_errors: printer.pprint(e) - + if len(mstflintver_match_errors): print( '\nPlease update the following sets of specs to have the same "mstflintver" global variables:') for e in mstflintver_match_errors: printer.pprint(e) - + + if len(oot_kmodule_match_errors): + print( + '\nPlease update the following sets of specs to match the "last-known-kernel" global variable with kernel-headers "version":') + for e in oot_kmodule_match_errors: + printer.pprint(e) + sys.exit(1) From 9f410e091311fa24d7fb5c81c9ff5196d3cacb74 Mon Sep 17 00:00:00 2001 From: Elaheh Dehghani <108492863+ellie-di@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:04:40 -0800 Subject: [PATCH 034/163] Add ucx to PMC's extended repo (#11831) --- SPECS-EXTENDED/ucx/ucx.signatures.json | 5 + SPECS-EXTENDED/ucx/ucx.spec | 431 +++++++++++++++++++++++++ cgmanifest.json | 10 + 3 files changed, 446 insertions(+) create mode 100644 SPECS-EXTENDED/ucx/ucx.signatures.json create mode 100644 SPECS-EXTENDED/ucx/ucx.spec diff --git a/SPECS-EXTENDED/ucx/ucx.signatures.json b/SPECS-EXTENDED/ucx/ucx.signatures.json new file mode 100644 index 00000000000..bc42282b5a9 --- /dev/null +++ b/SPECS-EXTENDED/ucx/ucx.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "ucx-1.18.0.tar.gz": "C5DDBF6ADE53415CC2402FA540281C92958B67D3B1DD2B4D721D4019616B88D2" + } +} diff --git a/SPECS-EXTENDED/ucx/ucx.spec b/SPECS-EXTENDED/ucx/ucx.spec new file mode 100644 index 00000000000..934e5973689 --- /dev/null +++ b/SPECS-EXTENDED/ucx/ucx.spec @@ -0,0 +1,431 @@ +%{!?configure_options: %global configure_options %{nil}} +%bcond_without cma +%bcond_with cuda +%bcond_with gdrcopy +%bcond_without ib +%bcond_without rdmacm +%bcond_with rocm +%bcond_with ugni +%bcond_with xpmem +%bcond_with vfs +%bcond_with mad +%bcond_without mlx5 + +Summary: UCX is a communication library implementing high-performance messaging +Name: ucx +Version: 1.18.0 +Release: 1%{?dist} +License: BSD +Vendor: Microsoft Corporation +Distribution: Azure Linux +Group: System Environment/Security +URL: http://www.openucx.org +Source0: https://github.com/openucx/%{name}/releases/download/v%{version}-rc3/ucx-%{version}.tar.gz + + +# UCX currently supports only the following architectures +ExclusiveArch: aarch64 +ExclusiveArch: ppc64le +ExclusiveArch: x86_64 + +%if %{defined extra_deps} +Requires: %{?extra_deps} +%endif + +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: libtool +BuildRequires: gcc-c++ + +%if %{with cma} +BuildRequires: glibc-devel >= 2.15 +%endif +%if %{with gdrcopy} +BuildRequires: gdrcopy +%endif +%if %{with ib} +BuildRequires: libibverbs-devel +%endif +%if %{with mlx5} +BuildRequires: rdma-core-devel +%endif +%if %{with rdmacm} +BuildRequires: librdmacm-devel +%endif +%if %{with rocm} +BuildRequires: hsa-rocr-dev +%endif +%if %{with xpmem} +BuildRequires: pkgconfig(cray-xpmem) +%endif +%if %{with vfs} +BuildRequires: fuse3-devel +%endif +%if "%{debug}" == "1" +BuildRequires: valgrind-devel +%endif +%if %{with mad} +BuildRequires: libibmad-devel libibumad-devel +%endif + +%description +UCX is an optimized communication framework for high-performance distributed +applications. UCX utilizes high-speed networks, such as RDMA (InfiniBand, RoCE, +etc), Cray Gemini or Aries, for inter-node communication. If no such network is +available, TCP is used instead. UCX supports efficient transfer of data in +either main memory (RAM) or GPU memory (through CUDA and ROCm libraries). In +addition, UCX provides efficient intra-node communication, by leveraging the +following shared memory mechanisms: posix, sysv, cma, knem, and xpmem. +The acronym UCX stands for "Unified Communication X". + +This package was built from '' branch, commit f086c1d. + +%package devel +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Header files required for developing with UCX + +%description devel +Provides header files and examples for developing with UCX. + +%prep +%setup -q + +%build +%define _with_arg() %{expand:%%{?with_%{1}:--with-%{2}}%%{!?with_%{1}:--without-%{2}}} +%define _enable_arg() %{expand:%%{?with_%{1}:--enable-%{2}}%%{!?with_%{1}:--disable-%{2}}} +%configure --disable-optimizations \ + %{!?debug:--disable-logging} \ + %{!?debug:--disable-debug} \ + %{!?debug:--disable-assertions} \ + %{!?debug:--disable-params-check} \ + %{?debug:--with-valgrind} \ + %{?debug:--enable-profiling} \ + %{?debug:--enable-frame-pointer} \ + %{?debug:--enable-stats} \ + %{?debug:--enable-debug-data} \ + %{?debug:--enable-mt} \ + --without-go \ + --without-java \ + %_enable_arg cma cma \ + %_with_arg cuda cuda \ + %_with_arg gdrcopy gdrcopy \ + %_with_arg ib verbs \ + %_with_arg mlx5 mlx5 \ + %_with_arg rdmacm rdmacm \ + %_with_arg rocm rocm \ + %_with_arg xpmem xpmem \ + %_with_arg vfs fuse3 \ + %_with_arg ugni ugni \ + %_with_arg mad mad \ + %{?configure_options} +make %{?_smp_mflags} V=1 + +%install +make DESTDIR=%{buildroot} install +rm -f %{buildroot}%{_libdir}/*.la +rm -f %{buildroot}%{_libdir}/libucs_signal.a +rm -f %{buildroot}%{_libdir}/ucx/*.la +rm -f %{buildroot}%{_libdir}/ucx/lib*.so + +%files +%{_libdir}/lib*.so.* +%{_bindir}/ucx_info +%{_bindir}/ucx_perftest +%{_bindir}/ucx_perftest_daemon +%{_bindir}/ucx_read_profile +%if "%{debug}" == "1" +%{_bindir}/ucs_stats_parser +%endif +%{_bindir}/io_demo +%{_datadir}/ucx +%exclude %{_datadir}/ucx/examples +%doc README AUTHORS NEWS +%{!?_licensedir:%global license %%doc} +%license LICENSE +%{_sysconfdir}/ucx/ucx.conf + +%files devel +%{_includedir}/uc* +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/ucx.pc +%{_libdir}/pkgconfig/ucx-uct.pc +%{_libdir}/pkgconfig/ucx-ucs.pc +%{_libdir}/cmake/ucx/*.cmake +%{_datadir}/ucx/examples + +%post +/sbin/ldconfig + +%postun -p /sbin/ldconfig + +%package static +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Static libraries required for developing with UCX +Group: Development/Libraries + +%description static +Provides static libraries required for developing with UCX. + +%files static +%{_libdir}/lib*.a +%{_libdir}/ucx/lib*.a +%if %{with cma} +%{_libdir}/pkgconfig/ucx-cma.pc +%endif +%if %{with xpmem} +%{_libdir}/pkgconfig/ucx-xpmem.pc +%endif +%if %{with ib} +%{_libdir}/pkgconfig/ucx-ib.pc +%endif +%if %{with mlx5} +%{_libdir}/pkgconfig/ucx-ib-mlx5.pc +%endif +%if %{with rdmacm} +%{_libdir}/pkgconfig/ucx-rdmacm.pc +%endif +%if %{with vfs} +%{_libdir}/pkgconfig/ucx-fuse.pc +%endif + +%if %{with cma} +%package cma +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX CMA support + +%description cma +Provides CMA (Linux cross-memory-attach) transport for UCX. It utilizes the +system calls process_vm_readv/writev() for one-shot memory copy from another +process. + +%files cma +%{_libdir}/ucx/libuct_cma.so.* +%endif + +%if %{with cuda} +%package cuda +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX CUDA support + +%description cuda +Provide CUDA (NVIDIA GPU) support for UCX. Enables passing GPU memory pointers +to UCX communication routines, and transports taking advantage of GPU-Direct +technology for direct data transfer between GPU and RDMA devices. + +%files cuda +%{_libdir}/ucx/libucx_perftest_cuda.so.* +%{_libdir}/ucx/libucm_cuda.so.* +%{_libdir}/ucx/libuct_cuda.so.* +%endif + +%if %{with gdrcopy} +%package gdrcopy +Requires: %{name}-cuda%{?_isa} = %{version}-%{release} +Summary: UCX GDRCopy support + +%description gdrcopy +Provide GDRCopy support for UCX. GDRCopy is a low-latency GPU memory copy +library, built on top of the NVIDIA GPUDirect RDMA technology. + +%files gdrcopy +%{_libdir}/ucx/libuct_cuda_gdrcopy.so.* +%endif + +%if %{with ib} +%package ib +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX RDMA support + +%description ib +Provides support for IBTA-compliant transports for UCX. This includes RoCE, +InfiniBand, OmniPath, and any other transport supported by IB Verbs API. +Typically these transports provide RDMA support, which enables a fast and +hardware-offloaded data transfer. + +%files ib +%{_libdir}/ucx/libuct_ib.so.* +%endif + +%if %{with mlx5} +%package ib-mlx5 +Requires: %{name} = %{version}-%{release} +Summary: UCX IB MLX5 RDMA provider support +Group: System Environment/Libraries + +%description ib-mlx5 +Provides support for DevX, Direct Verbs and DC transports for Infiniband +devices. + +%files ib-mlx5 +%{_libdir}/ucx/libuct_ib_mlx5.so.* +%endif + +%if %{with mad} +%package mad +Requires: %{name} = %{version}-%{release} +Summary: UCX Infiniband MAD support +Group: System Environment/Libraries + +%description mad +Provide Infiniband MAD support for UCX. Enables running perftest using +Infiniband datagrams for out-of-band communications. + +%files mad +%{_libdir}/ucx/libucx_perftest_mad.so.* +%endif + +%if %{with rdmacm} +%package rdmacm +Requires: %{name}-ib%{?_isa} = %{version}-%{release} +Summary: UCX RDMA connection manager support + +%description rdmacm +Provides RDMA connection-manager support to UCX, which enables client/server +based connection establishment for RDMA-capable transports. + +%files rdmacm +%{_libdir}/ucx/libuct_rdmacm.so.* +%endif + +%if %{with rocm} +%package rocm +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX ROCm GPU support + +%description rocm +Provides Radeon Open Compute (ROCm) Runtime support for UCX. + +%files rocm +%{_libdir}/ucx/libuct_rocm.so.* +%{_libdir}/ucx/libucm_rocm.so.* + +%if %{with gdrcopy} +%package rocmgdr +Requires: %{name}-rocm%{?_isa} = %{version}-%{release} +Summary: UCX GDRCopy support for ROCM + +%description rocmgdr +Provide GDRCopy support for UCX ROCM. GDRCopy is a low-latency GPU memory copy +library, built on top of the NVIDIA GPUDirect RDMA technology. + +%files rocmgdr +%{_libdir}/ucx/libuct_rocm_gdr.so.* +%endif +%endif + +%if %{with ugni} +%package ugni +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX Gemini/Aries transport support. + +%description ugni +Provides Gemini/Aries transport for UCX. + +%files ugni +%{_libdir}/ucx/libuct_ugni.so.* +%endif + +%if %{with xpmem} +%package xpmem +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX XPMEM transport support. + +%description xpmem +Provides XPMEM transport for UCX. XPMEM is a Linux kernel module that enables a +process to map the memory of another process into its virtual address space. + +%files xpmem +%{_libdir}/ucx/libuct_xpmem.so.* +%endif + +%if %{with vfs} +%package vfs +Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: UCX Virtual Filesystem support. +Group: System Environment/Libraries + +%description vfs +Provides a virtual filesystem over FUSE which allows real-time monitoring of UCX +library internals, protocol objects, transports status, and more. + +%files vfs +%{_libdir}/ucx/libucs_fuse.so.* +%{_bindir}/ucx_vfs +%endif + +%changelog +* Wed Jan 08 2025 Elaheh Dehghani - 1.18.0-1 +- Bump version to 1.18.0 + +* Fri Jan 26 2024 Juan Camposeco - 1.15.0-5 +- Update version to 1.15.0 and remove knem dependency + +* Wed Sep 20 2023 Jon Slobodzian - 1.11.0-4 +- Recompile with stack-protection fixed gcc version (CVE-2023-4039) + +* Tue Jul 26 2022 Rachel Menge - 1.11.0-3 +- Move from SPECS-EXTENDED to SPECS +- License verified + +* Thu Aug 26 2021 Thomas Crain - 1.11.0-2 +- Initial CBL-Mariner import from Fedora 35 (license: MIT). +- Remove option to build with libibcm + +* Mon Aug 09 2021 Yurii Shestakov 1.11.0-1 +- Bump version to 1.11.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.10.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu May 27 2021 Yurii Shestakov 1.10.1-2 +- Bump version to 1.10.1 + +* Mon Apr 26 2021 Yurii Shestakov 1.10.1-rc1 +- Bump version to 1.10.1-rc1 + +* Wed Jan 27 2021 Fedora Release Engineering - 1.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Nov 11 2020 Yossi Itigin 1.10.0-1 +- Make the RPM relocatable + +* Mon Nov 2 2020 Orion Poplawski - 1.9.0-1 +- Update to 1.9.0 + +* Fri Oct 30 2020 Jeff Law 1.8.1-5 +- Adjust workaround for gcc-11 diagnostic to narrow its scope + +* Thu Oct 29 2020 Jeff Law 1.8.1-4 +- Disable -Warray-bounds diagnostics for gcc-11 + +* Wed Jul 29 2020 Fedora Release Engineering - 1.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 20 2020 Jeff Law 1.8.1-2 +- Fix broken configure files compromised by LTO + +* Wed Jul 1 2020 Yossi Itigin 1.8.1-1 +- Bump version to 1.8.1 +* Sun Sep 22 2019 Yossi Itigin 1.8.0-1 +- Bump version to 1.8.0 +* Sun Mar 24 2019 Yossi Itigin 1.7.0-1 +- Bump version to 1.7.0 +* Thu Jan 24 2019 Yossi Itigin 1.6.0-1 +- Add cma, knem, and xpmem sub-packages +* Tue Nov 20 2018 Yossi Itigin 1.6.0-1 +- Bump version to 1.6.0 +* Tue Nov 6 2018 Andrey Maslennikov 1.5.0-1 +- Bump version to 1.5.0 +- See NEWS for details +* Tue Oct 30 2018 Andrey Maslennikov 1.4.0-1 +- See NEWS for details +* Mon Aug 20 2018 Andrey Maslennikov 1.3.1-1 +- See NEWS for details +* Thu Aug 16 2018 Andrey Maslennikov 1.3.0-1 +- Explicitly set gcc-c++ as requirements +* Wed Mar 7 2018 Andrey Maslennikov 1.3.0-1 +- See NEWS for details +* Mon Aug 21 2017 Andrey Maslennikov 1.2.1-1 +- Spec file now complies with Fedora guidelines +* Mon Jul 3 2017 Andrey Maslennikov 1.2.0-1 +- Fedora package created diff --git a/cgmanifest.json b/cgmanifest.json index d7915aa840f..c1bdcd14508 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -29141,6 +29141,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "ucx", + "version": "1.18.0", + "downloadUrl": "https://github.com/openucx/ucx/releases/download/v1.18.0-rc3/ucx-1.18.0.tar.gz" + } + } + }, { "component": { "type": "other", From f711b02103f15b976557d50a5b1e9503216cc26b Mon Sep 17 00:00:00 2001 From: Elaheh Dehghani <108492863+ellie-di@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:04:50 -0800 Subject: [PATCH 035/163] Add rdma-core to PMC's extended repo (#11810) --- .../rdma-core/rdma-core.signatures.json | 5 + SPECS-EXTENDED/rdma-core/rdma-core.spec | 747 ++++++++++++++++++ cgmanifest.json | 10 + 3 files changed, 762 insertions(+) create mode 100644 SPECS-EXTENDED/rdma-core/rdma-core.signatures.json create mode 100644 SPECS-EXTENDED/rdma-core/rdma-core.spec diff --git a/SPECS-EXTENDED/rdma-core/rdma-core.signatures.json b/SPECS-EXTENDED/rdma-core/rdma-core.signatures.json new file mode 100644 index 00000000000..5ea5fabfee1 --- /dev/null +++ b/SPECS-EXTENDED/rdma-core/rdma-core.signatures.json @@ -0,0 +1,5 @@ +{ + "Signatures": { + "rdma-core-55.0.tar.gz": "6F8B97267807CDAE54845F542EE3D75DE80FDC24FE2632F5DB1573ECEF132D0F" + } +} diff --git a/SPECS-EXTENDED/rdma-core/rdma-core.spec b/SPECS-EXTENDED/rdma-core/rdma-core.spec new file mode 100644 index 00000000000..d45848fc7ed --- /dev/null +++ b/SPECS-EXTENDED/rdma-core/rdma-core.spec @@ -0,0 +1,747 @@ +Summary: RDMA core userspace libraries and daemons +Name: rdma-core +Version: 55.0 +Release: 1%{?dist} +URL: https://github.com/linux-rdma/rdma-core +Vendor: Microsoft Corporation +Distribution: Azure Linux + +# Almost everything is licensed under the OFA dual GPLv2, 2 Clause BSD license +# providers/ipathverbs/ Dual licensed using a BSD license with an extra patent clause +# providers/rxe/ Incorporates code from ipathverbs and contains the patent clause +# providers/hfi1verbs Uses the 3 Clause BSD license +License: GPLv2 or BSD +Source0: https://github.com/linux-rdma/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz + +# Do not build static libs by default. +%define with_static %{?_with_static: 1} %{?!_with_static: 0} + +# 32-bit arm is missing required arch-specific memory barriers, +ExcludeArch: %{arm} + +BuildRequires: binutils +BuildRequires: cmake >= 2.8.11 +BuildRequires: gcc +BuildRequires: pkg-config +BuildRequires: pkgconfig(libnl-3.0) +BuildRequires: pkgconfig(libnl-route-3.0) +# Disable pyverbs for azl, as pyverbs cannot build with cython > 3 +# pyverbs/device.c: error: redefinition of '__Pyx_Enum_ibv_event_type_to_py' +# and non-matching exception definitions +%if 0%{azl} +%define with_pyverbs 0 +%endif +%if %{with_pyverbs} +BuildRequires: python3-Cython +%endif +BuildRequires: python3 +BuildRequires: python3-docutils +BuildRequires: python3-devel +BuildRequires: python3-xml +BuildRequires: systemd +BuildRequires: systemd-devel +BuildRequires: valgrind +Requires: pciutils + +Provides: rdma = %{version}-%{release} + +BuildRequires: ninja-build +%define CMAKE_FLAGS -GNinja +%define make_jobs ninja-build -C . -v %{?_smp_mflags} +%define cmake_install DESTDIR=%{buildroot} ninja-build -C . install + +%description +RDMA core userspace infrastructure and documentation, including initialization +scripts, kernel driver-specific modprobe override configs, IPoIB network +scripts, dracut rules, and the rdma-ndd utility. + +%package devel +Summary: RDMA core development libraries and headers +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libibverbs%{?_isa} = %{version}-%{release} +Provides: libibverbs-devel = %{version}-%{release} +Obsoletes: libibverbs-devel < %{version}-%{release} +Requires: libibumad%{?_isa} = %{version}-%{release} +Provides: libibumad-devel = %{version}-%{release} +Obsoletes: libibumad-devel < %{version}-%{release} +Requires: librdmacm%{?_isa} = %{version}-%{release} +Provides: librdmacm-devel = %{version}-%{release} +Obsoletes: librdmacm-devel < %{version}-%{release} +Requires: ibacm%{?_isa} = %{version}-%{release} +Provides: ibacm-devel = %{version}-%{release} +Obsoletes: ibacm-devel < %{version}-%{release} +Requires: infiniband-diags%{?_isa} = %{version}-%{release} +Provides: infiniband-diags-devel = %{version}-%{release} +Obsoletes: infiniband-diags-devel < %{version}-%{release} +Provides: libibmad-devel = %{version}-%{release} +Obsoletes: libibmad-devel < %{version}-%{release} +%if %{with_static} +# Since our pkg-config files include private references to these packages they +# need to have their .pc files installed too, even for dynamic linking, or +# pkg-config breaks. +BuildRequires: pkgconfig(libnl-3.0) +BuildRequires: pkgconfig(libnl-route-3.0) +%endif + +%description devel +RDMA core development libraries and headers. + +%package -n infiniband-diags +Summary: InfiniBand Diagnostic Tools +Requires: libibumad%{?_isa} = %{version}-%{release} +Provides: perl(IBswcountlimits) +Provides: libibmad = %{version}-%{release} +Obsoletes: libibmad < %{version}-%{release} + +%description -n infiniband-diags +This package provides IB diagnostic programs and scripts needed to diagnose an +IB subnet. infiniband-diags now also provides libibmad. libibmad provides +low layer IB functions for use by the IB diagnostic and management +programs. These include MAD, SA, SMP, and other basic IB functions. + +%package -n infiniband-diags-compat +Summary: OpenFabrics Alliance InfiniBand Diagnostic Tools + +%description -n infiniband-diags-compat +Deprecated scripts and utilities which provide duplicated functionality, most +often at a reduced performance. These are maintained for the time being for +compatibility reasons. + +%package -n libibverbs +Summary: A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP/RoCE) hardware +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: libcxgb4 = %{version}-%{release} +Obsoletes: libcxgb4 < %{version}-%{release} +Provides: libefa = %{version}-%{release} +Obsoletes: libefa < %{version}-%{release} +Provides: libhfi1 = %{version}-%{release} +Obsoletes: libhfi1 < %{version}-%{release} +Provides: libi40iw = %{version}-%{release} +Obsoletes: libi40iw < %{version}-%{release} +Provides: libipathverbs = %{version}-%{release} +Obsoletes: libipathverbs < %{version}-%{release} +Provides: libmlx4 = %{version}-%{release} +Obsoletes: libmlx4 < %{version}-%{release} +Provides: libmlx5 = %{version}-%{release} +Obsoletes: libmlx5 < %{version}-%{release} +Provides: libmthca = %{version}-%{release} +Obsoletes: libmthca < %{version}-%{release} +Provides: libocrdma = %{version}-%{release} +Obsoletes: libocrdma < %{version}-%{release} +Provides: librxe = %{version}-%{release} +Obsoletes: librxe < %{version}-%{release} + +%description -n libibverbs +libibverbs is a library that allows userspace processes to use RDMA +"verbs" as described in the InfiniBand Architecture Specification and +the RDMA Protocol Verbs Specification. This includes direct hardware +access from userspace to InfiniBand/iWARP adapters (kernel bypass) for +fast path operations. + +Device-specific plug-in ibverbs userspace drivers are included: + +- libcxgb4: Chelsio T4 iWARP HCA +- libefa: Amazon Elastic Fabric Adapter +- libhfi1: Intel Omni-Path HFI +- libhns: HiSilicon Hip06 SoC +- libi40iw: Intel Ethernet Connection X722 RDMA +- libipathverbs: QLogic InfiniPath HCA +- libmlx4: Mellanox ConnectX-3 InfiniBand HCA +- libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA +- libmthca: Mellanox InfiniBand HCA +- libocrdma: Emulex OneConnect RDMA/RoCE Device +- libqedr: QLogic QL4xxx RoCE HCA +- librxe: A software implementation of the RoCE protocol +- libsiw: A software implementation of the iWarp protocol +- libvmw_pvrdma: VMware paravirtual RDMA device + +%package -n libibverbs-utils +Summary: Examples for the libibverbs library +Requires: libibverbs%{?_isa} = %{version}-%{release} + +%description -n libibverbs-utils +Useful libibverbs example programs such as ibv_devinfo, which +displays information about RDMA devices. + +%package -n ibacm +Summary: InfiniBand Communication Manager Assistant +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n ibacm +The ibacm daemon helps reduce the load of managing path record lookups on +large InfiniBand fabrics by providing a user space implementation of what +is functionally similar to an ARP cache. The use of ibacm, when properly +configured, can reduce the SA packet load of a large IB cluster from O(n^2) +to O(n). The ibacm daemon is started and normally runs in the background, +user applications need not know about this daemon as long as their app +uses librdmacm to handle connection bring up/tear down. The librdmacm +library knows how to talk directly to the ibacm daemon to retrieve data. + +%package -n iwpmd +Summary: iWarp Port Mapper userspace daemon +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n iwpmd +iwpmd provides a userspace service for iWarp drivers to claim +tcp ports through the standard socket interface. + +%package -n libibumad +Summary: OpenFabrics Alliance InfiniBand umad (userspace management datagram) library +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n libibumad +libibumad provides the userspace management datagram (umad) library +functions, which sit on top of the umad modules in the kernel. These +are used by the IB diagnostic and management tools, including OpenSM. + +%package -n librdmacm +Summary: Userspace RDMA Connection Manager +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n librdmacm +librdmacm provides a userspace RDMA Communication Management API. + +%package -n librdmacm-utils +Summary: Examples for the librdmacm library +Requires: librdmacm%{?_isa} = %{version}-%{release} + +%description -n librdmacm-utils +Example test programs for the librdmacm library. + +%package -n srp_daemon +Summary: Tools for using the InfiniBand SRP protocol devices +Obsoletes: srptools <= 1.0.3 +Provides: srptools = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n srp_daemon +In conjunction with the kernel ib_srp driver, srp_daemon allows you to +discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand. + +%if %{with_pyverbs} +%package -n python3-pyverbs +Summary: Python3 API over IB verbs +%{?python_provide:%python_provide python3-pyverbs} + +%description -n python3-pyverbs +Pyverbs is a Cython-based Python API over libibverbs, providing an +easy, object-oriented access to IB verbs. +%endif + +%prep +%autosetup -v -p1 + +%build +# This package uses top level ASM constructs which are incompatible with LTO. +# Top level ASMs are often used to implement symbol versioning. gcc-10 +# introduces a new mechanism for symbol versioning which works with LTO. +# Converting packages to use that mechanism instead of toplevel ASMs is +# recommended. +# Disable LTO +%define _lto_cflags %{nil} + +# New RPM defines _rundir, usually as /run +%if 0%{?_rundir:1} +%else +%define _rundir /var/run +%endif + +%{!?EXTRA_CMAKE_FLAGS: %define EXTRA_CMAKE_FLAGS %{nil}} + +# Pass all of the rpm paths directly to GNUInstallDirs and our other defines. +%cmake %{CMAKE_FLAGS} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_BINDIR:PATH=%{_bindir} \ + -DCMAKE_INSTALL_SBINDIR:PATH=%{_sbindir} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ + -DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \ + -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \ + -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=%{_sharedstatedir} \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ + -DCMAKE_INSTALL_INFODIR:PATH=%{_infodir} \ + -DCMAKE_INSTALL_MANDIR:PATH=%{_mandir} \ + -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \ + -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR:PATH=%{_unitdir} \ + -DCMAKE_INSTALL_INITDDIR:PATH=%{_initrddir} \ + -DCMAKE_INSTALL_RUNDIR:PATH=%{_rundir} \ + -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} \ + -DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \ + -DCMAKE_INSTALL_PERLDIR:PATH=%{perl_vendorlib} \ + -DENABLE_IBDIAGS_COMPAT:BOOL=True \ +%if %{with_static} + -DENABLE_STATIC=1 \ +%endif + %{EXTRA_CMAKE_FLAGS} \ + -DPYTHON_EXECUTABLE:PATH=%{__python3} \ + -DCMAKE_INSTALL_PYTHON_ARCH_LIB:PATH=%{python3_sitearch} \ +%if %{with_pyverbs} + -DNO_PYVERBS=0 +%else + -DNO_PYVERBS=1 +%endif +%make_jobs + +%install +%cmake_install + +mkdir -p %{buildroot}/%{_sysconfdir}/rdma + +# Red Hat specific glue +%global dracutlibdir %{_prefix}/lib/dracut +%global sysmodprobedir %{_prefix}/lib/modprobe.d +mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d +mkdir -p %{buildroot}%{_libexecdir} +mkdir -p %{buildroot}%{_udevrulesdir} +mkdir -p %{buildroot}%{dracutlibdir}/modules.d/05rdma +mkdir -p %{buildroot}%{sysmodprobedir} +install -D -m0644 redhat/rdma.conf %{buildroot}/%{_sysconfdir}/rdma/rdma.conf +install -D -m0644 redhat/rdma.mlx4.conf %{buildroot}/%{_sysconfdir}/rdma/mlx4.conf +install -D -m0755 redhat/rdma.modules-setup.sh %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh +install -D -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{sysmodprobedir}/libmlx4.conf +install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh + +# ibacm +bin/ib_acme -D . -O +install -D -m0644 ibacm_opts.cfg %{buildroot}%{_sysconfdir}/rdma/ + +# Delete the package's init.d scripts +rm -rf %{buildroot}/%{_initrddir}/ +rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh + +%post -n libibverbs -p /sbin/ldconfig +%postun -n libibverbs -p /sbin/ldconfig + +%post -n libibumad -p /sbin/ldconfig +%postun -n libibumad -p /sbin/ldconfig + +%post -n librdmacm -p /sbin/ldconfig +%postun -n librdmacm -p /sbin/ldconfig + +%post -n rdma-core +if [ -x /sbin/udevadm ]; then +/sbin/udevadm trigger --subsystem-match=infiniband --action=change || true +/sbin/udevadm trigger --subsystem-match=net --action=change || true +/sbin/udevadm trigger --subsystem-match=infiniband_mad --action=change || true +fi + +%post -n ibacm +%systemd_post ibacm.service +%preun -n ibacm +%systemd_preun ibacm.service +%postun -n ibacm +%systemd_postun_with_restart ibacm.service + +%post -n srp_daemon +%systemd_post srp_daemon.service +%preun -n srp_daemon +%systemd_preun srp_daemon.service +%postun -n srp_daemon +%systemd_postun_with_restart srp_daemon.service + +%post -n iwpmd +%systemd_post iwpmd.service +%preun -n iwpmd +%systemd_preun iwpmd.service +%postun -n iwpmd +%systemd_postun_with_restart iwpmd.service + +%files +%license COPYING.BSD_FB COPYING.BSD_MIT COPYING.GPL2 COPYING.md +%dir %{_sysconfdir}/rdma +%dir %{_docdir}/%{name} +%doc %{_docdir}/%{name}/README.md +%doc %{_docdir}/%{name}/rxe.md +%doc %{_docdir}/%{name}/udev.md +%doc %{_docdir}/%{name}/tag_matching.md +%doc %{_docdir}/%{name}/70-persistent-ipoib.rules +%config(noreplace) %{_sysconfdir}/rdma/mlx4.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/infiniband.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/iwarp.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/opa.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/rdma.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/roce.conf +%config(noreplace) %{_sysconfdir}/rdma/rdma.conf +%dir %{_sysconfdir}/modprobe.d +%config(noreplace) %{_sysconfdir}/modprobe.d/mlx4.conf +%config(noreplace) %{_sysconfdir}/modprobe.d/truescale.conf +%{_unitdir}/rdma-hw.target +%{_unitdir}/rdma-load-modules@.service +%dir %{dracutlibdir} +%dir %{dracutlibdir}/modules.d +%dir %{dracutlibdir}/modules.d/05rdma +%{dracutlibdir}/modules.d/05rdma/module-setup.sh +%dir %{_udevrulesdir} +%{_udevrulesdir}/../rdma_rename +%{_udevrulesdir}/60-rdma-ndd.rules +%{_udevrulesdir}/60-rdma-persistent-naming.rules +%{_udevrulesdir}/75-rdma-description.rules +%{_udevrulesdir}/90-rdma-hw-modules.rules +%{_udevrulesdir}/90-rdma-ulp-modules.rules +%{_udevrulesdir}/90-rdma-umad.rules +%dir %{sysmodprobedir} +%{sysmodprobedir}/libmlx4.conf +%{_libexecdir}/mlx4-setup.sh +%{_libexecdir}/truescale-serdes.cmds +%{_sbindir}/rdma-ndd +%{_unitdir}/rdma-ndd.service +%{_mandir}/man7/rxe* +%{_mandir}/man8/rdma-ndd.* + +%files devel +%doc %{_docdir}/%{name}/MAINTAINERS +%dir %{_includedir}/infiniband +%dir %{_includedir}/rdma +%{_includedir}/infiniband/* +%{_includedir}/rdma/* +%if %{with_static} +%{_libdir}/lib*.a +%endif +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/*.pc +%{_mandir}/man3/efadv* +%{_mandir}/man3/hnsdv* +%{_mandir}/man3/ibv_* +%{_mandir}/man3/rdma* +%{_mandir}/man3/umad* +%{_mandir}/man3/*_to_ibv_rate.* +%{_mandir}/man7/rdma_cm.* +%{_mandir}/man3/manadv* +%{_mandir}/man3/mlx5dv* +%{_mandir}/man3/mlx4dv* +%{_mandir}/man7/efadv* +%{_mandir}/man7/hnsdv* +%{_mandir}/man7/manadv* +%{_mandir}/man7/mlx5dv* +%{_mandir}/man7/mlx4dv* +%{_mandir}/man3/ibnd_* + +%files -n infiniband-diags-compat +%{_sbindir}/ibcheckerrs +%{_mandir}/man8/ibcheckerrs* +%{_sbindir}/ibchecknet +%{_mandir}/man8/ibchecknet* +%{_sbindir}/ibchecknode +%{_mandir}/man8/ibchecknode* +%{_sbindir}/ibcheckport +%{_mandir}/man8/ibcheckport.* +%{_sbindir}/ibcheckportwidth +%{_mandir}/man8/ibcheckportwidth* +%{_sbindir}/ibcheckportstate +%{_mandir}/man8/ibcheckportstate* +%{_sbindir}/ibcheckwidth +%{_mandir}/man8/ibcheckwidth* +%{_sbindir}/ibcheckstate +%{_mandir}/man8/ibcheckstate* +%{_sbindir}/ibcheckerrors +%{_mandir}/man8/ibcheckerrors* +%{_sbindir}/ibdatacounts +%{_mandir}/man8/ibdatacounts* +%{_sbindir}/ibdatacounters +%{_mandir}/man8/ibdatacounters* +%{_sbindir}/ibdiscover.pl +%{_mandir}/man8/ibdiscover* +%{_sbindir}/ibswportwatch.pl +%{_mandir}/man8/ibswportwatch* +%{_sbindir}/ibqueryerrors.pl +%{_sbindir}/iblinkinfo.pl +%{_sbindir}/ibprintca.pl +%{_mandir}/man8/ibprintca* +%{_sbindir}/ibprintswitch.pl +%{_mandir}/man8/ibprintswitch* +%{_sbindir}/ibprintrt.pl +%{_mandir}/man8/ibprintrt* +%{_sbindir}/set_nodedesc.sh + +%files -n infiniband-diags +%{_sbindir}/ibaddr +%{_mandir}/man8/ibaddr* +%{_sbindir}/ibnetdiscover +%{_mandir}/man8/ibnetdiscover* +%{_sbindir}/ibping +%{_mandir}/man8/ibping* +%{_sbindir}/ibportstate +%{_mandir}/man8/ibportstate* +%{_sbindir}/ibroute +%{_mandir}/man8/ibroute.* +%{_sbindir}/ibstat +%{_mandir}/man8/ibstat.* +%{_sbindir}/ibsysstat +%{_mandir}/man8/ibsysstat* +%{_sbindir}/ibtracert +%{_mandir}/man8/ibtracert* +%{_sbindir}/perfquery +%{_mandir}/man8/perfquery* +%{_sbindir}/sminfo +%{_mandir}/man8/sminfo* +%{_sbindir}/smpdump +%{_mandir}/man8/smpdump* +%{_sbindir}/smpquery +%{_mandir}/man8/smpquery* +%{_sbindir}/saquery +%{_mandir}/man8/saquery* +%{_sbindir}/vendstat +%{_mandir}/man8/vendstat* +%{_sbindir}/iblinkinfo +%{_mandir}/man8/iblinkinfo* +%{_sbindir}/ibqueryerrors +%{_mandir}/man8/ibqueryerrors* +%{_sbindir}/ibcacheedit +%{_mandir}/man8/ibcacheedit* +%{_sbindir}/ibccquery +%{_mandir}/man8/ibccquery* +%{_sbindir}/ibccconfig +%{_mandir}/man8/ibccconfig* +%{_sbindir}/dump_fts +%{_mandir}/man8/dump_fts* +%{_sbindir}/ibhosts +%{_mandir}/man8/ibhosts* +%{_sbindir}/ibswitches +%{_mandir}/man8/ibswitches* +%{_sbindir}/ibnodes +%{_mandir}/man8/ibnodes* +%{_sbindir}/ibrouters +%{_mandir}/man8/ibrouters* +%{_sbindir}/ibfindnodesusing.pl +%{_mandir}/man8/ibfindnodesusing* +%{_sbindir}/ibidsverify.pl +%{_mandir}/man8/ibidsverify* +%{_sbindir}/check_lft_balance.pl +%{_mandir}/man8/check_lft_balance* +%{_sbindir}/dump_lfts.sh +%{_mandir}/man8/dump_lfts* +%{_sbindir}/dump_mfts.sh +%{_mandir}/man8/dump_mfts* +%{_sbindir}/ibclearerrors +%{_mandir}/man8/ibclearerrors* +%{_sbindir}/ibclearcounters +%{_mandir}/man8/ibclearcounters* +%{_sbindir}/ibstatus +%{_mandir}/man8/ibstatus* +%{_mandir}/man8/infiniband-diags* +%{_libdir}/libibmad*.so.* +%{_libdir}/libibnetdisc*.so.* +%{perl_vendorlib}/IBswcountlimits.pm +%config(noreplace) %{_sysconfdir}/infiniband-diags/error_thresholds +%config(noreplace) %{_sysconfdir}/infiniband-diags/ibdiag.conf + +%files -n libibverbs +%dir %{_sysconfdir}/libibverbs.d +%dir %{_libdir}/libibverbs +%{_libdir}/libefa.so.* +%{_libdir}/libhns.so.* +%{_libdir}/libibverbs*.so.* +%{_libdir}/libibverbs/*.so +%{_libdir}/libmlx5.so.* +%{_libdir}/libmlx4.so.* +%{_libdir}/libmana.so.* +%config(noreplace) %{_sysconfdir}/libibverbs.d/*.driver +%doc %{_docdir}/%{name}/libibverbs.md + +%files -n libibverbs-utils +%{_bindir}/ibv_* +%{_mandir}/man1/ibv_* + +%files -n ibacm +%config(noreplace) %{_sysconfdir}/rdma/ibacm_opts.cfg +%{_bindir}/ib_acme +%{_sbindir}/ibacm +%{_mandir}/man1/ib_acme.* +%{_mandir}/man7/ibacm.* +%{_mandir}/man7/ibacm_prov.* +%{_mandir}/man8/ibacm.* +%{_unitdir}/ibacm.service +%{_unitdir}/ibacm.socket +%dir %{_libdir}/ibacm +%{_libdir}/ibacm/* +%doc %{_docdir}/%{name}/ibacm.md + +%files -n iwpmd +%{_sbindir}/iwpmd +%{_unitdir}/iwpmd.service +%config(noreplace) %{_sysconfdir}/rdma/modules/iwpmd.conf +%config(noreplace) %{_sysconfdir}/iwpmd.conf +%{_udevrulesdir}/90-iwpmd.rules +%{_mandir}/man8/iwpmd.* +%{_mandir}/man5/iwpmd.* + +%files -n libibumad +%{_libdir}/libibumad*.so.* + +%files -n librdmacm +%{_libdir}/librdmacm*.so.* +%dir %{_libdir}/rsocket +%{_libdir}/rsocket/*.so* +%doc %{_docdir}/%{name}/librdmacm.md +%{_mandir}/man7/rsocket.* + +%files -n librdmacm-utils +%{_bindir}/cmtime +%{_bindir}/mckey +%{_bindir}/rcopy +%{_bindir}/rdma_client +%{_bindir}/rdma_server +%{_bindir}/rdma_xclient +%{_bindir}/rdma_xserver +%{_bindir}/riostream +%{_bindir}/rping +%{_bindir}/rstream +%{_bindir}/ucmatose +%{_bindir}/udaddy +%{_bindir}/udpong +%{_mandir}/man1/cmtime.* +%{_mandir}/man1/mckey.* +%{_mandir}/man1/rcopy.* +%{_mandir}/man1/rdma_client.* +%{_mandir}/man1/rdma_server.* +%{_mandir}/man1/rdma_xclient.* +%{_mandir}/man1/rdma_xserver.* +%{_mandir}/man1/riostream.* +%{_mandir}/man1/rping.* +%{_mandir}/man1/rstream.* +%{_mandir}/man1/ucmatose.* +%{_mandir}/man1/udaddy.* +%{_mandir}/man1/udpong.* + +%files -n srp_daemon +%config(noreplace) %{_sysconfdir}/srp_daemon.conf +%config(noreplace) %{_sysconfdir}/rdma/modules/srp_daemon.conf +%{_libexecdir}/srp_daemon/start_on_all_ports +%{_unitdir}/srp_daemon.service +%{_unitdir}/srp_daemon_port@.service +%{_sbindir}/ibsrpdm +%{_sbindir}/srp_daemon +%{_sbindir}/run_srp_daemon +%{_udevrulesdir}/60-srp_daemon.rules +%{_mandir}/man5/srp_daemon.service.5* +%{_mandir}/man5/srp_daemon_port@.service.5* +%{_mandir}/man8/ibsrpdm.8* +%{_mandir}/man8/srp_daemon.8* +%doc %{_docdir}/%{name}/ibsrpdm.md + +%if %{with_pyverbs} +%files -n python3-pyverbs +%{python3_sitearch}/pyverbs +%{_docdir}/%{name}/tests/*.py +%endif + +%changelog +* Tue Jan 07 2025 Elaheh Dehghani - 55.0-1 +- Upgrade to version 55.0 +- Add rdma-core to PMC extended repo + +* Mon Jan 22 2024 Kanika Nema - 49.1-1 +- Upgrade to version 49.1 for AzL 3.0 release +- Disable pyverbs as it cannot build with Cython > 3, the default for AzL 3.0 +- Use released sources that include the prebuilt doc files as AzL does + not include pandoc +- Package the additional files present in v49.1 + +* Wed Sep 20 2023 Jon Slobodzian - 39.0-2 +- Recompile with stack-protection fixed gcc version (CVE-2023-4039) + +* Mon Feb 14 2022 Neha Agarwal - 39.0-1 +- Update to version 39.0. +- Modified patch to apply to new version. + +* Wed Oct 20 2021 Thomas Crain - 31.0-3 +- Use python3-docutils dependency instead of python-docutils + +* Fri Aug 21 2020 Thomas Crain - 31.0-2 +- Initial CBL-Mariner import from Fedora 33 (license: MIT). License verified. + +* Wed Aug 19 2020 Honggang Li - 31.0-1 +- Rebase to upstream release v31.0 + +* Thu Jul 30 2020 Honggang Li - 30.0-6 +- Update cmake options + +* Wed Jul 29 2020 Fedora Release Engineering - 30.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 02 2020 Stephen Gallagher - 30.0-4 +- Don't throw script errors if udev is not installed + +* Wed Jul 1 2020 Jeff Law - 30.0-3 +- Disable LTO + +* Thu Jun 25 2020 Zbigniew Jędrzejewski-Szmek - 30.0-2 +- Drop dependencies on systemd (#1837812) + +* Mon Jun 15 2020 Honggang Li - 30.0-1 +- Rebase to upstream release v30.0 + +* Tue May 26 2020 Miro Hrončok - 29.0-2 +- Rebuilt for Python 3.9 + +* Mon Apr 13 2020 Honggang Li - 29.0-1 +- Rebase to upstream release v29.0 + +* Wed Feb 12 2020 Honggang Li - 28.0-1 +- Rebase to upstream release v28.0 + +* Thu Jan 30 2020 Fedora Release Engineering - 27.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sun Jan 19 2020 Orion Poplawski - 27.0-3 +- Fix typo in requires + +* Sun Jan 19 2020 Honggang Li - 27.0-2 +- Backport some spec improvement from upstream + +* Thu Dec 12 2019 Honggang Li - 27.0-1 +- Rebase to upstream release v27.0 + +* Thu Nov 28 2019 Honggang Li - 26.1-1 +- Rebase to upstream release v26.1 + +* Fri Jul 26 2019 Fedora Release Engineering - 20.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 20.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 23 2019 Björn Esser - 20.1-2 +- Append curdir to CMake invokation. (#1668512) + +* Fri Oct 19 2018 Jarod Wilson - 20.1-1 +- Long overdue update to upstream v20.1 stable release + +* Sat Jul 14 2018 Fedora Release Engineering - 16.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sun Mar 18 2018 Iryna Shcherbina - 16.2-4 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Tue Feb 06 2018 Orion Poplawski - 16.2-3 +- Build for s390/x + +* Tue Feb 06 2018 Patrick Uiterwijk - 16.2-2 +- Fix escaped macro + +* Sun Feb 04 2018 Doug Ledford - 16.2-1 +- Update to rdma-core-16.2 +- Drop the old sysv initscript files + +* Wed Aug 09 2017 Jarod Wilson - 14-4 +- Make use of systemd_requires, own srp_daemon dir + +* Tue Aug 01 2017 Jarod Wilson - 14-3 +- Revert work-around for ppc64le library issues +- Add Obsoletes/Provides for libusnic_verbs + +* Thu Jul 27 2017 Fedora Release Engineering - 14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jul 25 2017 Jarod Wilson - 14-1 +- Update to upstream v14 release +- Sync packaging updates from RHEL and upstream + +* Sat Feb 11 2017 Fedora Release Engineering - 12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 27 2017 Jarod Wilson - 12-1 +- Update to upstream final v12 release + +* Wed Jan 25 2017 Jarod Wilson - 12-0.1.rc3.1 +- Initial import to Fedora package database via post-v12-rc3 git snapshot diff --git a/cgmanifest.json b/cgmanifest.json index c1bdcd14508..7f98faf736c 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -25698,6 +25698,16 @@ } } }, + { + "component": { + "type": "other", + "other": { + "name": "rdma-core", + "version": "55.0", + "downloadUrl": "https://github.com/linux-rdma/rdma-core/releases/download/v55.0/rdma-core-55.0.tar.gz" + } + } + }, { "component": { "type": "other", From bc46c788bb840b5b06c8d92e5ebe3b1a5cc404d6 Mon Sep 17 00:00:00 2001 From: Elaheh Dehghani <108492863+ellie-di@users.noreply.github.com> Date: Fri, 17 Jan 2025 16:24:32 -0800 Subject: [PATCH 036/163] Add kernel-srpm-macros package (#11551) --- LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md | 2 +- LICENSES-AND-NOTICES/SPECS/data/licenses.json | 1 + .../kernel-srpm-macros/brp-kmod-restore-perms | 28 ++ .../kernel-srpm-macros/brp-kmod-set-exec-bit | 14 + SPECS/kernel-srpm-macros/find-provides.ksyms | 138 +++++++ SPECS/kernel-srpm-macros/find-requires.ksyms | 188 ++++++++++ SPECS/kernel-srpm-macros/firmware.prov | 14 + SPECS/kernel-srpm-macros/kabi.attr | 2 + SPECS/kernel-srpm-macros/kabi.sh | 22 ++ .../kernel-srpm-macros.signatures.json | 21 ++ .../kernel-srpm-macros.spec | 220 +++++++++++ SPECS/kernel-srpm-macros/kmod.attr | 54 +++ SPECS/kernel-srpm-macros/kmodtool | 346 ++++++++++++++++++ SPECS/kernel-srpm-macros/macros.kernel-srpm | 3 + SPECS/kernel-srpm-macros/macros.kmp | 94 +++++ SPECS/kernel-srpm-macros/modalias.attr | 2 + SPECS/kernel-srpm-macros/modalias.prov | 128 +++++++ SPECS/kernel-srpm-macros/provided_ksyms.attr | 2 + SPECS/kernel-srpm-macros/required_ksyms.attr | 4 + SPECS/kernel-srpm-macros/rpmsort | 76 ++++ SPECS/kernel-srpm-macros/symset-table | 40 ++ cgmanifest.json | 10 + 22 files changed, 1408 insertions(+), 1 deletion(-) create mode 100755 SPECS/kernel-srpm-macros/brp-kmod-restore-perms create mode 100755 SPECS/kernel-srpm-macros/brp-kmod-set-exec-bit create mode 100755 SPECS/kernel-srpm-macros/find-provides.ksyms create mode 100755 SPECS/kernel-srpm-macros/find-requires.ksyms create mode 100644 SPECS/kernel-srpm-macros/firmware.prov create mode 100644 SPECS/kernel-srpm-macros/kabi.attr create mode 100644 SPECS/kernel-srpm-macros/kabi.sh create mode 100644 SPECS/kernel-srpm-macros/kernel-srpm-macros.signatures.json create mode 100644 SPECS/kernel-srpm-macros/kernel-srpm-macros.spec create mode 100644 SPECS/kernel-srpm-macros/kmod.attr create mode 100755 SPECS/kernel-srpm-macros/kmodtool create mode 100644 SPECS/kernel-srpm-macros/macros.kernel-srpm create mode 100644 SPECS/kernel-srpm-macros/macros.kmp create mode 100644 SPECS/kernel-srpm-macros/modalias.attr create mode 100755 SPECS/kernel-srpm-macros/modalias.prov create mode 100644 SPECS/kernel-srpm-macros/provided_ksyms.attr create mode 100644 SPECS/kernel-srpm-macros/required_ksyms.attr create mode 100755 SPECS/kernel-srpm-macros/rpmsort create mode 100755 SPECS/kernel-srpm-macros/symset-table diff --git a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md index 5fcd03e11c9..69b9f2f6927 100644 --- a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md +++ b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md @@ -5,7 +5,7 @@ The Azure Linux SPEC files originated from a variety of sources with varying lic | CentOS | [MIT](https://www.centos.org/legal/#licensing-policy) | crash-ptdump-command
delve
fstrm
nodejs-nodemon
rhnlib
rt-setup
rt-tests
rtctl
tuned | | Ceph source | [LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1) | ceph | | Debian | [MIT](https://opensource.org/licenses/MIT) | prometheus-process-exporter | -| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | 389-ds-base
a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capnproto
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpufrequtils
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dhcpcd
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libcxx
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbusmenu
libdc1394
libdecor
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libei
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmd
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libxcvt
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mosh
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp-streams
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-pp
ocaml-ppx-derivers
ocaml-ppx-here
ocaml-ppx-let
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-srpm-macros
ocaml-stdio
ocaml-stdlib-random
ocaml-topkg
ocaml-tyxml
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Refcount
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Match-Simple
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Infix
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-apcu
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
pssh
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-argparse-manpage
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-backoff
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-iniconfig
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-junitxml
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-prometheus_client
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyproject-metadata
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmautospec-core
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xlrd
python-xlsxwriter
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rr
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
shim-unsigned-aarch64
shim-unsigned-x64
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stress-ng
stunnel
subscription-manager
subunit
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-server-Xwayland
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib | +| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | 389-ds-base
a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capnproto
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpufrequtils
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dhcpcd
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kernel-srpm-macros
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libcxx
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbusmenu
libdc1394
libdecor
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libei
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmd
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libxcvt
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mosh
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp-streams
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-pp
ocaml-ppx-derivers
ocaml-ppx-here
ocaml-ppx-let
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-srpm-macros
ocaml-stdio
ocaml-stdlib-random
ocaml-topkg
ocaml-tyxml
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Refcount
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Match-Simple
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Infix
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-apcu
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
pssh
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-argparse-manpage
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-backoff
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-iniconfig
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-junitxml
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-prometheus_client
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyproject-metadata
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmautospec-core
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xlrd
python-xlsxwriter
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rr
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
shim-unsigned-aarch64
shim-unsigned-x64
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stress-ng
stunnel
subscription-manager
subunit
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-server-Xwayland
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib | | Fedora (Copyright Remi Collet) | [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode) | libmemcached-awesome
librabbitmq | | Fedora (ISC) | [ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE) | python-resolvelib | | Magnus Edenhill Open Source | [Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING) | librdkafka | diff --git a/LICENSES-AND-NOTICES/SPECS/data/licenses.json b/LICENSES-AND-NOTICES/SPECS/data/licenses.json index 086ec693df5..be3ff0c5c10 100644 --- a/LICENSES-AND-NOTICES/SPECS/data/licenses.json +++ b/LICENSES-AND-NOTICES/SPECS/data/licenses.json @@ -548,6 +548,7 @@ "kata-containers", "kde-filesystem", "kde-settings", + "kernel-srpm-macros", "kexec-tools", "keybinder3", "keycloak-httpd-client-install", diff --git a/SPECS/kernel-srpm-macros/brp-kmod-restore-perms b/SPECS/kernel-srpm-macros/brp-kmod-restore-perms new file mode 100755 index 00000000000..ffabefc2307 --- /dev/null +++ b/SPECS/kernel-srpm-macros/brp-kmod-restore-perms @@ -0,0 +1,28 @@ +#! /bin/bash -efu + +## A counterpart of brp-kmod-set-exec-bits that restores original kmod +## file permissions + +# If using normal root, avoid changing anything. +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] || exit 0 + +# Checking for required programs +which chmod >/dev/null || exit 0 + +[ -r "$RPM_BUILD_ROOT/kmod-permissions.list" ] || exit 0 + +while read perm path; do + [ -n "$perm" ] || continue + + # Account for possible kernel module compression + [ -e "$RPM_BUILD_ROOT/$path" ] || { + [ \! -e "$RPM_BUILD_ROOT/$path.gz" ] || path="$path.gz" + [ \! -e "$RPM_BUILD_ROOT/$path.bz2" ] || path="$path.bz2" + [ \! -e "$RPM_BUILD_ROOT/$path.xz" ] || path="$path.xz" + [ \! -e "$RPM_BUILD_ROOT/$path.zst" ] || path="$path.zst" + } + + chmod "$perm" "$RPM_BUILD_ROOT/$path" +done < "$RPM_BUILD_ROOT/kmod-permissions.list" + +rm -f "$RPM_BUILD_ROOT/kmod-permissions.list" diff --git a/SPECS/kernel-srpm-macros/brp-kmod-set-exec-bit b/SPECS/kernel-srpm-macros/brp-kmod-set-exec-bit new file mode 100755 index 00000000000..eccd5b4c1d9 --- /dev/null +++ b/SPECS/kernel-srpm-macros/brp-kmod-set-exec-bit @@ -0,0 +1,14 @@ +#! /bin/bash -efux + +## A hack for making brp-strip taking into account kmod files + +# If using normal root, avoid changing anything. +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] || exit 0 + +# Checking for required programs +which find chmod >/dev/null || exit 0 + +find "$RPM_BUILD_ROOT" \ + -name '*.ko' \ + -printf '%#m %P\n' \ + -exec chmod u+x '{}' \; > "$RPM_BUILD_ROOT/kmod-permissions.list" diff --git a/SPECS/kernel-srpm-macros/find-provides.ksyms b/SPECS/kernel-srpm-macros/find-provides.ksyms new file mode 100755 index 00000000000..230fc09d8fb --- /dev/null +++ b/SPECS/kernel-srpm-macros/find-provides.ksyms @@ -0,0 +1,138 @@ +#! /bin/bash + +IFS=$'\n' +export LC_ALL=C + +# Prevent elfutils from trying to download debuginfos +unset DEBUGINFOD_URLS + +for module in $(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz|\.zst)?$') "$@"; do + dep_pfx="ksym" + # For built-in kmods, "kernel()" syntax is used instead of "ksym()" + printf "%s" "$module" | grep -v "^${RPM_BUILD_ROOT}/\?lib/modules/[1-9][^/]*/kernel" > /dev/null \ + || dep_pfx="kernel" + + tmpfile="" + if [ "x${module%.ko}" = "x${module}" ]; then + tmpfile=$(mktemp -t ${0##*/}.XXXXXX.ko) + proc_bin= + case "${module##*.}" in + zst) + proc_bin=zstd + ;; + xz) + proc_bin=xz + ;; + bz2) + proc_bin=bzip2 + ;; + gz) + proc_bin=gzip + ;; + esac + + [ -n "$proc_bin" ] || continue + + "$proc_bin" -d -c - < "$module" > "$tmpfile" || continue + module="$tmpfile" + fi + + # A modversion can be stored as an ELF symbol in various ways: + # - An immediate symbol whose value is available directly; it shows up + # in the nm or objdump -t output, for example: + # $ nm mlx5_core_5.14.x86_64.ko | grep '__crc_' | head -n 3 + # 0000000092f175ca A __crc_mlx5_access_reg + # 000000005b88c9f1 A __crc_mlx5_add_flow_rules + # 00000000e7c0ec8a A __crc_mlx5_alloc_bfreg + # $ objdump -t lib/modules/mlx5_core_5.14.x86_64.ko | grep __crc_ | sort -k 5,5 | head -n 3 + # 0000000092f175ca g *ABS* 0000000000000000 __crc_mlx5_access_reg + # 000000005b88c9f1 g *ABS* 0000000000000000 __crc_mlx5_add_flow_rules + # 00000000e7c0ec8a g *ABS* 0000000000000000 __crc_mlx5_alloc_bfreg + # $ zgrep mlx5_access_reg ./lib/modules/5.14.0-284.15.1.el9_2.x86_64/symvers.gz + # 0x92f175ca mlx5_access_reg drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL + # This approach was being used on x86 and arm before Linux 5.19, + # for example. + # + # - A globally or locally visible symbol in a read-only (or not; + # sometimes .rodata is not a read-only section, after all, as binutils + # commit binutils-2_33~1385 has revealed (and binutils-2_35~1768 hasn't + # concealed back)) section (historically .rodata, __kcrctab/__kcrctab_gpl + # since Linux v5.19-rc1~139^2~2): + # $ nm mlx5_core_5.14.s390x.ko | grep '__crc_' | head -n 3 + # 0000000000002f7c R __crc_mlx5_access_reg + # 0000000000003304 R __crc_mlx5_add_flow_rules + # 0000000000002d2c R __crc_mlx5_alloc_bfreg + # This layout is used on ppc since Linux v4.10-rc7~15^2~1, for example, + # and on all architectures since Linux 5.19. To extract the symbol + # versions in this case, we get the offset and the section name + # from the "objdump -t" output: + # $ objdump -t lib/modules/mlx5_core_5.14.s390x.ko | grep '__crc_' | sort -k 5,5 | head -n 2 + # 0000000000002f7c g .rodata 0000000000000000 __crc_mlx5_access_reg + # 0000000000003304 g .rodata 0000000000000000 __crc_mlx5_add_flow_rules + # and the section contents from the "readelf -R" call: + # $ readelf -R .rodata mlx5_core_5.14.s390x.ko + # [... skipped output ...] + # 0x00002f70 6c6f635f 6e6f6465 00000000 ed6560a8 loc_node.....e`. + # ^^^^^^^^ + # comparison with the contents + # of lib/modules/5.14.0-284.15.1.el9_2.s390x/symvers.gz corroborates + # its correctness: + # 0xed6560a8 mlx5_access_reg drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL + # As mentioned earlier, for the later kernel versions, __kcrctab{,_gpl} + # sections are used: + # $ objdump -t lib/modules/mlx5_core_6.4.x86_64.ko | grep '__crc_' | sort -k 5,5 | head -n 2 + # 0000000000000000 l __kcrctab_gpl 0000000000000000 __crc_mlx5_access_reg + # 0000000000000090 l __kcrctab 0000000000000000 __crc_mlx5_add_flow_rules + # $ readelf -R __kcrctab_gpl mlx5_core_6.4.x86_64.ko + # 0x00000000 38b0d3c3 1840ce35 b99babc7 70b4700c 8....@.5....p.p. + # ^^^^^^^^ + # and in lib/modules/6.4.0-0.rc1.20230511git80e62bc8487b.19.eln126.x86_64/symvers.xz + # we see that it is correct (when accounted for the little endianness): + # 0xc3d3b038 mlx5_access_reg drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL + # This data, after some post-processing, can be used in the awk script + # that extracts parts of the section according to the offsets got + # from the "objdump -t" output. + objdump -t "$module" \ + | awk \ + -v 'dep_pfx='"$dep_pfx" \ + -v 'module='"$module" \ + --non-decimal-data \ + 'BEGIN { revbytes = 0 } + + function check_endianness( t) { + if (revbytes) return revbytes; + + revbytes = -1; + while (("readelf -h \"" module "\"" | getline t) > 0) { + if (match(t, /^ Data: *2\047s complement, little endian$/)) { + revbytes = 1; + break; + } + } + + return revbytes; + } + + function readsect(name, a, t) { + a = ""; + while (("readelf -R \"" name "\" \"" module "\"" | getline t) > 0) { + if (match(t, /^ 0x[0-9a-f]{8}/)) + a = a substr(t, 14, 8) substr(t, 23, 8) substr(t, 32, 8) substr(t, 41, 8); + } + if (check_endianness() == 1) + a = gensub(/(..)(..)(..)(..)/, "\\4\\3\\2\\1", "g", a); + sectdata[name] = a; + } + + match($0, /^([0-9a-f]+) [gl]...... (.*) [0-9a-f]+ __crc_(.*)$/, a) { + if (a[2] == "*ABS*") { + printf("%s(%s) = 0x%08x\n", dep_pfx, a[3], strtonum("0x" a[1])); + } else { + if (!(a[2] in sectdata)) { readsect(a[2]) } + printf("%s(%s) = 0x%08s\n", dep_pfx, a[3], substr(sectdata[a[2]], (strtonum("0x" a[1]) * 2) + 1, 8)) + } + }' + + [ -z "$tmpfile" ] || rm -f -- "$tmpfile" +done \ +| sort -k1,1 -u diff --git a/SPECS/kernel-srpm-macros/find-requires.ksyms b/SPECS/kernel-srpm-macros/find-requires.ksyms new file mode 100755 index 00000000000..8ac7c40fba1 --- /dev/null +++ b/SPECS/kernel-srpm-macros/find-requires.ksyms @@ -0,0 +1,188 @@ +#! /bin/bash +# +# This script is called during external module building to create dependencies +# both upon the RHEL kernel, and on additional external modules. Symbols that +# cannot be reconciled against those provided by the kernel are assumed to be +# provided by an external module and "ksym" replaces th regular "kernel" dep. + +IFS=$'\n' +export LC_ALL=C + +# Prevent elfutils from trying to download debuginfos +unset DEBUGINFOD_URLS + +# Extract all of the symbols provided by this module. +all_provides() { + for module in "$@"; do + tmpfile="" + if [ "x${module%.ko}" = "x${module}" ]; then + tmpfile=$(mktemp -t ${0##*/}.XXXXXX.ko) + proc_bin= + case "${module##*.}" in + zst) + proc_bin=zstd + ;; + xz) + proc_bin=xz + ;; + bz2) + proc_bin=bzip2 + ;; + gz) + proc_bin=gzip + ;; + esac + + [ -n "$proc_bin" ] || continue + + "$proc_bin" -d -c - < "$module" > "$tmpfile" || continue + module="$tmpfile" + fi + + objdump -t "$module" \ + | awk \ + -v 'dep_pfx='"$dep_pfx" \ + -v 'module='"$module" \ + --non-decimal-data \ + 'BEGIN { revbytes = 0 } + + function check_endianness( t) { + if (revbytes) return revbytes; + + revbytes = -1; + while (("readelf -h \"" module "\"" | getline t) > 0) { + if (match(t, /^ Data: *2\047s complement, little endian$/)) { + revbytes = 1; + break; + } + } + + return revbytes; + } + + function readsect(name, a, t) { + a = ""; + while (("readelf -R \"" name "\" \"" module "\"" | getline t) > 0) { + if (match(t, /^ 0x[0-9a-f]{8}/)) + a = a substr(t, 14, 8) substr(t, 23, 8) substr(t, 32, 8) substr(t, 41, 8); + } + if (revbytes) { a = gensub(/(..)(..)(..)(..)/, "\\4\\3\\2\\1", "g", a); } + sectdata[name] = a; + } + + match($0, /^([0-9a-f]+) [gl]...... (.*) [0-9a-f]+ __crc_(.*)$/, a) { + if (a[2] == "*ABS*") { + printf("%s(%s) = 0x%08x\n", dep_pfx, a[3], strtonum("0x" a[1])); + } else { + if (!(a[2] in sectdata)) { readsect(a[2]) } + printf("%s(%s) = 0x%08s\n", dep_pfx, a[3], substr(sectdata[a[2]], (strtonum("0x" a[1]) * 2) + 1, 8)) + } + }' + + [ -z "$tmpfile" ] || rm -f -- "$tmpfile" + done \ + | sort -k1,1 -u +} + +# Extract all of the requirements of this module. +all_requires() { + for module in "$@"; do + set -- $(/sbin/modinfo -F vermagic "$module" | sed -e 's: .*::' -e q) + /sbin/modprobe --dump-modversions "$module" \ + | awk --non-decimal-data ' + BEGIN { FS = "\t" ; OFS = "\t" } + {printf("%s:0x%08x\n", $2, $1)}' \ + | sed -r -e 's:$:\t'"$1"':' + done \ + | sort -k1,1 -u +} + +# Filter out requirements fulfilled by the module itself. +mod_requires() { + join -t $'\t' -j 1 -v 1 \ + <(all_requires "$@") \ + <(all_provides "$@") \ + | sort -k1,1 -u +} + +if ! [ -e /sbin/modinfo -a -e /sbin/modprobe ]; then + cat > /dev/null + exit 0 +fi + +check_kabi() { + arch=$(uname -m) + kabi_file="/lib/modules/kabi-current/kabi_stablelist_$arch" + + # If not installed, output a warning and return (continue) + if [ ! -f "$kabi_file" ]; then + echo "" >&2 + echo "********************************************************************************" >&2 + echo "*********************** KERNEL ABI COMPATIBILITY WARNING ***********************" >&2 + echo "********************************************************************************" >&2 + echo "The kernel ABI reference files (provided by "kabi-stablelists") were not found." >&2 + echo "No compatibility check was performed. Please install the kABI reference files" >&2 + echo "and rebuild if you would like to verify compatibility with kernel ABI." >&2 + echo "" >&2 + return + fi + + unset non_kabi + for symbol in "$@"; do + if ! egrep "^[[:space:]]$symbol\$" $kabi_file >/dev/null; then + non_kabi=("${non_kabi[@]}" "$symbol") + fi + done + + if [ ${#non_kabi[@]} -gt 0 ]; then + echo "" >&2 + echo "********************************************************************************" >&2 + echo "*********************** KERNEL ABI COMPATIBILITY WARNING ***********************" >&2 + echo "********************************************************************************" >&2 + echo "The following kernel symbols are not guaranteed to remain compatible with" >&2 + echo "future kernel updates to this RHEL release:" >&2 + echo "" >&2 + for symbol in "${non_kabi[@]}"; do + printf "\t$symbol\n" >&2 + done + echo "" >&2 + echo "Red Hat recommends that you consider using only official kernel ABI symbols" >&2 + echo "where possible. Requests for additions to the kernel ABI can be filed with" >&2 + echo "your partner or customer representative (component: driver-update-program)." >&2 + echo "" >&2 + fi +} + +modules=($(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz|\.zst)?$') "$@") +if [ ${#modules[@]} -gt 0 ]; then + kernel=$(/sbin/modinfo -F vermagic "${modules[0]}" | sed -e 's: .*::' -e q) + + # get all that kernel provides + symvers=$(mktemp -t ${0##*/}.XXXXX) + + cat /usr/src/kernels/$kernel/Module.symvers | awk ' + BEGIN { FS = "\t" ; OFS = "\t" } + { print $2 ":" $1 } + ' \ + | sed -r -e 's:$:\t'"$kernel"':' \ + | sort -k1,1 -u > $symvers + + # Symbols matching with the kernel get a "kernel" dependency + mod_req=$(mktemp -t mod_req.XXXXX) + mod_requires "${modules[@]}" > "$mod_req" + join -t $'\t' -j 1 $symvers "$mod_req" | sort -u \ + | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print "kernel(" $1 ") = " $2 }' + + # Symbols from elsewhere get a "ksym" dependency + join -t $'\t' -j 1 -v 2 $symvers "$mod_req" | sort -u \ + | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print "ksym(" $1 ") = " $2 }' + + os_id=$(sed -nr '/^ID[[:space:]]*=/{ s/ID[[:space:]]*=[[:space:]]*//; s/^"(.*)"$/\1/; p }' /etc/os-release) + if [ "rhel" = "$os_id" ]; then + # Check kABI if the kabi-stablelists package is installed + # Do this last so we can try to output this error at the end + kabi_check_symbols=($(join -t $'\t' -j 1 $symvers "$mod_req" | sort -u \ + | awk 'BEGIN { FS = "[\t:]" ; OFS = "\t" } { print $1 }')) + check_kabi "${kabi_check_symbols[@]}" + fi +fi diff --git a/SPECS/kernel-srpm-macros/firmware.prov b/SPECS/kernel-srpm-macros/firmware.prov new file mode 100644 index 00000000000..8c5b7e4d798 --- /dev/null +++ b/SPECS/kernel-srpm-macros/firmware.prov @@ -0,0 +1,14 @@ +#!/bin/sh +# +# firmware.prov - Automatically extract any and all firmware dependencies from +# kernel object (.ko) files and add to RPM deps. + +IFS=$'\n' + +for module in $(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz|\.zst)?$') $*; +do + for firmware in `/sbin/modinfo -F firmware $module`; + do + echo "firmware($firmware)" + done +done diff --git a/SPECS/kernel-srpm-macros/kabi.attr b/SPECS/kernel-srpm-macros/kabi.attr new file mode 100644 index 00000000000..5500b1730c2 --- /dev/null +++ b/SPECS/kernel-srpm-macros/kabi.attr @@ -0,0 +1,2 @@ +%__kabi_provides %{_rpmconfigdir}/kabi.sh +%__kabi_path ^(/boot/symvers-.*|/lib/modules/[1-9].*/symvers)\.(gz|xz)$ diff --git a/SPECS/kernel-srpm-macros/kabi.sh b/SPECS/kernel-srpm-macros/kabi.sh new file mode 100644 index 00000000000..dd49b8b291b --- /dev/null +++ b/SPECS/kernel-srpm-macros/kabi.sh @@ -0,0 +1,22 @@ +#!/bin/bash +x +# +# kabi.sh - Automatically extract any kernel symbol checksum from the +# symvers file and add to RPM deps. This is used to move the +# checksum checking from modprobe to rpm install for 3rd party +# modules (so they can fail during install and not at load). + +IFS=$'\n' + +for symvers in $(grep -E '(/boot/symvers-.*|/lib/modules/[1-9].*/symvers)\.(gz|xz)') "$@"; +do + cat_prog="cat" + case "$symvers" in + *.gz) cat_prog="zcat" ;; + *.xz) cat_prog="xzcat" ;; + esac + + # We generate dependencies only for symbols exported by vmlinux itself + # and not for kmods here as they are spread across subpackages, + # so Provides: generation for kmods is handled by find-provides.ksyms. + "$cat_prog" "$symvers" | awk '/[^ ]* [^ ]* vmlinux .*/ { print "kernel(" $2 ") = " $1 }' +done diff --git a/SPECS/kernel-srpm-macros/kernel-srpm-macros.signatures.json b/SPECS/kernel-srpm-macros/kernel-srpm-macros.signatures.json new file mode 100644 index 00000000000..79b02fc6601 --- /dev/null +++ b/SPECS/kernel-srpm-macros/kernel-srpm-macros.signatures.json @@ -0,0 +1,21 @@ +{ + "Signatures": { + "macros.kernel-srpm": "1cc89ac40a9d8eb30914917f62e1cf793c744510104a7b7870668bfc9d39f94c", + "macros.kmp": "407b4a425b3499fdcc78003ae3c3557da636e9a778390d7049c8e0756e158fb2", + "find-provides.ksyms": "c28ff43f881d347c82d2147daccd52e741d1e5b9389b57b0b2bc8c2a82b27808", + "find-requires.ksyms": "647a54a4d77f1c7a613e3ca4d073624adbe25f77e809c7142a738fb8f44b7885", + "firmware.prov": "0eb0052e964c1c2675b37bf078886cb564154fa686b2dc2556213f6be01c97a3", + "modalias.prov": "75cd6a3ba82831a86974004f5e1a4c5c23f7a10380e1ffab26a2ee7123668dc5", + "provided_ksyms.attr": "122c82aad04d824e35b568c8ff8773cfa65a5b78b394422cf7b0e28b5672e810", + "required_ksyms.attr": "e65bdc243a60e31120ad63870294a5a1b24c6f448667c0bd2bbaff218266cdd3", + "modalias.attr": "5cce7f849c9844017fafb54ec858266c97dc2099ca8bbd89e8259a20f4dd4a70", + "kmod.attr": "5c224344d0ad392236b184b9ee0939f24ca48a332688643c8aa8913ee3025339", + "kmodtool": "691b7231216616c26e170abc875199f0cfcbdd22380364bd6f91bc3c5514db54", + "rpmsort": "8ec77fd7087f4b22b5f2701272fc3fcbd460e78a3b1238d3c3ddc1f4e877e4ee", + "symset-table": "0e4f878d9d9f123b5e80678135511a48161d5d728efff9f1d4672687885426a3", + "kabi.attr": "5837779d0ea4bb35d5ec34885bc966a0e955cfd2f9f968edcd36097a59c6e69a", + "kabi.sh": "8298974fc5d860759da00583706679eedaa64a79343cf19a1692014f9e595ac9", + "brp-kmod-set-exec-bit": "2bffc9b96300203a49d409757d370aac4acb4e780a82f82cf4fa2be43c6efeb1", + "brp-kmod-restore-perms": "76548fc932ff5fa4da3dc16afebd9edfb42534b00de22d3bd0632b60622790f4" + } +} \ No newline at end of file diff --git a/SPECS/kernel-srpm-macros/kernel-srpm-macros.spec b/SPECS/kernel-srpm-macros/kernel-srpm-macros.spec new file mode 100644 index 00000000000..4fc4c350439 --- /dev/null +++ b/SPECS/kernel-srpm-macros/kernel-srpm-macros.spec @@ -0,0 +1,220 @@ +Name: kernel-srpm-macros +Version: 1.0 +# when bumping version and resetting release, don't forget to bump version of kernel-rpm-macros as well +Release: 25%{?dist} +Summary: RPM macros that list arches the full kernel is built on +# This package only exist in Fedora repositories +# The license is the standard (MIT) specified in +# Fedora Project Contribution Agreement +# and as URL we provide dist-git URL +License: MIT +Vendor: Microsoft Corporation +Distribution: Azure Linux +URL: https://src.fedoraproject.org/rpms/kernel-srpm-macros +BuildArch: noarch +# We are now the ones shipping kmod.attr +Conflicts: redhat-rpm-config < 205 +# macros.kmp, kmodtool and rpmsort were moved from kernel-rpm-macros +# to kernel-srpm-macros in 1.0-9/185-9 +Conflicts: kernel-rpm-macros < 205 + +# Macros +Source001: macros.kernel-srpm +Source002: macros.kmp + +# Dependency generator scripts +Source100: find-provides.ksyms +Source101: find-requires.ksyms +Source102: firmware.prov +Source103: modalias.prov +Source104: provided_ksyms.attr +Source105: required_ksyms.attr +Source106: modalias.attr + +# Dependency generators & their rules +Source200: kmod.attr + +# Misc helper scripts +Source300: kmodtool +Source301: rpmsort +Source302: symset-table + +# kabi provides generator +Source400: kabi.attr +Source401: kabi.sh + +# BRPs +Source500: brp-kmod-set-exec-bit +Source501: brp-kmod-restore-perms + +%global rrcdir /usr/lib/rpm/redhat + + +%description +This packages contains the rpm macro that list what arches +the full kernel is built on. +The variable to use is kernel_arches. + +%package -n kernel-rpm-macros +Version: 205 +Summary: Macros and scripts for building kernel module packages +# rpmsort is GPL-2.0-or-later +License: MIT AND GPL-2.0-or-later +Requires: redhat-rpm-config >= 205 + +# for brp-kmod-compress +Requires: xz +# for brp-kmod-compress, brp-kmod-set-exec-bit +Requires: findutils +# for find-provides.ksyms, find-requires.ksyms, kmodtool +Requires: sed +# for find-provides.ksyms, find-requires.ksyms +Requires: gawk +Requires: grep +Requires: binutils +# for find-requires.ksyms +Requires: kmod + +%description -n kernel-rpm-macros +Macros and scripts for building kernel module packages. + +%prep +# Not strictly necessary but allows working on file names instead +# of source numbers in install section +%setup -c -T +cp -p %{sources} . + +%build +# nothing to do + +%install +mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d +install -p -m 0644 -t %{buildroot}/%{_rpmconfigdir}/macros.d macros.kernel-srpm +%if 0%{?rhel} >= 8 + sed -i 's/^%%kernel_arches.*/%%kernel_arches x86_64 s390x ppc64le aarch64/' \ + %{buildroot}/%{_rpmconfigdir}/macros.d/macros.kernel-srpm +%endif + +mkdir -p %{buildroot}%{rrcdir}/find-provides.d +mkdir -p %{buildroot}%{_fileattrsdir} +install -p -m 755 -t %{buildroot}%{rrcdir} kmodtool rpmsort symset-table +install -p -m 755 -t %{buildroot}%{rrcdir} find-provides.ksyms find-requires.ksyms +install -p -m 755 -t %{buildroot}%{rrcdir}/find-provides.d firmware.prov modalias.prov +install -p -m 755 -t %{buildroot}%{rrcdir} brp-kmod-restore-perms brp-kmod-set-exec-bit +install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d macros.kmp +install -p -m 644 -t %{buildroot}%{_fileattrsdir} kmod.attr + +install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" kabi.attr +install -p -m 755 -t "%{buildroot}%{_rpmconfigdir}" kabi.sh + +install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" provided_ksyms.attr required_ksyms.attr +install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" modalias.attr + +%files +%{_rpmconfigdir}/macros.d/macros.kernel-srpm +%{_fileattrsdir}/kmod.attr + +%files -n kernel-rpm-macros +%{_rpmconfigdir}/macros.d/macros.kmp +%{_rpmconfigdir}/kabi.sh +%{_fileattrsdir}/kabi.attr +%{_fileattrsdir}/modalias.attr +%{_fileattrsdir}/provided_ksyms.attr +%{_fileattrsdir}/required_ksyms.attr +%dir %{rrcdir}/find-provides.d +%{rrcdir}/brp-kmod-restore-perms +%{rrcdir}/brp-kmod-set-exec-bit +%{rrcdir}/symset-table +%{rrcdir}/find-provides.ksyms +%{rrcdir}/find-requires.ksyms +%{rrcdir}/find-provides.d/firmware.prov +%{rrcdir}/find-provides.d/modalias.prov +%{rrcdir}/kmodtool +%{rrcdir}/rpmsort + +%changelog +* Tue Dec 17 2024 Elaheh Dehghani - 1.0-25 +- Initial CBL-Mariner import from Fedora 41 (license: MIT). +- License verified. + +* Thu Jul 18 2024 Fedora Release Engineering - 1.0-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Mar 06 2024 David Abdurachmanov - 1.0-23 +- Add riscv64 + +* Wed Jan 24 2024 Fedora Release Engineering - 1.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 1.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 09 2023 Eugene Syromiatnikov - 1.0-19 +- Capture local __crc_* symbols for "Provides: kernel()". +- Add support for XZ compression for the symvers file. +- Fix "Provides: kernel()" generation when both __kcrctab and __kcrctab_gpl + are present. +- Fix regression for "Provides:" generation in cases when modversions are stored + in a section that is over 64K in size. +- Speedup and cleanup changes in find-provides.ksyms and find-requires.ksyms. +- Fix regex usage in kmod.attr. (Denys Vlasenko) +- Implement modalias "Provides:" grouping. (Denys Vlasenko) +- Speedup and cleanup changes in modalias.prov and kmod.attr. (Denys Vlasenko) + +* Tue Mar 30 2023 Eugene Syromiatnikov - 1.0-18 +- Avoid triggering debuginfod during elfutils tools usage. + +* Tue Jan 31 2023 Eugene Syromiatnikov - 1.0-17 +- Support storing of __crc_* symbols in sections other than .rodata. +- Work around a change in type of __crc_* symbols for some kmods printed by nm + on ppc64le and s390x. + +* Thu Jan 19 2023 Fedora Release Engineering - 1.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 1.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 1.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Nov 18 2021 Miro Hrončok - 1.0-13 +- Bump kernel-rpm-macros to 205 to provide clear upgrade path + +* Thu Nov 18 2021 Miro Hrončok - 1.0-12 +- Correct conflicts to redhat-rpm-macros < 205 +- Move Perl scripts back to kernel-rpm-macros to avoid Perl in the default buildroot + +* Thu Nov 18 2021 Eugene Syromiatnikov - 1.0-11 +- Add conflicts of redhat-rpm-macros < 204 as macros.kmp, kmodtool, + and rpmsort were moved from the latter to the former. +- Remove RHEL-specific kABI bits from find-requires.ksyms and macros.kmp. + +* Thu Nov 18 2021 Eugene Syromiatnikov - 1.0-10 +- Add conflicts of kernel-srpm-macros with kernel-rpm-macros < 185-9 + as macros.kmp, kmodtool, and rpmsort were moved from the latter + to the former. + +* Thu Nov 18 2021 Eugene Syromiatnikov - 1.0-9 +- Update scripts with RHEL-specific changes. + +* Thu Jul 22 2021 Fedora Release Engineering - 1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 03 2021 Michal Domonkos - 1.0-5 +- Adopt kernel-rpm-macros & kmod.attr subpackage from redhat-rpm-config + +* Tue Jan 26 2021 Fedora Release Engineering - 1.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Aug 04 2020 Merlin Mathesius - 1.0-3 +- Escape percent for %%kernel_arches macro + +* Tue Jul 28 2020 Fedora Release Engineering - 1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 21 2020 Troy Dawson - 1.0-1 +- Initial build \ No newline at end of file diff --git a/SPECS/kernel-srpm-macros/kmod.attr b/SPECS/kernel-srpm-macros/kmod.attr new file mode 100644 index 00000000000..8c57d0b7a16 --- /dev/null +++ b/SPECS/kernel-srpm-macros/kmod.attr @@ -0,0 +1,54 @@ +%__kmod_path ^/lib/modules/.*/(modules.builtin|.*\.ko|.*\.ko\.gz|.*\.ko\.bz2|.*\.ko\.xz|.*\.ko\.zst)$ + +# Notes on Lua: +# The backslash in strings (like "\n" newline) needs to be doubled +# because we are inside rpm macro. Single backslashes before most chars +# disappear (removed by rpm's parser), so "\n" turns into just "n". +# In string.gsub patterns, unlike regexps, backslash has no special meaning. +# It can't escape . and such. (Use one-character set [.] to represent +# literal period, or lua's percent escape: %.) +# Pipe (|) has no special meaning too. + +%__kmod_provides() %{lua: + function basename(fn) + local b = string.gsub(fn, ".*/", "") + -- the above adjusts gsub() result to 1 value + -- "return f()" construct would return _all_ values, two in case of gsub() + return b + end + function strip_compress_sfx(fn) + local cnt + fn, cnt = string.gsub(fn, "%.gz$", "") + if cnt == 1 then return fn; end + fn, cnt = string.gsub(fn, "%.bz2$", "") + if cnt == 1 then return fn; end + fn, cnt = string.gsub(fn, "%.xz$", "") + if cnt == 1 then return fn; end + fn, cnt = string.gsub(fn, "%.zst$", "") + return fn + end + function printdep(mod) + print("kmod("..mod..") ") + end + local fn = rpm.expand("%1") + local bn = basename(fn) + if bn == "modules.builtin" then + for l in io.lines(fn) do + local builtin_mod = basename(l) + printdep(builtin_mod) + local nocompr = strip_compress_sfx(builtin_mod) + if nocompr ~= builtin_mod then + printdep(nocompr) + end + end + else + local mod = string.match(bn, "%g+%.ko") + if mod then + printdep(mod) + local nocompr = strip_compress_sfx(mod) + if nocompr ~= mod then + printdep(nocompr) + end + end + end +} diff --git a/SPECS/kernel-srpm-macros/kmodtool b/SPECS/kernel-srpm-macros/kmodtool new file mode 100755 index 00000000000..30669870504 --- /dev/null +++ b/SPECS/kernel-srpm-macros/kmodtool @@ -0,0 +1,346 @@ +#!/bin/bash + +# kmodtool - Helper script for building kernel module RPMs +# An original version appeared in Fedora. This version is +# generally called only by the %kernel_module_package RPM macro +# during the process of building Driver Update Packages (which +# are also known as "kmods" in the Fedora community). +# +# Copyright (c) 2003-2010 Ville Skyttä , +# Thorsten Leemhuis +# Jon Masters +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Changelog: +# +# 2010/07/28 - Add fixes for filelists in line with LF standard +# - Remove now defunct "framepointer" kernel variant +# - Change version to "rhel6-rh2" as a consequence. +# +# 2010/01/10 - Simplified for RHEL6. We are working on upstream +# moving to a newer format and in any case do not +# need to retain support for really old systems. + +shopt -s extglob + +myprog="kmodtool" +myver="0.10.10_rhel9" +knownvariants=@(debug|kdump|zfcpdump) +kmod_name= +kver= +verrel= +variant= + +get_verrel () +{ + verrel=${1:-$(uname -r)} + verrel=${verrel/%[.+]$knownvariants/} +} + +print_verrel () +{ + get_verrel "$@" + echo "${verrel}" +} + +get_variant () +{ + get_verrel "$@" + variant=${1:-$(uname -r)} + variant=${variant/#$verrel?(.+)/} + variant=${variant:-'""'} +} + +print_variant () +{ + get_variant $@ + echo "${variant}" +} + +# Detect flavor separator character. We have to do that due to +# a systemd-tailored patch for kernel spec[1][2] introduced in Fedora and then +# imported in RHEL 8 that broke all OOT kmod infrastructure for the flavored +# kernels. +# +# [1] https://lists.fedoraproject.org/pipermail/kernel/2013-June/004262.html +# [2] https://src.fedoraproject.org/rpms/kernel/c/faf25207dc86666a611c45ae3ffaf385c170bd2a +# +# $1 - kver +# $2 - variant +get_variant_char () +{ + variant="$2" + [ "$variant" != "default" ] || variant="" + + get_verrel "$1" + + variant_char="" + [ -n "$variant" ] || return 0 + + # We expect that the flavored kernel is already installed in the buildroot + variant_char="+" + [ -e "/usr/src/kernels/${verrel}+${variant}" ] && return 0 + + variant_char="." +} + +print_variant_char () +{ + get_variant_char "$@" + echo "${variant_char}" +} + +print_kernel_source () +{ + get_variant_char "$@" + echo "/usr/src/kernels/${verrel}${variant_char}${variant}" +} + +get_filelist() { + local IFS=$'\n' + filelist=($(cat)) + + if [ ${#filelist[@]} -gt 0 ]; + then + for ((n = 0; n < ${#filelist[@]}; n++)); + do + line="${filelist[n]}" + line=$(echo "$line" \ + | sed -e "s/%verrel/$verrel/g" \ + | sed -e "s/%variant/$variant/g" \ + | sed -e "s/%dashvariant/$dashvariant/g" \ + | sed -e "s/%dotvariant/$dotvariant/g" \ + | sed -e "s/\+%1/$dotvariant/g" \ + | sed -e "s/\.%1/$dotvariant/g" \ + | sed -e "s/\-%1/$dotvariant/g" \ + | sed -e "s/%2/$verrel/g") + echo "$line" + done + else + echo "%defattr(644,root,root,755)" + echo "/lib/modules/${verrel}${dotvariant}" + fi +} + + +get_rpmtemplate () +{ + local variant="${1}" + + get_variant_char "${verrel}" "${variant}" + + local dashvariant="${variant:+-${variant}}" + local dotvariant="${variant:+${variant_char}${variant}}" + + echo "%package -n kmod-${kmod_name}${dashvariant}" + + if [ -z "$kmod_provides_summary" ]; then + echo "Summary: ${kmod_name} kernel module(s)" + fi + + if [ -z "$kmod_provides_group" ]; then + echo "Group: System Environment/Kernel" + fi + + if [ ! -z "$kmod_version" ]; then + echo "Version: %{kmod_version}" + fi + + if [ ! -z "$kmod_release" ]; then + echo "Release: %{kmod_release}" + fi + + cat <= ${verrel}${dotvariant} +Provides: kernel${dashvariant}-modules >= ${verrel} +Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release} +Requires(post): /usr/sbin/depmod +Requires(postun): /usr/sbin/depmod +Requires(post): /usr/sbin/weak-modules +Requires(postun): /usr/sbin/weak-modules +EOF + + if [ "yes" != "$nobuildreqs" ] + then + cat < /dev/null || : +fi + +modules=( \$(find /lib/modules/${verrel}${dotvariant}/extra/${kmod_name} | grep -E '\.ko(\.gz|\.bz2|\.xz|\.zst)?$') ) +if [ -x "/usr/sbin/weak-modules" ]; then + printf '%s\n' "\${modules[@]}" \ + | /usr/sbin/weak-modules --add-modules +fi +EOF + +cat < /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules +EOF + +cat < /dev/null || : +fi + +modules=( \$(cat /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules) ) +rm /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules +if [ -x "/usr/sbin/weak-modules" ]; then + printf '%s\n' "\${modules[@]}" \ + | /usr/sbin/weak-modules --remove-modules +fi +EOF + +echo "%files -n kmod-${kmod_name}${dashvariant}" + +if [ "" == "$override_filelist" ]; +then + echo "%defattr(644,root,root,755)" + echo "/lib/modules/${verrel}${dotvariant}" +else + cat "$override_filelist" | get_filelist +fi +} + +print_rpmtemplate () +{ + kmod_name="${1}" + shift + kver="${1}" + get_verrel "${1}" + shift + if [ -z "${kmod_name}" ] ; then + echo "Please provide the kmodule-name as first parameter." >&2 + exit 2 + elif [ -z "${kver}" ] ; then + echo "Please provide the kver as second parameter." >&2 + exit 2 + elif [ -z "${verrel}" ] ; then + echo "Couldn't find out the verrel." >&2 + exit 2 + fi + + for variant in "$@" ; do + if [ "default" == "$variant" ]; + then + get_rpmtemplate "" + else + get_rpmtemplate "${variant}" + fi + done +} + +usage () +{ + cat <