diff --git a/SPECS-EXTENDED/buildah/CVE-2022-2990.patch b/SPECS-EXTENDED/buildah/CVE-2022-2990.patch deleted file mode 100644 index 5264aace41e..00000000000 --- a/SPECS-EXTENDED/buildah/CVE-2022-2990.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 7b961bf8391a7692468c46175ab30e03e8d777b5 Mon Sep 17 00:00:00 2001 -From: Aditya R -Date: Wed, 24 Aug 2022 08:42:23 +0530 -Subject: [PATCH] run: add container gid to additional groups - -When container is created with specific uid and gid also add container -gid to supplementary/additional group. - -Signed-off-by: Aditya R -Signed-off-by: Nalin Dahyabhai ---- - run_linux.go | 1 + - tests/bud.bats | 16 ++++++++++++ - tests/bud/supplemental-groups/Dockerfile | 3 +++ - tests/run.bats | 33 ++++++++++++++++++++++++ - 4 files changed, 53 insertions(+) - create mode 100644 tests/bud/supplemental-groups/Dockerfile - -diff --git a/run_linux.go b/run_linux.go -index d907941ed..452d62a3c 100644 ---- a/run_linux.go -+++ b/run_linux.go -@@ -1942,6 +1942,7 @@ func (b *Builder) configureUIDGID(g *generate.Generator, mountPoint string, opti - } - g.SetProcessUID(user.UID) - g.SetProcessGID(user.GID) -+ g.AddProcessAdditionalGid(user.GID) - for _, gid := range user.AdditionalGids { - g.AddProcessAdditionalGid(gid) - } -diff --git a/tests/bud.bats b/tests/bud.bats -index ff9db0609..40b847e10 100644 ---- a/tests/bud.bats -+++ b/tests/bud.bats -@@ -108,6 +108,22 @@ symlink(subdir)" - check_options_flag_err "--userns=cnt1" - } - -+@test "build test has gid in supplemental groups" { -+ _prefetch alpine -+ run_buildah build $WITH_POLICY_JSON -t source -f ${TESTSDIR}/bud/supplemental-groups/Dockerfile -+ # gid 1000 must be in supplemental groups -+ expect_output --substring "Groups: 1000" -+} -+ -+@test "build test if supplemental groups has gid with --isolation chroot" { -+ test -z "${BUILDAH_ISOLATION}" || skip "BUILDAH_ISOLATION=${BUILDAH_ISOLATION} overrides --isolation" -+ -+ _prefetch alpine -+ run_buildah build --isolation chroot $WITH_POLICY_JSON -t source -f ${TESTSDIR}/bud/supplemental-groups/Dockerfile -+ # gid 1000 must be in supplemental groups -+ expect_output --substring "Groups: 1000" -+} -+ - @test "bud with --layers and --no-cache flags" { - _prefetch alpine - cp -a ${TESTSDIR}/bud/use-layers ${TESTDIR}/use-layers -diff --git a/tests/bud/supplemental-groups/Dockerfile b/tests/bud/supplemental-groups/Dockerfile -new file mode 100644 -index 000000000..462d9ea7a ---- /dev/null -+++ b/tests/bud/supplemental-groups/Dockerfile -@@ -0,0 +1,3 @@ -+FROM alpine -+USER 1000:1000 -+RUN cat /proc/$$/status -diff --git a/tests/run.bats b/tests/run.bats -index c22a671dc..ba26c350f 100644 ---- a/tests/run.bats -+++ b/tests/run.bats -@@ -252,6 +252,39 @@ function configure_and_check_user() { - run_buildah run -v ${TESTDIR}/was-empty/testfile:/var/different-multi-level/subdirectory/testfile $cid touch /var/different-multi-level/subdirectory/testfile - } - -+@test "run --volume with U flag" { -+ skip_if_no_runtime -+ -+ # Create source volume. -+ mkdir ${TESTDIR}/testdata -+ -+ # Create the container. -+ _prefetch alpine -+ run_buildah from --signature-policy ${TESTSDIR}/policy.json alpine -+ ctr="$output" -+ -+ # Test user can create file in the mounted volume. -+ run_buildah run --user 888:888 --volume ${TESTDIR}/testdata:/mnt:z,U "$ctr" touch /mnt/testfile1.txt -+ -+ # Test created file has correct UID and GID ownership. -+ run_buildah run --user 888:888 --volume ${TESTDIR}/testdata:/mnt:z,U "$ctr" stat -c "%u:%g" /mnt/testfile1.txt -+ expect_output "888:888" -+} -+ -+@test "run --user and verify gid in supplemental groups" { -+ skip_if_no_runtime -+ -+ # Create the container. -+ _prefetch alpine -+ run_buildah from $WITH_POLICY_JSON alpine -+ ctr="$output" -+ -+ # Run with uid:gid 1000:1000 and verify if gid is present in additional groups -+ run_buildah run --user 1000:1000 "$ctr" cat /proc/self/status -+ # gid 1000 must be in additional/supplemental groups -+ expect_output --substring "Groups: 1000 " -+} -+ - @test "run --mount" { - skip_if_no_runtime - --- -2.17.1 - diff --git a/SPECS-EXTENDED/buildah/buildah.signatures.json b/SPECS-EXTENDED/buildah/buildah.signatures.json index 41589d4832e..2003d94b0f6 100644 --- a/SPECS-EXTENDED/buildah/buildah.signatures.json +++ b/SPECS-EXTENDED/buildah/buildah.signatures.json @@ -1,5 +1,5 @@ { - "Signatures": { - "buildah-1.18.0.tar.gz": "500c82fb369fd08a9bb9a41f294c5975f17575770dbfaba5cce9a6e09b6a3fb9" - } + "Signatures": { + "buildah-1.38.0.tar.gz": "e8ddd23e344c45afae27bf6158304300c77cd738063d99221f7534c37f195f0c" + } } diff --git a/SPECS-EXTENDED/buildah/buildah.spec b/SPECS-EXTENDED/buildah/buildah.spec index 53ebcd95869..df6add75258 100644 --- a/SPECS-EXTENDED/buildah/buildah.spec +++ b/SPECS-EXTENDED/buildah/buildah.spec @@ -1,52 +1,43 @@ -%global with_bundled 1 %global with_debug 1 + %if 0%{?with_debug} %global _find_debuginfo_dwz_opts %{nil} %global _dwz_low_mem_die_limit 0 %else %global debug_package %{nil} %endif -%global provider github -%global provider_tld com -%global project containers -%global repo buildah -# https://github.com/containers/buildah -%global import_path %{provider}.%{provider_tld}/%{project}/%{repo} -%global git0 https://%{import_path} -# Used for comparing with latest upstream tag -# to decide whether to autobuild (non-rawhide only) -%define built_tag v1.18.0 -%define built_tag_strip %(b=%{built_tag}; echo ${b:1}) -%define download_url https://%{import_path}/archive/%{built_tag}.tar.gz -Summary: A command line tool used for creating OCI Images -Name: buildah -Version: 1.18.0 -Release: 31%{?dist} -License: ASL 2.0 + +%global gomodulesmode GO111MODULE=on + +%global git0 https://github.com/containers/%{name} + Vendor: Microsoft Corporation Distribution: Azure Linux -URL: https://%{name}.io -Source: %{download_url}#/%{name}-%{version}.tar.gz -Patch0: CVE-2022-2990.patch -BuildRequires: btrfs-progs-devel -BuildRequires: device-mapper-devel -BuildRequires: git -BuildRequires: glib2-devel -BuildRequires: glibc-static >= 2.38-11%{?dist} -BuildRequires: go-md2man -BuildRequires: go-rpm-macros -BuildRequires: golang -BuildRequires: gpgme-devel -BuildRequires: libassuan-devel -BuildRequires: libseccomp-static -BuildRequires: make -BuildRequires: ostree-devel -Requires: libcontainers-common -Requires: libseccomp >= 2.4.1-0 -Requires: moby-runc -Recommends: container-selinux -Recommends: fuse-overlayfs -Recommends: slirp4netns >= 0.3-0 +Name: buildah +Version: 1.38.0 +# The `AND` needs to be uppercase in the License for SPDX compatibility +License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 +Release: 1%{?dist} +ExclusiveArch: aarch64 ppc64le s390x x86_64 +Summary: A command line tool used for creating OCI Images +URL: https://%{name}.io +# Tarball fetched from upstream +Source: %{git0}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +BuildRequires: device-mapper-devel +BuildRequires: git-core +BuildRequires: golang >= 1.16.6 +BuildRequires: glib2-devel +BuildRequires: glibc-static >= 2.38-11%{?dist} +BuildRequires: go-rpm-macros +BuildRequires: gpgme-devel +BuildRequires: libassuan-devel +BuildRequires: make +BuildRequires: ostree-devel +BuildRequires: btrfs-progs-devel +BuildRequires: shadow-utils-subid-devel +BuildRequires: libseccomp-static +Requires: libseccomp >= 2.4.1-0 +Suggests: cpp %description The %{name} package provides a command line tool which can be used to @@ -57,16 +48,19 @@ or * save container's root file system layer to create a new image * delete a working container or an image -%package tests -Summary: Tests for %{name} -Requires: %{name} = %{version}-%{release} -Requires: bats -Requires: bzip2 -Requires: golang -Requires: httpd-tools -Requires: jq -Requires: openssl -Requires: podman +%package tests +Summary: Tests for %{name} + +Requires: %{name} = %{version}-%{release} +Requires: bats +Requires: bzip2 +Requires: podman +Requires: golang +Requires: jq +Requires: httpd-tools +Requires: openssl +Requires: nmap-ncat +Requires: git-daemon %description tests %{summary} @@ -74,42 +68,49 @@ Requires: podman This package contains system tests for %{name} %prep -%autosetup -Sgit -n %{name}-%{built_tag_strip} -p1 -sed -i 's/GOMD2MAN =/GOMD2MAN ?=/' docs/Makefile -sed -i '/docs install/d' Makefile +%autosetup -Sgit -n %{name}-%{version} %build -mkdir _build -pushd _build -mkdir -p src/%{provider}.%{provider_tld}/%{project} -ln -s $(dirs +1 -l) src/%{import_path} -popd - -mv vendor src - -export GOPATH=$(pwd)/_build:$(pwd) -export BUILDTAGS='seccomp selinux' -%if 0%{?centos} >= 8 -export BUILDTAGS+=' exclude_graphdriver_btrfs' -%endif -%gobuild -o bin/%{name} %{import_path}/cmd/%{name} -%gobuild -o imgtype %{import_path}/tests/imgtype -GOMD2MAN=go-md2man %{__make} -C docs +%set_build_flags +export CGO_CFLAGS=$CFLAGS + +# These extra flags present in $CFLAGS have been skipped for now as they break the build +CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g') +CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-Wp,D_GLIBCXX_ASSERTIONS//g') +CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//g') + +export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full" + +export CNI_VERSION=`grep '^# github.com/containernetworking/cni ' src/modules.txt | sed 's,.* ,,'` +export LDFLAGS="-X main.buildInfo=`date +%s` -X main.cniVersion=${CNI_VERSION}" + +export BUILDTAGS="seccomp exclude_graphdriver_devicemapper $(hack/systemd_tag.sh) $(hack/libsubid_tag.sh)" +export BUILDTAGS+=" btrfs_noversion exclude_graphdriver_btrfs" + +%gobuild -o bin/%{name} ./cmd/%{name} +%gobuild -o bin/imgtype ./tests/imgtype +%gobuild -o bin/copy ./tests/copy +%gobuild -o bin/tutorial ./tests/tutorial +%gobuild -o bin/inet ./tests/inet +%{__make} docs %install -export GOPATH=$(pwd)/_build:$(pwd):%{gopath} make DESTDIR=%{buildroot} PREFIX=%{_prefix} install install.completions -make DESTDIR=%{buildroot} PREFIX=%{_prefix} -C docs install install -d -p %{buildroot}/%{_datadir}/%{name}/test/system cp -pav tests/. %{buildroot}/%{_datadir}/%{name}/test/system -cp imgtype %{buildroot}/%{_bindir}/%{name}-imgtype +cp bin/imgtype %{buildroot}/%{_bindir}/%{name}-imgtype +cp bin/copy %{buildroot}/%{_bindir}/%{name}-copy +cp bin/tutorial %{buildroot}/%{_bindir}/%{name}-tutorial +cp bin/inet %{buildroot}/%{_bindir}/%{name}-inet + +rm %{buildroot}%{_datadir}/%{name}/test/system/tools/build/* #define license tag if not already defined %{!?_licensedir:%global license %doc} %files -%license LICENSE +%license LICENSE vendor/modules.txt %doc README.md %{_bindir}/%{name} %{_mandir}/man1/%{name}* @@ -120,9 +121,16 @@ cp imgtype %{buildroot}/%{_bindir}/%{name}-imgtype %files tests %license LICENSE %{_bindir}/%{name}-imgtype +%{_bindir}/%{name}-copy +%{_bindir}/%{name}-tutorial +%{_bindir}/%{name}-inet %{_datadir}/%{name}/test %changelog +* Fri May 23 2025 Akarsh Chaudhary - 1.38.0-1 +- Initial Azure Linux import from Fedora 41 (license: MIT). +- License verified + * Thu May 22 2025 Kanishk Bansal - 1.18.0-31 - Bump to rebuild with updated glibc diff --git a/SPECS-EXTENDED/kernel-ipe/config b/SPECS-EXTENDED/kernel-ipe/config index c543ee3476b..17ca4881433 100644 --- a/SPECS-EXTENDED/kernel-ipe/config +++ b/SPECS-EXTENDED/kernel-ipe/config @@ -7513,10 +7513,10 @@ CONFIG_CRYPTO_ENGINE=m # CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m -# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set -CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=m -# CONFIG_CRYPTO_ECDSA is not set +CONFIG_CRYPTO_ECDSA=y # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set @@ -7684,9 +7684,9 @@ CONFIG_CRYPTO_CHACHA20_X86_64=m CONFIG_CRYPTO_BLAKE2S_X86=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_POLY1305_X86_64=m -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA256_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512_SSSE3=m # CONFIG_CRYPTO_SM3_AVX_X86_64 is not set # CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set CONFIG_CRYPTO_CRC32C_INTEL=m diff --git a/SPECS-EXTENDED/kernel-ipe/config_aarch64 b/SPECS-EXTENDED/kernel-ipe/config_aarch64 index 09e582ad9af..9d49fd2fc65 100644 --- a/SPECS-EXTENDED/kernel-ipe/config_aarch64 +++ b/SPECS-EXTENDED/kernel-ipe/config_aarch64 @@ -10539,7 +10539,7 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=m +CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y @@ -10564,10 +10564,10 @@ CONFIG_CRYPTO_ENGINE=y # CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m -# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set -CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=m -# CONFIG_CRYPTO_ECDSA is not set +CONFIG_CRYPTO_ECDSA=y # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set diff --git a/SPECS-EXTENDED/kernel-ipe/kernel-ipe.signatures.json b/SPECS-EXTENDED/kernel-ipe/kernel-ipe.signatures.json index f05319611ff..f608224f635 100644 --- a/SPECS-EXTENDED/kernel-ipe/kernel-ipe.signatures.json +++ b/SPECS-EXTENDED/kernel-ipe/kernel-ipe.signatures.json @@ -1,8 +1,8 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config": "86b7c08764d8c4c4e955cdded877b2c8d387b82d375a64b4a12d8c6e611202dd", - "config_aarch64": "f46e12c2cfab204c8e8ea8b4250c7778e886926df4ec4849c3da58b6460213d3", + "config": "1ae57ff6851ef5bb2868c23f04a5794a823b4ed8412212fdbde2af1c7ff284b6", + "config_aarch64": "1d85b489585e2b1b332b287ceb27d9c873b96dbe06f5416007ea8ee99ed72538", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", diff --git a/SPECS-EXTENDED/kernel-ipe/kernel-ipe.spec b/SPECS-EXTENDED/kernel-ipe/kernel-ipe.spec index 46dc7a65aa1..ac874d49513 100644 --- a/SPECS-EXTENDED/kernel-ipe/kernel-ipe.spec +++ b/SPECS-EXTENDED/kernel-ipe/kernel-ipe.spec @@ -33,7 +33,7 @@ Summary: Linux Kernel Name: kernel-ipe Version: 6.6.96.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -459,6 +459,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS-EXTENDED/podman/CVE-2022-2989.patch b/SPECS-EXTENDED/podman/CVE-2022-2989.patch deleted file mode 100644 index 4b15ffafe58..00000000000 --- a/SPECS-EXTENDED/podman/CVE-2022-2989.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 21540161f20daffd884eba99b2cc31373c9a0ec4 Mon Sep 17 00:00:00 2001 -From: Matthew Heon -Date: Fri, 2 Sep 2022 13:40:29 -0400 -Subject: [PATCH] Add container GID to additional groups - -Mitigates a potential permissions issue. Mirrors Buildah PR #4200 -and CRI-O PR #6159. - -Signed-off-by: Matthew Heon ---- - libpod/container_internal_linux.go | 1 + - pkg/specgen/namespaces.go | 2 ++ - test/e2e/run_test.go | 14 +++++++++++--- - 3 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go -index a131ab36740..39aaac923e4 100644 ---- a/libpod/container_internal_linux.go -+++ b/libpod/container_internal_linux.go -@@ -682,6 +682,7 @@ func (c *Container) generateSpec(ctx context.Context) (*spec.Spec, error) { - // User and Group must go together - g.SetProcessUID(uint32(execUser.Uid)) - g.SetProcessGID(uint32(execUser.Gid)) -+ g.AddProcessAdditionalGid(uint32(execUser.Gid)) - } - - if c.config.Umask != "" { -diff --git a/pkg/specgen/namespaces.go b/pkg/specgen/namespaces.go -index 03a2049f60e..2578e61631f 100644 ---- a/pkg/specgen/namespaces.go -+++ b/pkg/specgen/namespaces.go -@@ -497,6 +497,7 @@ func SetupUserNS(idmappings *storage.IDMappingOptions, userns Namespace, g *gene - idmappings = mappings - g.SetProcessUID(uint32(uid)) - g.SetProcessGID(uint32(gid)) -+ g.AddProcessAdditionalGid(uint32(gid)) - user = fmt.Sprintf("%d:%d", uid, gid) - if err := privateUserNamespace(idmappings, g); err != nil { - return user, err -@@ -509,6 +510,7 @@ func SetupUserNS(idmappings *storage.IDMappingOptions, userns Namespace, g *gene - idmappings = mappings - g.SetProcessUID(uint32(uid)) - g.SetProcessGID(uint32(gid)) -+ g.AddProcessAdditionalGid(uint32(gid)) - user = fmt.Sprintf("%d:%d", uid, gid) - if err := privateUserNamespace(idmappings, g); err != nil { - return user, err -diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go -index 7e00326f48e..c4f0214be33 100644 ---- a/test/e2e/run_test.go -+++ b/test/e2e/run_test.go -@@ -944,7 +944,7 @@ echo -n %s >%s - session := podmanTest.Podman([]string{"run", "--rm", "--user=1234", ALPINE, "id"}) - session.WaitWithDefaultTimeout() - Expect(session).Should(Exit(0)) -- Expect(session.OutputToString()).To(Equal("uid=1234(1234) gid=0(root)")) -+ Expect(session.OutputToString()).To(Equal("uid=1234(1234) gid=0(root) groups=0(root)")) - }) - - It("podman run with user (integer, in /etc/passwd)", func() { -@@ -965,14 +965,14 @@ echo -n %s >%s - session := podmanTest.Podman([]string{"run", "--rm", "--user=mail:21", ALPINE, "id"}) - session.WaitWithDefaultTimeout() - Expect(session).Should(Exit(0)) -- Expect(session.OutputToString()).To(Equal("uid=8(mail) gid=21(ftp)")) -+ Expect(session.OutputToString()).To(Equal("uid=8(mail) gid=21(ftp) groups=21(ftp)")) - }) - - It("podman run with user:group (integer:groupname)", func() { - session := podmanTest.Podman([]string{"run", "--rm", "--user=8:ftp", ALPINE, "id"}) - session.WaitWithDefaultTimeout() - Expect(session).Should(Exit(0)) -- Expect(session.OutputToString()).To(Equal("uid=8(mail) gid=21(ftp)")) -+ Expect(session.OutputToString()).To(Equal("uid=8(mail) gid=21(ftp) groups=21(ftp)")) - }) - - It("podman run with user, verify caps dropped", func() { -@@ -983,6 +983,14 @@ echo -n %s >%s - Expect("0000000000000000").To(Equal(capEff[1])) - }) - -+ It("podman run with user, verify group added", func() { -+ session := podmanTest.Podman([]string{"run", "--rm", "--user=1000:1000", ALPINE, "grep", "Groups:", "/proc/self/status"}) -+ session.WaitWithDefaultTimeout() -+ Expect(session).Should(Exit(0)) -+ groups := strings.Split(session.OutputToString(), " ")[1] -+ Expect("1000").To(Equal(groups)) -+ }) -+ - It("podman run with attach stdin outputs container ID", func() { - session := podmanTest.Podman([]string{"run", "--attach", "stdin", ALPINE, "printenv"}) - session.WaitWithDefaultTimeout() - \ No newline at end of file diff --git a/SPECS-EXTENDED/podman/podman.signatures.json b/SPECS-EXTENDED/podman/podman.signatures.json index 449df1089e4..c1a23694c8a 100644 --- a/SPECS-EXTENDED/podman/podman.signatures.json +++ b/SPECS-EXTENDED/podman/podman.signatures.json @@ -1,7 +1,5 @@ { "Signatures": { - "dnsname-18822f9.tar.gz": "c78995a745981fc62a6af579ba416304538e3cba7267d6c06b926a9f4bcd8db9", - "gvisor-tap-vsock-aab0ac9.tar.gz": "e833d0a4506a02c8462ebfe34c48542e8142ddce0ab00277252450e6f42271ae", - "podman-4.1.1.tar.gz": "27bf32e9b1afee94cb08ebd59389104788d687f402a541f3631f94c7916b10a5" + "podman-5.5.2.tar.gz": "a2dbd8280cd92d4741f32f5a99d385d7fc6f0dd36bc9cc90a7273767e26d43d9" } } diff --git a/SPECS-EXTENDED/podman/podman.spec b/SPECS-EXTENDED/podman/podman.spec index 746d06e16d3..29f4de51abf 100644 --- a/SPECS-EXTENDED/podman/podman.spec +++ b/SPECS-EXTENDED/podman/podman.spec @@ -7,138 +7,69 @@ %global debug_package %{nil} %endif -%global provider github -%global provider_tld com -%global project containers -%global repo %{name} -# https://github.com/containers/%%{name} -%global import_path %{provider}.%{provider_tld}/%{project}/%{repo} -%global git0 https://%{import_path} - -# dnsname -%global repo_plugins dnsname -# https://github.com/containers/dnsname -%global import_path_plugins %{provider}.%{provider_tld}/%{project}/%{repo_plugins} -%global git_plugins https://%{import_path_plugins} -%global commit_plugins 18822f9a4fb35d1349eb256f4cd2bfd372474d84 -%global shortcommit_plugins %(c=%{commit_plugins}; echo ${c:0:7}) - -# gvproxy -%global repo_gvproxy gvisor-tap-vsock -# https://github.com/containers/gvisor-tap-vsock -%global import_path_gvproxy %%{provider}.%{provider_tld}/%{project}/%{repo_gvproxy} -%global git_gvproxy https://%{import_path_gvproxy} -%global commit_gvproxy aab0ac9367fc5142f5857c36ac2352bcb3c60ab7 -%global shortcommit_gvproxy %(c=%{commit_gvproxy}; echo ${c:0:7}) - -%global built_tag v4.1.1 - -Name: podman -Version: 4.1.1 -Release: 29%{?dist} -License: ASL 2.0 and BSD and ISC and MIT and MPLv2.0 -Summary: Manage Pods, Containers and Container Images +%global gomodulesmode GO111MODULE=on + +%global container_base_path github.com/containers +%global container_base_url https://%{container_base_path} + +# For LDFLAGS +%global ld_project %{container_base_path}/%{name}/v5 +%global ld_libpod %{ld_project}/libpod + +# %%{name} +%global git0 %{container_base_url}/%{name} + +%define build_origin %{?packager} + +Name: podman +Epoch: 0 +# DO NOT TOUCH the Version string! +# The TRUE source of this specfile is: +# https://github.com/containers/podman/blob/main/rpm/podman.spec +# If that's what you're reading, Version must be 0, and will be updated by Packit for +# copr and koji builds. +# If you're reading this on dist-git, the version is automatically filled in by Packit. +Version: 5.5.2 +License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 +Release: 1%{?dist} +ExclusiveArch: aarch64 ppc64le s390x x86_64 riscv64 +Summary: Manage Pods, Containers and Container Images Vendor: Microsoft Corporation Distribution: Azure Linux -URL: https://%{name}.io/ -Source0: %{git0}/archive/%{built_tag}.tar.gz#/%{name}-%{version}.tar.gz -Source1: %{git_plugins}/archive/%{commit_plugins}/%{repo_plugins}-%{commit_plugins}.tar.gz#/%{repo_plugins}-%{shortcommit_plugins}.tar.gz -Source2: %{git_gvproxy}/archive/%{commit_gvproxy}/%{repo_gvproxy}-%{commit_gvproxy}.tar.gz#/%{repo_gvproxy}-%{shortcommit_gvproxy}.tar.gz -Patch0: CVE-2022-2989.patch -Provides: %{name}-manpages = %{version}-%{release} -BuildRequires: go-md2man -BuildRequires: golang -BuildRequires: gcc -BuildRequires: glib2-devel -BuildRequires: glibc-static >= 2.38-11%{?dist} -BuildRequires: git -BuildRequires: go-rpm-macros -BuildRequires: gpgme-devel -BuildRequires: libassuan-devel -BuildRequires: libgpg-error-devel -BuildRequires: libseccomp-devel -BuildRequires: libselinux-devel -BuildRequires: shadow-utils -BuildRequires: pkgconfig -BuildRequires: make -BuildRequires: ostree-devel -BuildRequires: systemd -BuildRequires: systemd-devel -BuildRequires: libcontainers-common -Requires: catatonit -Requires: iptables -Requires: nftables -Requires: conmon >= 2.0.30 -Requires: libcontainers-common -Requires: netavark >= 1.0.3 -Requires: shadow-utils-subid -Requires: moby-runc -Requires: slirp4netns -Requires: containernetworking-plugins >= 0.9.1 -Suggests: qemu-user-static - -# vendored libraries -# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d' -Provides: bundled(golang(github.com/BurntSushi/toml)) = v1.1.0 -Provides: bundled(golang(github.com/blang/semver)) = v3.5.1+incompatible -Provides: bundled(golang(github.com/buger/goterm)) = v1.0.4 -Provides: bundled(golang(github.com/checkpoint_restore/checkpointctl)) = v0.0.0_20220321135231_33f4a66335f0 -Provides: bundled(golang(github.com/checkpoint_restore/go_criu/v5)) = v5.3.0 -Provides: bundled(golang(github.com/container_orchestrated_devices/container_device_interface)) = v0.4.0 -Provides: bundled(golang(github.com/containernetworking/cni)) = v1.1.0 -Provides: bundled(golang(github.com/containernetworking/plugins)) = v1.1.1 -Provides: bundled(golang(github.com/containers/buildah)) = v1.26.1 -Provides: bundled(golang(github.com/containers/common)) = v0.48.0 -Provides: bundled(golang(github.com/containers/conmon)) = v2.0.20+incompatible -Provides: bundled(golang(github.com/containers/image/v5)) = v5.21.1 -Provides: bundled(golang(github.com/containers/ocicrypt)) = v1.1.4 -Provides: bundled(golang(github.com/containers/psgo)) = v1.7.2 -Provides: bundled(golang(github.com/containers/storage)) = v1.40.2 -Provides: bundled(golang(github.com/coreos/go_systemd/v22)) = v22.3.2 -Provides: bundled(golang(github.com/coreos/stream_metadata_go)) = v0.0.0_20210225230131_70edb9eb47b3 -Provides: bundled(golang(github.com/cyphar/filepath_securejoin)) = v0.2.3 -Provides: bundled(golang(github.com/davecgh/go_spew)) = v1.1.1 -Provides: bundled(golang(github.com/digitalocean/go_qemu)) = v0.0.0_20210326154740_ac9e0b687001 -Provides: bundled(golang(github.com/docker/distribution)) = v2.8.1+incompatible -Provides: bundled(golang(github.com/docker/docker)) = v20.10.14+incompatible -Provides: bundled(golang(github.com/docker/go_connections)) = v0.4.1_0.20210727194412_58542c764a11 -Provides: bundled(golang(github.com/docker/go_plugins_helpers)) = v0.0.0_20211224144127_6eecb7beb651 -Provides: bundled(golang(github.com/docker/go_units)) = v0.4.0 -Provides: bundled(golang(github.com/dtylman/scp)) = v0.0.0_20181017070807_f3000a34aef4 -Provides: bundled(golang(github.com/fsnotify/fsnotify)) = v1.5.4 -Provides: bundled(golang(github.com/ghodss/yaml)) = v1.0.0 -Provides: bundled(golang(github.com/godbus/dbus/v5)) = v5.1.0 -Provides: bundled(golang(github.com/google/gofuzz)) = v1.2.0 -Provides: bundled(golang(github.com/google/shlex)) = v0.0.0_20191202100458_e7afc7fbc510 -Provides: bundled(golang(github.com/google/uuid)) = v1.3.0 -Provides: bundled(golang(github.com/gorilla/handlers)) = v1.5.1 -Provides: bundled(golang(github.com/gorilla/mux)) = v1.8.0 -Provides: bundled(golang(github.com/gorilla/schema)) = v1.2.0 -Provides: bundled(golang(github.com/hashicorp/go_multierror)) = v1.1.1 -Provides: bundled(golang(github.com/json_iterator/go)) = v1.1.12 -Provides: bundled(golang(github.com/mattn/go_isatty)) = v0.0.14 -Provides: bundled(golang(github.com/moby/term)) = v0.0.0_20210619224110_3f7ff695adc6 -Provides: bundled(golang(github.com/nxadm/tail)) = v1.4.8 -Provides: bundled(golang(github.com/onsi/ginkgo)) = v1.16.5 -Provides: bundled(golang(github.com/onsi/gomega)) = v1.19.0 -Provides: bundled(golang(github.com/opencontainers/go_digest)) = v1.0.0 -Provides: bundled(golang(github.com/opencontainers/image_spec)) = v1.0.3_0.20220114050600_8b9d41f48198 -Provides: bundled(golang(github.com/opencontainers/runc)) = v1.1.1 -Provides: bundled(golang(github.com/opencontainers/runtime_spec)) = v1.0.3_0.20211214071223_8958f93039ab -Provides: bundled(golang(github.com/opencontainers/runtime_tools)) = v0.9.1_0.20220110225228_7e2d60f1e41f -Provides: bundled(golang(github.com/opencontainers/selinux)) = v1.10.1 -Provides: bundled(golang(github.com/pkg/errors)) = v0.9.1 -Provides: bundled(golang(github.com/pmezard/go_difflib)) = v1.0.0 -Provides: bundled(golang(github.com/rootless_containers/rootlesskit)) = v1.0.1 -Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1 -Provides: bundled(golang(github.com/spf13/cobra)) = v1.4.0 -Provides: bundled(golang(github.com/spf13/pflag)) = v1.0.5 -Provides: bundled(golang(github.com/stretchr/testify)) = v1.7.1 -Provides: bundled(golang(github.com/syndtr/gocapability)) = v0.0.0_20200815063812_42c35b437635 -Provides: bundled(golang(github.com/uber/jaeger_client_go)) = v2.30.0+incompatible -Provides: bundled(golang(github.com/ulikunitz/xz)) = v0.5.10 -Provides: bundled(golang(github.com/vbauerster/mpb/v7)) = v7.4.1 -Provides: bundled(golang(github.com/vishvananda/netlink)) = v1.1.1_0.20220115184804_dd687eb2f2d4 +URL: https://%{name}.io/ +# All SourceN files fetched from upstream +Source0: %{git0}/archive/v%{version_no_tilde}.tar.gz#/%{name}-%{version}.tar.gz +Provides: %{name}-manpages = %{epoch}:%{version}-%{release} +BuildRequires: %{_bindir}/envsubst +%if %{defined build_with_btrfs} +BuildRequires: btrfs-progs-devel +%endif +BuildRequires: gcc +BuildRequires: glib2-devel +BuildRequires: glibc-devel +BuildRequires: glibc-static >= 2.38-11%{?dist} +BuildRequires: golang +BuildRequires: git-core + +BuildRequires: go-rpm-macros + +BuildRequires: gpgme-devel +BuildRequires: libassuan-devel +BuildRequires: libgpg-error-devel +BuildRequires: libseccomp-devel +BuildRequires: libselinux-devel +BuildRequires: libcontainers-common +BuildRequires: shadow-utils-subid-devel +BuildRequires: pkgconfig +BuildRequires: make +BuildRequires: man-db +BuildRequires: ostree-devel +BuildRequires: systemd +BuildRequires: systemd-devel +Requires: catatonit +Requires: conmon >= 2:2.1.7-2 +Requires: libcontainers-common +Provides: %{name}-quadlet = %{epoch}:%{version}-%{release} %description %{name} (Pod Manager) is a fully featured container engine that is a simple @@ -152,37 +83,36 @@ additional privileges. Both tools share image (not container) storage, hence each can use or manipulate images (but not containers) created by the other. -%{summary} -%{repo} Simple management tool for pods, containers and images - -%package docker -Summary: Emulate Docker CLI using %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Conflicts: docker -Conflicts: docker-latest -Conflicts: docker-ce -Conflicts: docker-ee -Conflicts: moby-engine +%package docker +Summary: Emulate Docker CLI using %{name} +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} +Conflicts: docker +Conflicts: docker-latest +Conflicts: docker-ce +Conflicts: docker-ee +Conflicts: moby-engine %description docker This package installs a script named docker that emulates the Docker CLI by executes %{name} commands, it also creates links between all Docker CLI man pages and %{name}. -%package tests -Summary: Tests for %{name} - -Requires: %{name} = %{version}-%{release} -Requires: bats -Requires: jq -Requires: skopeo -Requires: nmap-ncat -Requires: httpd-tools -Requires: openssl -Requires: socat -Requires: buildah -Requires: gnupg +%package tests +Summary: Tests for %{name} + +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: attr +Requires: jq +Requires: skopeo +Requires: nmap-ncat +Requires: httpd-tools +Requires: openssl +Requires: socat +Requires: slirp4netns +Requires: buildah +Requires: gnupg +Requires: xfsprogs %description tests %{summary} @@ -202,40 +132,25 @@ run %{name}-remote in production. manage pods, containers and container images. %{name}-remote supports ssh connections as well. -%package plugins -Summary: Plugins for %{name} -Requires: dnsmasq -Recommends: %{name}-gvproxy = %{version}-%{release} +%package -n %{name}sh +Summary: Confined login and user shell using %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Provides: %{name}-shell = %{epoch}:%{version}-%{release} +Provides: %{name}-%{name}sh = %{epoch}:%{version}-%{release} -%description plugins -This plugin sets up the use of dnsmasq on a given CNI network so -that Pods can resolve each other by name. When configured, -the pod and its IP address are added to a network specific hosts file -that dnsmasq will read in. Similarly, when a pod -is removed from the network, it will remove the entry from the hosts -file. Each CNI network will have its own dnsmasq instance. +%description -n %{name}sh +%{name}sh provides a confined login and user shell with access to volumes and +capabilities specified in user quadlets. -%package gvproxy -Summary: Go replacement for libslirp and VPNKit +It is a symlink to %{_bindir}/%{name} and execs into the `%{name}sh` container +when `%{_bindir}/%{name}sh` is set as a login shell or set as os.Args[0]. -%description gvproxy -A replacement for libslirp and VPNKit, written in pure Go. -It is based on the network stack of gVisor. Compared to libslirp, -gvisor-tap-vsock brings a configurable DNS server and -dynamic port forwarding. %prep -%autosetup -Sgit -p1 +%autosetup -Sgit -n %{name}-%{version_no_tilde} sed -i 's;@@PODMAN@@\;$(BINDIR);@@PODMAN@@\;%{_bindir};' Makefile -# untar dnsname -tar zxf %{SOURCE1} - -# untar %%{name}-gvproxy -tar zxf %{SOURCE2} - %build -%if "%{_vendor}" != "debbuild" %set_build_flags export CGO_CFLAGS=$CFLAGS # These extra flags present in $CFLAGS have been skipped for now as they break the build @@ -246,60 +161,57 @@ CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-an %ifarch x86_64 export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full" %endif -%endif -export GO111MODULE=off -export GOPATH=$(pwd)/_build:$(pwd) +export GOPROXY=direct -mkdir _build -cd _build -mkdir -p src/%{provider}.%{provider_tld}/%{project} -ln -s ../../../../ src/%{import_path} -cd .. -ln -s vendor src +LDFLAGS="-X %{ld_libpod}/define.buildInfo=${SOURCE_DATE_EPOCH:-$(date +%s)} \ + -X \"%{ld_libpod}/define.buildOrigin=%{build_origin}\" \ + -X %{ld_libpod}/config._installPrefix=%{_prefix} \ + -X %{ld_libpod}/config._etcDir=%{_sysconfdir} \ + -X %{ld_project}/pkg/systemd/quadlet._binDir=%{_bindir}" -# build date. FIXME: Makefile uses '/v2/libpod', that doesn't work here? -LDFLAGS="-X %{import_path}/libpod/define.buildInfo=$(date +%s)" +# This variable will be set by Packit actions. See .packit.yaml in the root dir +# of the repo (upstream as well as Fedora dist-git). +GIT_COMMIT="e7d8226745ba07a64b7176a7f128e4ef53225a0e" +LDFLAGS="$LDFLAGS -X %{ld_libpod}/define.gitCommit=$GIT_COMMIT" # build rootlessport first -%gobuild -o bin/rootlessport %{import_path}/cmd/rootlessport +%gobuild -o bin/rootlessport ./cmd/rootlessport -# build %%{name} -export BUILDTAGS="seccomp exclude_graphdriver_devicemapper $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) $(hack/libdm_tag.sh) $(hack/selinux_tag.sh) $(hack/systemd_tag.sh) $(hack/libsubid_tag.sh)" +export BASEBUILDTAGS="seccomp $(hack/systemd_tag.sh) $(hack/libsubid_tag.sh)" -%gobuild -o bin/%{name} %{import_path}/cmd/%{name} +# libtrust_openssl buildtag switches to using the FIPS-compatible func +# `ecdsa.HashSign`. +# Ref 1: https://github.com/golang-fips/go/blob/main/patches/015-add-hash-sign-verify.patch#L22 +# Ref 2: https://github.com/containers/libtrust/blob/main/ec_key_openssl.go#L23 +%if %{defined fips_enabled} +export BASEBUILDTAGS="$BASEBUILDTAGS libtrust_openssl" +%endif + +# build %%{name} +export BUILDTAGS="$BASEBUILDTAGS $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh) $(hack/libdm_tag.sh)" +%gobuild -o bin/%{name} ./cmd/%{name} # build %%{name}-remote -export BUILDTAGS="seccomp exclude_graphdriver_devicemapper exclude_graphdriver_btrfs btrfs_noversion $(hack/selinux_tag.sh) $(hack/systemd_tag.sh) $(hack/libsubid_tag.sh) remote" -%gobuild -o bin/%{name}-remote %{import_path}/cmd/%{name} - -cd %{repo_plugins}-%{commit_plugins} -mkdir _build -cd _build -mkdir -p src/%{provider}.%{provider_tld}/%{project} -ln -s ../../../../ src/%{import_path_plugins} -cd .. -ln -s vendor src -export GOPATH=$(pwd)/_build:$(pwd) -%gobuild -o bin/dnsname %{import_path_plugins}/plugins/meta/dnsname -cd .. - -cd %{repo_gvproxy}-%{commit_gvproxy} -mkdir _build -cd _build -mkdir -p src/%{provider}.%{provider_tld}/%{project} -ln -s ../../../../ src/%{import_path_gvproxy} -cd .. -ln -s vendor src -export GOPATH=$(pwd)/_build:$(pwd) -%gobuild -o bin/gvproxy %{import_path_gvproxy}/cmd/gvproxy -cd .. +export BUILDTAGS="$BASEBUILDTAGS exclude_graphdriver_btrfs btrfs_noversion remote" +%gobuild -o bin/%{name}-remote ./cmd/%{name} + +# build quadlet +export BUILDTAGS="$BASEBUILDTAGS $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh)" +%gobuild -o bin/quadlet ./cmd/quadlet + +# build %%{name}-testing +export BUILDTAGS="$BASEBUILDTAGS $(hack/btrfs_installed_tag.sh) $(hack/btrfs_tag.sh)" +%gobuild -o bin/podman-testing ./cmd/podman-testing + +# reset LDFLAGS for plugins binaries +LDFLAGS='' %{__make} docs docker-docs %install install -dp %{buildroot}%{_unitdir} -PODMAN_VERSION=%{version} %{__make} PREFIX=%{buildroot}%{_prefix} ETCDIR=%{buildroot}%{_sysconfdir} \ +PODMAN_VERSION=%{version} %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} ETCDIR=%{_sysconfdir} \ install.bin \ install.man \ install.systemd \ @@ -307,40 +219,33 @@ PODMAN_VERSION=%{version} %{__make} PREFIX=%{buildroot}%{_prefix} ETCDIR=%{build install.docker \ install.docker-docs \ install.remote \ - install.modules-load - -mv pkg/hooks/README.md pkg/hooks/README-hooks.md + install.testing -# install dnsname plugin -cd %{repo_plugins}-%{commit_plugins} -%{__make} PREFIX=%{_prefix} DESTDIR=%{buildroot} install -cd .. - -# install gvproxy -cd %{repo_gvproxy}-%{commit_gvproxy} -install -dp %{buildroot}%{_libexecdir}/%{name} -install -p -m0755 bin/gvproxy %{buildroot}%{_libexecdir}/%{name} -cd .. +sed -i 's;%{buildroot};;g' %{buildroot}%{_bindir}/docker # do not include docker and podman-remote man pages in main package -for file in `find %{buildroot}%{_mandir}/man[15] -type f | sed "s,%{buildroot},," | grep -v -e remote -e docker`; do - echo "$file*" >> podman.file-list +for file in `find %{buildroot}%{_mandir}/man[157] -type f | sed "s,%{buildroot},," | grep -v -e %{name}sh.1 -e remote -e docker`; do + echo "$file*" >> %{name}.file-list done rm -f %{buildroot}%{_mandir}/man5/docker*.5 -install -d -p %{buildroot}/%{_datadir}/%{name}/test/system -cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/ +install -d -p %{buildroot}%{_datadir}/%{name}/test/system +cp -pav test/system %{buildroot}%{_datadir}/%{name}/test/ #define license tag if not already defined %{!?_licensedir:%global license %doc} +# Include empty check to silence rpmlint warning +%check + %files -f %{name}.file-list -%license LICENSE -%doc README.md CONTRIBUTING.md pkg/hooks/README-hooks.md install.md transfer.md +%license LICENSE vendor/modules.txt +%doc README.md CONTRIBUTING.md install.md transfer.md %{_bindir}/%{name} %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/rootlessport +%{_libexecdir}/%{name}/quadlet %{_datadir}/bash-completion/completions/%{name} # By "owning" the site-functions dir, we don't need to Require zsh %dir %{_datadir}/zsh/site-functions @@ -350,12 +255,21 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/ %{_unitdir}/%{name}* %{_userunitdir}/%{name}* %{_tmpfilesdir}/%{name}.conf +%{_systemdgeneratordir}/%{name}-system-generator +%{_systemdusergeneratordir}/%{name}-user-generator +# iptables modules are only needed with iptables-legacy, +# as of f41 netavark will default to nftables so do not load unessary modules +# https://fedoraproject.org/wiki/Changes/NetavarkNftablesDefault +%if %{defined fedora} && 0%{?fedora} < 41 %{_modulesloaddir}/%{name}-iptables.conf +%endif %files docker %{_bindir}/docker %{_mandir}/man1/docker*.1* -%{_usr}/lib/tmpfiles.d/%{name}-docker.conf +%{_sysconfdir}/profile.d/%{name}-docker.* +%{_tmpfilesdir}/%{name}-docker.conf +%{_user_tmpfilesdir}/%{name}-docker.conf %files remote %license LICENSE @@ -369,23 +283,19 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/ %files tests %license LICENSE +%{_bindir}/%{name}-testing %{_datadir}/%{name}/test -%files plugins -%license %{repo_plugins}-%{commit_plugins}/LICENSE -%doc %{repo_plugins}-%{commit_plugins}/{README.md,README_PODMAN.md} -%dir %{_libexecdir}/cni -%{_libexecdir}/cni/dnsname - -%files gvproxy -%license %{repo_gvproxy}-%{commit_gvproxy}/LICENSE -%doc %{repo_gvproxy}-%{commit_gvproxy}/README.md -%dir %{_libexecdir}/%{name} -%{_libexecdir}/%{name}/gvproxy - +%files -n %{name}sh +%{_bindir}/%{name}sh +%{_mandir}/man1/%{name}sh.1* # rhcontainerbot account currently managed by lsm5 %changelog +* Wed Jul 16 2025 Sumit Jena +- Update to version 5.5.2 +- License verified + * Thu May 22 2025 Kanishk Bansal - 4.1.1-29 - Bump to rebuild with updated glibc diff --git a/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec b/SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec index fdc9673f0be..78366e714ce 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.96.1 -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 +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS-SIGNED/kernel-signed/kernel-signed.spec b/SPECS-SIGNED/kernel-signed/kernel-signed.spec index f126b8a08d1..6eb8eae72c4 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.96.1 -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 +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec b/SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec index ef38efd321d..9ede78b6e09 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.96.1 -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 +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.signatures.json b/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.signatures.json index 4256f304098..a5f035b28af 100644 --- a/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.signatures.json +++ b/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "SymCrypt-OpenSSL-1.9.0.tar.gz": "073debf1d12d9d4c683bf4ba6bd78403c9f559244f06b7e1c6de46bd483c0ff3" + "SymCrypt-OpenSSL-1.9.1.tar.gz": "4b2a2399c2d3a875d7af9830545f17055ccbcf6159d64fb0512aebe1e70491a5" } } diff --git a/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.spec b/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.spec index 57ce5a52103..935170bdd2b 100644 --- a/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.spec +++ b/SPECS/SymCrypt-OpenSSL/SymCrypt-OpenSSL.spec @@ -1,6 +1,6 @@ Summary: The SymCrypt engine for OpenSSL (SCOSSL) allows the use of OpenSSL with SymCrypt as the provider for core cryptographic operations Name: SymCrypt-OpenSSL -Version: 1.9.0 +Version: 1.9.1 Release: 1%{?dist} License: MIT Vendor: Microsoft Corporation @@ -87,6 +87,9 @@ install SymCryptProvider/symcrypt_prov.cnf %{buildroot}%{_sysconfdir}/pki/tls/sy %dir %attr(1733, root, root) %{_localstatedir}/log/keysinuse/ %changelog +* Fri Jul 25 2025 Tobias Brick - 1.9.1-1 +- Upgrade SymCrypt-OpenSSL to 1.9.1 for compatability and bug fixes. + * Wed Jun 11 2025 Tobias Brick - 1.9.0-1 - Auto-upgrade to 1.9.0 - Support digest state exports. - Added second test run that forces the use of the SymCrypt provider. diff --git a/SPECS/bpftrace/0001-Remove-cstring_view.patch b/SPECS/bpftrace/0001-Remove-cstring_view.patch new file mode 100644 index 00000000000..0f2eb6dd275 --- /dev/null +++ b/SPECS/bpftrace/0001-Remove-cstring_view.patch @@ -0,0 +1,207 @@ +From 876b5118fa521f62e31a5bec7ec0be27da3bb7ab Mon Sep 17 00:00:00 2001 +From: Thierry Treyer +Date: Fri, 11 Apr 2025 09:04:29 -0700 +Subject: [PATCH] Remove 'cstring_view' + +The `cstring_view` class was a `std::string_view` with the added +guarantee that it is NULL-terminated. It was only used by BpfMap. +This commit replaces it by a `std::string` + +Fixes: #4001 + +Signed-off-by: Thierry Treyer +--- + src/bpfmap.cpp | 2 +- + src/bpfmap.h | 10 +++--- + src/container/cstring_view.h | 39 ----------------------- + tests/CMakeLists.txt | 1 - + tests/cstring_view.cpp | 60 ------------------------------------ + 5 files changed, 5 insertions(+), 107 deletions(-) + delete mode 100644 src/container/cstring_view.h + delete mode 100644 tests/cstring_view.cpp + +diff --git a/src/bpfmap.cpp b/src/bpfmap.cpp +index 9464e8ed..eb65621e 100644 +--- a/src/bpfmap.cpp ++++ b/src/bpfmap.cpp +@@ -12,7 +12,7 @@ libbpf::bpf_map_type BpfMap::type() const + return type_; + } + +-cstring_view BpfMap::bpf_name() const ++const std::string &BpfMap::bpf_name() const + { + return name_; + } +diff --git a/src/bpfmap.h b/src/bpfmap.h +index 09153764..d48763ed 100644 +--- a/src/bpfmap.h ++++ b/src/bpfmap.h +@@ -11,8 +11,6 @@ namespace libbpf { + #include "libbpf/bpf.h" + } // namespace libbpf + +-#include "container/cstring_view.h" +- + namespace bpftrace { + + class BpfMap { +@@ -28,12 +26,12 @@ public: + } + + BpfMap(libbpf::bpf_map_type type, +- cstring_view name, ++ std::string name, + uint32_t key_size, + uint32_t value_size, + uint32_t max_entries) + : type_(type), +- name_(name), ++ name_(std::move(name)), + key_size_(key_size), + value_size_(value_size), + max_entries_(max_entries) +@@ -42,7 +40,7 @@ public: + + int fd() const; + libbpf::bpf_map_type type() const; +- cstring_view bpf_name() const; ++ const std::string &bpf_name() const; + std::string name() const; + uint32_t key_size() const; + uint32_t value_size() const; +@@ -56,7 +54,7 @@ public: + private: + struct bpf_map *bpf_map_; + libbpf::bpf_map_type type_; +- cstring_view name_; ++ std::string name_; + uint32_t key_size_; + uint32_t value_size_; + uint32_t max_entries_; +diff --git a/src/container/cstring_view.h b/src/container/cstring_view.h +deleted file mode 100644 +index 2e1c4602..00000000 +--- a/src/container/cstring_view.h ++++ /dev/null +@@ -1,39 +0,0 @@ +-#pragma once +- +-#include +-#include +- +-namespace bpftrace { +- +-// cstring_view +-// +-// A restricted version of std::string_view which guarantees that the underlying +-// string buffer will be null-terminated. This can be useful when interacting +-// with C APIs while avoiding the use of char* and unnecessary copies from using +-// std::string. +-// +-// We only allow constructing cstring_view from types which are guaranteed to +-// store null-terminated strings. All modifiers or operations on cstring_view +-// will also maintain the null-terminated property. +-class cstring_view : public std::string_view { +-public: +- constexpr cstring_view(const char *str) noexcept : std::string_view{ str } +- { +- } +- constexpr cstring_view(const std::string &str) noexcept +- : std::string_view{ str } +- { +- } +- constexpr const char *c_str() const noexcept +- { +- return data(); +- } +- +-private: +- // Disallow use of functions which can break the null-termination invariant +- using std::string_view::copy; +- using std::string_view::remove_suffix; +- using std::string_view::substr; +-}; +- +-} // namespace bpftrace +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index c5d10f9c..d012cad7 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -33,7 +33,6 @@ add_executable(bpftrace_test + clang_parser.cpp + config.cpp + collect_nodes.cpp +- cstring_view.cpp + field_analyser.cpp + function_registry.cpp + log.cpp +diff --git a/tests/cstring_view.cpp b/tests/cstring_view.cpp +deleted file mode 100644 +index 5b82a990..00000000 +--- a/tests/cstring_view.cpp ++++ /dev/null +@@ -1,60 +0,0 @@ +-#include "container/cstring_view.h" +-#include "gtest/gtest.h" +- +-#include +- +-namespace bpftrace::test::cstring_view { +- +-using bpftrace::cstring_view; +- +-TEST(cstring_view, c_string) +-{ +- const char *str = "abc"; +- cstring_view sv{ str }; +- +- EXPECT_EQ("abc", sv); +- +- EXPECT_EQ('a', sv[0]); +- EXPECT_EQ('b', sv[1]); +- EXPECT_EQ('c', sv[2]); +- EXPECT_EQ('\0', sv[3]); +-} +- +-TEST(cstring_view, std_string) +-{ +- std::string str = "abc"; +- cstring_view sv{ str }; +- +- EXPECT_EQ("abc", sv); +- +- EXPECT_EQ('a', sv[0]); +- EXPECT_EQ('b', sv[1]); +- EXPECT_EQ('c', sv[2]); +- EXPECT_EQ('\0', sv[3]); +-} +- +-TEST(cstring_view, std_string_view) +-{ +- EXPECT_FALSE((std::is_constructible_v)); +- +- // Sanity checks: +- EXPECT_TRUE((std::is_constructible_v)); +- EXPECT_TRUE((std::is_constructible_v)); +-} +- +-TEST(cstring_view, length) +-{ +- cstring_view sv{ "abc" }; +- +- EXPECT_EQ("abc", sv); +- EXPECT_EQ(3, sv.size()); +- EXPECT_EQ(3, sv.length()); +-} +- +-TEST(cstring_view, c_str) +-{ +- cstring_view sv{ "abc" }; +- EXPECT_EQ(0, strcmp(sv.c_str(), "abc")); +-} +- +-} // namespace bpftrace::test::cstring_view +-- +2.45.4 + diff --git a/SPECS/bpftrace/bpftrace-0.20-llvm18.patch b/SPECS/bpftrace/bpftrace-0.20-llvm18.patch deleted file mode 100644 index 59b4bf16036..00000000000 --- a/SPECS/bpftrace/bpftrace-0.20-llvm18.patch +++ /dev/null @@ -1,515 +0,0 @@ -From 686b73cbb7ae5ab24d1f8ad69c608225d14c94e2 Mon Sep 17 00:00:00 2001 -From: Daniel Xu -Date: Tue, 12 Mar 2024 13:13:01 -0600 -Subject: [PATCH 1/5] Update CHANGELOG - ---- - CHANGELOG.md | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/CHANGELOG.md b/CHANGELOG.md -index e699c473..c574ad3e 100644 ---- a/CHANGELOG.md -+++ b/CHANGELOG.md -@@ -9,6 +9,8 @@ and this project adheres to - ## Unreleased - - #### Added -+- Add LLVM 18 support -+ - [#3051](https://github.com/bpftrace/bpftrace/pull/3051) - #### Changed - #### Deprecated - #### Removed --- -2.33.8 - - -From 79e9282b4d2a87a3269d7fd2c595efa784fda7c4 Mon Sep 17 00:00:00 2001 -From: Wentao Zhang -Date: Tue, 15 Aug 2023 11:18:36 +0800 -Subject: [PATCH 2/5] replace python with python3 in the test - -"runtime:call" in ptest gets the following FAILED: -python: No such file or directory -replace python with python3 in the test scripts. - -$export BPFTRACE_RUNTIME_TEST_EXECUTABLE=/usr/bin -$cd /usr/lib/bpftrace/ptest/tests -$python3 runtime/engine/main.py --filter="call.*" -*** -[ RUN ] call.strftime_microsecond_extension_rollover -[ FAILED ] call.strftime_microsecond_extension_rollover - Command: /usr/bin/bpftrace -e 'BEGIN { printf("%s - %s\n", strftime - ("1%f", 1000000123000), strftime("1%f", 0)); exit(); }' | tail -n - +2 | xargs -I{} python -c "print({})" - Unclean exit code: 127 - Output: __BPFTRACE_NOTIFY_PROBES_ATTACHED\nxargs: python: No such - file or directory\n -*** - -Signed-off-by: Wentao Zhang -Signed-off-by: Khem Raj ---- - tests/runtime/call | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/runtime/call b/tests/runtime/call -index 2d7d9fcd..c6dcdf12 100644 ---- a/tests/runtime/call -+++ b/tests/runtime/call -@@ -378,13 +378,13 @@ TIMEOUT 5 - # - # Note we add a `1` before the timestamp b/c leading zeros (eg `0123`) is invalid integer in python. - NAME strftime_microsecond_extension --RUN {{BPFTRACE}} -e 'BEGIN { printf("%s - %s\n", strftime("1%f", 1000123000), strftime("1%f", 0)); exit(); }' | tail -n +2 | xargs -I{} python -c "print({})" -+RUN {{BPFTRACE}} -e 'BEGIN { printf("%s - %s\n", strftime("1%f", 1000123000), strftime("1%f", 0)); exit(); }' | tail -n +2 | xargs -I{} python3 -c "print({})" - EXPECT 123 - TIMEOUT 1 - - # Similar to above test but test that rolling over past 1s works as expected - NAME strftime_microsecond_extension_rollover --RUN {{BPFTRACE}} -e 'BEGIN { printf("%s - %s\n", strftime("1%f", 1000000123000), strftime("1%f", 0)); exit(); }' | tail -n +2 | xargs -I{} python -c "print({})" -+RUN {{BPFTRACE}} -e 'BEGIN { printf("%s - %s\n", strftime("1%f", 1000000123000), strftime("1%f", 0)); exit(); }' | tail -n +2 | xargs -I{} python3 -c "print({})" - EXPECT 123 - TIMEOUT 1 - --- -2.33.8 - - -From 0cd1b0a341c3562a478c4f9a86fe3f765b5ec2bb Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Feb 2024 10:32:27 -0800 -Subject: [PATCH 3/5] ast: Repace getInt8PtrTy with getPtrTy - -getPtrTy is added in LLVM-15 and is to be used instead of getInt8PtrTy -which is gone in LLVM-18 onwards - -https://github.com/llvm/llvm-project/commit/7e0802aeb5b90 - -Signed-off-by: Khem Raj -Signed-off-by: Daniel Xu ---- - src/ast/irbuilderbpf.cpp | 67 +++++++++++++++------------------ - src/ast/irbuilderbpf.h | 6 +++ - src/ast/passes/codegen_llvm.cpp | 22 +++++------ - 3 files changed, 48 insertions(+), 47 deletions(-) - -diff --git a/src/ast/irbuilderbpf.cpp b/src/ast/irbuilderbpf.cpp -index 241ee74e..704f0a2b 100644 ---- a/src/ast/irbuilderbpf.cpp -+++ b/src/ast/irbuilderbpf.cpp -@@ -350,7 +350,7 @@ CallInst *IRBuilderBPF::createMapLookup(int mapid, - Value *key, - const std::string &name) - { -- return createMapLookup(mapid, key, getInt8PtrTy(), name); -+ return createMapLookup(mapid, key, GET_PTR_TY(), name); - } - - CallInst *IRBuilderBPF::createMapLookup(int mapid, -@@ -378,7 +378,7 @@ CallInst *IRBuilderBPF::CreateGetJoinMap(BasicBlock *failure_callback, - { - return createGetScratchMap(bpftrace_.maps[MapManager::Type::Join].value()->id, - "join", -- getInt8PtrTy(), -+ GET_PTR_TY(), - loc, - failure_callback); - } -@@ -407,8 +407,8 @@ CallInst *IRBuilderBPF::createGetScratchMap(int mapid, - BasicBlock *lookup_merge_block = BasicBlock::Create( - module_.getContext(), "lookup_" + name + "_merge", parent); - Value *condition = CreateICmpNE( -- CreateIntCast(call, getInt8PtrTy(), true), -- ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), getInt8PtrTy()), -+ CreateIntCast(call, GET_PTR_TY(), true), -+ ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), GET_PTR_TY()), - "lookup_" + name + "_cond"); - CreateCondBr(condition, lookup_merge_block, lookup_failure_block); - -@@ -428,7 +428,7 @@ Value *IRBuilderBPF::CreateMapLookupElem(Value *ctx, - Value *key, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - int mapid = bpftrace_.maps[map.ident].value()->id; - return CreateMapLookupElem(ctx, mapid, key, map.type, loc); - } -@@ -439,7 +439,7 @@ Value *IRBuilderBPF::CreateMapLookupElem(Value *ctx, - SizedType &type, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - CallInst *call = createMapLookup(mapid, key); - - // Check if result == 0 -@@ -450,8 +450,8 @@ Value *IRBuilderBPF::CreateMapLookupElem(Value *ctx, - - AllocaInst *value = CreateAllocaBPF(type, "lookup_elem_val"); - Value *condition = CreateICmpNE( -- CreateIntCast(call, getInt8PtrTy(), true), -- ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), getInt8PtrTy()), -+ CreateIntCast(call, GET_PTR_TY(), true), -+ ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), GET_PTR_TY()), - "map_lookup_cond"); - CreateCondBr(condition, lookup_success_block, lookup_failure_block); - -@@ -494,7 +494,7 @@ void IRBuilderBPF::CreateMapUpdateElem(Value *ctx, - { - Value *map_ptr = CreateBpfPseudoCallId(map); - -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(key->getType()->isPointerTy()); - assert(val->getType()->isPointerTy()); - -@@ -523,7 +523,7 @@ void IRBuilderBPF::CreateMapDeleteElem(Value *ctx, - Value *key, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(key->getType()->isPointerTy()); - Value *map_ptr = CreateBpfPseudoCallId(map); - -@@ -586,7 +586,7 @@ void IRBuilderBPF::CreateProbeRead(Value *ctx, - AddrSpace as, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(size && size->getType()->getIntegerBitWidth() <= 32); - size = CreateIntCast(size, getInt32Ty(), false); - -@@ -625,7 +625,7 @@ CallInst *IRBuilderBPF::CreateProbeReadStr(Value *ctx, - AddrSpace as, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(size && size->getType()->isIntegerTy()); - if ([[maybe_unused]] auto *dst_alloca = dyn_cast(dst)) - { -@@ -660,7 +660,7 @@ Value *IRBuilderBPF::CreateUSDTReadArgument(Value *ctx, - AddrSpace as, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - // Argument size must be 1, 2, 4, or 8. See - // https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation - int abs_size = std::abs(argument->size); -@@ -766,7 +766,7 @@ Value *IRBuilderBPF::CreateUSDTReadArgument(Value *ctx, - AddrSpace as, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - struct bcc_usdt_argument argument; - - void *usdt; -@@ -1419,7 +1419,7 @@ CallInst *IRBuilderBPF::CreateGetStackId(Value *ctx, - StackType stack_type, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - - Value *map_ptr = CreateBpfPseudoCallId( - bpftrace_.maps[stack_type].value()->id); -@@ -1432,9 +1432,7 @@ CallInst *IRBuilderBPF::CreateGetStackId(Value *ctx, - // long bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags) - // Return: >= 0 stackid on success or negative error - FunctionType *getstackid_func_type = FunctionType::get( -- getInt64Ty(), -- { getInt8PtrTy(), map_ptr->getType(), getInt64Ty() }, -- false); -+ getInt64Ty(), { GET_PTR_TY(), map_ptr->getType(), getInt64Ty() }, false); - CallInst *call = CreateHelperCall(libbpf::BPF_FUNC_get_stackid, - getstackid_func_type, - { ctx, map_ptr, flags_val }, -@@ -1482,7 +1480,7 @@ void IRBuilderBPF::CreateOutput(Value *ctx, - size_t size, - const location *loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(data && data->getType()->isPointerTy()); - - if (bpftrace_.feature_->has_map_ringbuf()) -@@ -1551,8 +1549,8 @@ void IRBuilderBPF::CreateAtomicIncCounter(int mapid, uint32_t idx) - parent); - - Value *condition = CreateICmpNE( -- CreateIntCast(call, getInt8PtrTy(), true), -- ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), getInt8PtrTy()), -+ CreateIntCast(call, GET_PTR_TY(), true), -+ ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), GET_PTR_TY()), - "map_lookup_cond"); - CreateCondBr(condition, lookup_success_block, lookup_failure_block); - -@@ -1609,8 +1607,8 @@ void IRBuilderBPF::CreateMapElemAdd(Value *ctx, - - AllocaInst *value = CreateAllocaBPF(type, "lookup_elem_val"); - Value *condition = CreateICmpNE( -- CreateIntCast(call, getInt8PtrTy(), true), -- ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), getInt8PtrTy()), -+ CreateIntCast(call, GET_PTR_TY(), true), -+ ConstantExpr::getCast(Instruction::IntToPtr, getInt64(0), GET_PTR_TY()), - "map_lookup_cond"); - CreateCondBr(condition, lookup_success_block, lookup_failure_block); - -@@ -1646,7 +1644,7 @@ void IRBuilderBPF::CreatePerfEventOutput(Value *ctx, - // long bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, - // u64 flags, void *data, u64 size) - FunctionType *perfoutput_func_type = FunctionType::get(getInt64Ty(), -- { getInt8PtrTy(), -+ { GET_PTR_TY(), - map_ptr->getType(), - getInt64Ty(), - data->getType(), -@@ -1690,7 +1688,7 @@ void IRBuilderBPF::CreateTracePrintk(Value *fmt_ptr, - - // long bpf_trace_printk(const char *fmt, u32 fmt_size, ...) - FunctionType *traceprintk_func_type = FunctionType::get( -- getInt64Ty(), { getInt8PtrTy(), getInt32Ty() }, true); -+ getInt64Ty(), { GET_PTR_TY(), getInt32Ty() }, true); - - CreateHelperCall(libbpf::BPF_FUNC_trace_printk, - traceprintk_func_type, -@@ -1721,7 +1719,7 @@ void IRBuilderBPF::CreateOverrideReturn(Value *ctx, Value *rc) - // long bpf_override_return(struct pt_regs *regs, u64 rc) - // Return: 0 - FunctionType *override_func_type = FunctionType::get( -- getInt64Ty(), { getInt8PtrTy(), getInt64Ty() }, false); -+ getInt64Ty(), { GET_PTR_TY(), getInt64Ty() }, false); - PointerType *override_func_ptr_type = PointerType::get(override_func_type, 0); - Constant *override_func = ConstantExpr::getCast(Instruction::IntToPtr, - getInt64(libbpf::BPF_FUNC_override_return), -@@ -1901,7 +1899,7 @@ void IRBuilderBPF::CreateHelperError(Value *ctx, - libbpf::bpf_func_id func_id, - const location &loc) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - assert(return_value && return_value->getType() == getInt32Ty()); - - if (bpftrace_.helper_check_level_ == 0 || -@@ -1941,7 +1939,7 @@ void IRBuilderBPF::CreateHelperErrorCond(Value *ctx, - const location &loc, - bool compare_zero) - { -- assert(ctx && ctx->getType() == getInt8PtrTy()); -+ assert(ctx && ctx->getType() == GET_PTR_TY()); - if (bpftrace_.helper_check_level_ == 0 || - (bpftrace_.helper_check_level_ == 1 && return_zero_if_err(func_id))) - return; -@@ -1977,7 +1975,7 @@ void IRBuilderBPF::CreatePath(Value *ctx, - // int bpf_d_path(struct path *path, char *buf, u32 sz) - // Return: 0 or error - FunctionType *d_path_func_type = FunctionType::get( -- getInt64Ty(), { getInt8PtrTy(), buf->getType(), getInt32Ty() }, false); -+ getInt64Ty(), { GET_PTR_TY(), buf->getType(), getInt32Ty() }, false); - CallInst *call = CreateHelperCall( - libbpf::bpf_func_id::BPF_FUNC_d_path, - d_path_func_type, -@@ -1997,13 +1995,10 @@ void IRBuilderBPF::CreateSeqPrintf(Value *ctx, - // long bpf_seq_printf(struct seq_file *m, const char *fmt, __u32 fmt_size, - // const void *data, __u32 data_len) - // Return: 0 or error -- FunctionType *seq_printf_func_type = FunctionType::get(getInt64Ty(), -- { getInt64Ty(), -- getInt8PtrTy(), -- getInt32Ty(), -- getInt8PtrTy(), -- getInt32Ty() }, -- false); -+ FunctionType *seq_printf_func_type = FunctionType::get( -+ getInt64Ty(), -+ { getInt64Ty(), GET_PTR_TY(), getInt32Ty(), GET_PTR_TY(), getInt32Ty() }, -+ false); - PointerType *seq_printf_func_ptr_type = PointerType::get(seq_printf_func_type, - 0); - Constant *seq_printf_func = ConstantExpr::getCast( -diff --git a/src/ast/irbuilderbpf.h b/src/ast/irbuilderbpf.h -index 739aa75d..a5148b60 100644 ---- a/src/ast/irbuilderbpf.h -+++ b/src/ast/irbuilderbpf.h -@@ -46,6 +46,12 @@ - CreateAtomicRMW((op), (ptr), (val), (order)) - #endif - -+#if LLVM_VERSION_MAJOR >= 15 -+#define GET_PTR_TY() getPtrTy() -+#else -+#define GET_PTR_TY() getInt8PtrTy() -+#endif -+ - namespace bpftrace { - namespace ast { - -diff --git a/src/ast/passes/codegen_llvm.cpp b/src/ast/passes/codegen_llvm.cpp -index c7adc426..0e00a14d 100644 ---- a/src/ast/passes/codegen_llvm.cpp -+++ b/src/ast/passes/codegen_llvm.cpp -@@ -439,10 +439,10 @@ void CodegenLLVM::visit(Call &call) - - AllocaInst *value = b_.CreateAllocaBPF(type, "lookup_elem_val"); - Value *condition = b_.CreateICmpNE( -- b_.CreateIntCast(lookup, b_.getInt8PtrTy(), true), -+ b_.CreateIntCast(lookup, b_.GET_PTR_TY(), true), - ConstantExpr::getCast(Instruction::IntToPtr, - b_.getInt64(0), -- b_.getInt8PtrTy()), -+ b_.GET_PTR_TY()), - "map_lookup_cond"); - b_.CreateCondBr(condition, lookup_success_block, lookup_failure_block); - -@@ -496,10 +496,10 @@ void CodegenLLVM::visit(Call &call) - - AllocaInst *value = b_.CreateAllocaBPF(type, "lookup_elem_val"); - Value *condition = b_.CreateICmpNE( -- b_.CreateIntCast(lookup, b_.getInt8PtrTy(), true), -+ b_.CreateIntCast(lookup, b_.GET_PTR_TY(), true), - ConstantExpr::getCast(Instruction::IntToPtr, - b_.getInt64(0), -- b_.getInt8PtrTy()), -+ b_.GET_PTR_TY()), - "map_lookup_cond"); - b_.CreateCondBr(condition, lookup_success_block, lookup_failure_block); - -@@ -760,7 +760,7 @@ void CodegenLLVM::visit(Call &call) - ? Instruction::BitCast - : Instruction::IntToPtr, - expr_, -- b_.getInt8PtrTy()), -+ b_.GET_PTR_TY()), - call.loc); - expr_ = buf; - expr_deleter_ = [this, buf]() { b_.CreateLifetimeEnd(buf); }; -@@ -1030,9 +1030,9 @@ void CodegenLLVM::visit(Call &call) - - // and finally the seq_printf call - b_.CreateSeqPrintf(ctx_, -- b_.CreateIntToPtr(fmt, b_.getInt8PtrTy()), -+ b_.CreateIntToPtr(fmt, b_.GET_PTR_TY()), - b_.getInt32(size), -- b_.CreatePointerCast(data, b_.getInt8PtrTy()), -+ b_.CreatePointerCast(data, b_.GET_PTR_TY()), - b_.getInt32(data_size), - call.loc); - -@@ -1066,7 +1066,7 @@ void CodegenLLVM::visit(Call &call) - values.push_back(expr_); - } - -- b_.CreateTracePrintk(b_.CreateIntToPtr(fmt, b_.getInt8PtrTy()), -+ b_.CreateTracePrintk(b_.CreateIntToPtr(fmt, b_.GET_PTR_TY()), - b_.getInt32(size), - values, - call.loc); -@@ -2093,7 +2093,7 @@ void CodegenLLVM::visit(FieldAccess &acc) - // `is_data_loc` should only be set if field access is on `args` which - // has to be a ctx access - assert(type.IsCtxAccess()); -- assert(ctx_->getType() == b_.getInt8PtrTy()); -+ assert(ctx_->getType() == b_.GET_PTR_TY()); - // Parser needs to have rewritten field to be a u64 - assert(field.type.IsIntTy()); - assert(field.type.GetIntBitWidth() == 64); -@@ -2685,7 +2685,7 @@ void CodegenLLVM::visit(Probe &probe) - { - FunctionType *func_type = FunctionType::get( - b_.getInt64Ty(), -- {b_.getInt8PtrTy()}, // struct pt_regs *ctx -+ {b_.GET_PTR_TY()}, // struct pt_regs *ctx - false); - - // Probe has at least one attach point (required by the parser) -@@ -3880,7 +3880,7 @@ Function *CodegenLLVM::createMapLenCallback() - auto saved_ip = b_.saveIP(); - - std::array args = { -- b_.getInt8PtrTy(), b_.getInt8PtrTy(), b_.getInt8PtrTy(), b_.getInt8PtrTy() -+ b_.GET_PTR_TY(), b_.GET_PTR_TY(), b_.GET_PTR_TY(), b_.GET_PTR_TY() - }; - - FunctionType *callback_type = FunctionType::get(b_.getInt64Ty(), args, false); --- -2.33.8 - - -From be31e10702e1cb747da8729ec3162ed1dae65dc4 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Feb 2024 10:40:21 -0800 -Subject: [PATCH 4/5] ast: Adjust to enum changes in llvm 18 - -llvm 18 has change CodeGenOpt::Level/CodeGenFileType into enum classes via -https://github.com/llvm/llvm-project/commit/0a1aa6cda2758b0926a95f87d39ffefb1cb90200 - -Signed-off-by: Khem Raj -Signed-off-by: Daniel Xu ---- - src/ast/passes/codegen_llvm.cpp | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/ast/passes/codegen_llvm.cpp b/src/ast/passes/codegen_llvm.cpp -index 0e00a14d..f3aa091e 100644 ---- a/src/ast/passes/codegen_llvm.cpp -+++ b/src/ast/passes/codegen_llvm.cpp -@@ -72,7 +72,11 @@ CodegenLLVM::CodegenLLVM(Node *root, BPFtrace &bpftrace) - Optional() - #endif - )); -+#if LLVM_VERSION_MAJOR >= 18 -+ target_machine_->setOptLevel(llvm::CodeGenOptLevel::Aggressive); -+#else - target_machine_->setOptLevel(llvm::CodeGenOpt::Aggressive); -+#endif - - module_->setTargetTriple(LLVMTargetTriple); - module_->setDataLayout(target_machine_->createDataLayout()); -@@ -3617,7 +3621,9 @@ void CodegenLLVM::emit(raw_pwrite_stream &stream) - { - legacy::PassManager PM; - --#if LLVM_VERSION_MAJOR >= 10 -+#if LLVM_VERSION_MAJOR >= 18 -+ auto type = CodeGenFileType::ObjectFile; -+#elif LLVM_VERSION_MAJOR >= 10 - auto type = llvm::CGFT_ObjectFile; - #else - auto type = llvm::TargetMachine::CGFT_ObjectFile; --- -2.33.8 - - -From 802cb8a62aa4ff5a97e629b96ba9e069859511db Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Feb 2024 10:14:41 -0800 -Subject: [PATCH 5/5] cmake: Bump max LLVM version to 18+ - -Signed-off-by: Khem Raj ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 472068fc..fc6844de 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -139,7 +139,7 @@ else() - endif() - - set(MIN_LLVM_MAJOR 6) --set(MAX_LLVM_MAJOR 17) -+set(MAX_LLVM_MAJOR 18) - - if((${LLVM_VERSION_MAJOR} VERSION_LESS ${MIN_LLVM_MAJOR}) OR (${LLVM_VERSION_MAJOR} VERSION_GREATER ${MAX_LLVM_MAJOR})) - message(SEND_ERROR "Unsupported LLVM version found via ${LLVM_INCLUDE_DIRS}: ${LLVM_VERSION_MAJOR}") --- -2.33.8 - diff --git a/SPECS/bpftrace/bpftrace.signatures.json b/SPECS/bpftrace/bpftrace.signatures.json index b81d801dce5..9e79c0a8098 100644 --- a/SPECS/bpftrace/bpftrace.signatures.json +++ b/SPECS/bpftrace/bpftrace.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "bpftrace-0.20.3.tar.gz": "29057213d253f893590b3e0a358c9382ec8ddaa6efd1af500aaaf297d23beafc" + "bpftrace-0.23.5.tar.gz": "f01fea3f738f5d1174371326d2424c48f260f5fdc32dad85e009912baa9e1132" } } diff --git a/SPECS/bpftrace/bpftrace.spec b/SPECS/bpftrace/bpftrace.spec index dae6bc189f1..f1691cf1cf9 100644 --- a/SPECS/bpftrace/bpftrace.spec +++ b/SPECS/bpftrace/bpftrace.spec @@ -1,14 +1,14 @@ Summary: Berkeley Packet Filter Tracing Language Name: bpftrace -Version: 0.20.3 +Version: 0.23.5 Release: 1%{?dist} License: ASL 2.0 Vendor: Microsoft Corporation Distribution: Azure Linux Group: Applications/System -URL: https://github.com/iovisor/bpftrace +URL: https://github.com/bpftrace/bpftrace Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -Patch0: bpftrace-0.20-llvm18.patch +Patch0: 0001-Remove-cstring_view.patch BuildRequires: bcc-devel BuildRequires: binutils-devel BuildRequires: bison @@ -67,7 +67,11 @@ make %check cd build +%ifarch aarch64 +BPFTRACE_UPDATE_TESTS=1 ./tests/bpftrace_test --gtest_filter=-codegen.* --rerun-failed --output-on-failure +%else ./tests/bpftrace_test --rerun-failed --output-on-failure +%endif %install mkdir -p %{buildroot}%{_bindir}/ @@ -83,6 +87,11 @@ install -p -m 644 tools/*.txt %{buildroot}%{_datadir}/bpftrace/tools/doc %{_datadir}/bpftrace/tools %changelog +* Thu Jul 24 2025 Sriram Nambakam - 0.23.5-1 +- Upgrade version to 0.23.5 +- This version has LLVM18 support. Therefore remove corresponding patch. +- Apply patch to disable cstring_view null termination check. + * Thu Apr 18 2024 Andrew Phelps - 0.20.3-1 - Upgrade version to 0.20.3 - Add patch to support building with LLVM 18 diff --git a/SPECS/kernel-64k/config_aarch64 b/SPECS/kernel-64k/config_aarch64 index 5b8f142cdf5..352b0115303 100644 --- a/SPECS/kernel-64k/config_aarch64 +++ b/SPECS/kernel-64k/config_aarch64 @@ -10563,7 +10563,7 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=m +CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y @@ -10588,10 +10588,10 @@ CONFIG_CRYPTO_ENGINE=y # CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m -# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set -CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=m -# CONFIG_CRYPTO_ECDSA is not set +CONFIG_CRYPTO_ECDSA=y # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set diff --git a/SPECS/kernel-64k/kernel-64k.signatures.json b/SPECS/kernel-64k/kernel-64k.signatures.json index 0c97d60f24a..7aaa2982d20 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": "041daf4228d7f057d48235a4a060de91aa9a82e3c837cb1cf80e7bef13c6419f", + "config_aarch64": "ab157e1a8b6223b05fa69af6fdfe5e5fc58cc727667b5e50930d4f534a247c9b", "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 7c65c6bc5db..e655409ae74 100644 --- a/SPECS/kernel-64k/kernel-64k.spec +++ b/SPECS/kernel-64k/kernel-64k.spec @@ -27,7 +27,7 @@ Summary: Linux Kernel Name: kernel-64k Version: 6.6.96.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -379,6 +379,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS/kernel-headers/kernel-headers.spec b/SPECS/kernel-headers/kernel-headers.spec index e75c31a6354..e141d906519 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.96.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -75,6 +75,9 @@ done %endif %changelog +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS/kernel/config b/SPECS/kernel/config index c543ee3476b..17ca4881433 100644 --- a/SPECS/kernel/config +++ b/SPECS/kernel/config @@ -7513,10 +7513,10 @@ CONFIG_CRYPTO_ENGINE=m # CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m -# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set -CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=m -# CONFIG_CRYPTO_ECDSA is not set +CONFIG_CRYPTO_ECDSA=y # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set @@ -7684,9 +7684,9 @@ CONFIG_CRYPTO_CHACHA20_X86_64=m CONFIG_CRYPTO_BLAKE2S_X86=y # CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set CONFIG_CRYPTO_POLY1305_X86_64=m -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA256_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512_SSSE3=m # CONFIG_CRYPTO_SM3_AVX_X86_64 is not set # CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set CONFIG_CRYPTO_CRC32C_INTEL=m diff --git a/SPECS/kernel/config_aarch64 b/SPECS/kernel/config_aarch64 index 09e582ad9af..9d49fd2fc65 100644 --- a/SPECS/kernel/config_aarch64 +++ b/SPECS/kernel/config_aarch64 @@ -10539,7 +10539,7 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=m +CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y @@ -10564,10 +10564,10 @@ CONFIG_CRYPTO_ENGINE=y # CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m -# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set -CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=m -# CONFIG_CRYPTO_ECDSA is not set +CONFIG_CRYPTO_ECDSA=y # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set diff --git a/SPECS/kernel/kernel-uki.spec b/SPECS/kernel/kernel-uki.spec index 8a0639c8ade..28fb0b621fd 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.96.1 -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 +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Bump release to match kernel + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS/kernel/kernel.signatures.json b/SPECS/kernel/kernel.signatures.json index 7f98ebebd67..c07510977b1 100644 --- a/SPECS/kernel/kernel.signatures.json +++ b/SPECS/kernel/kernel.signatures.json @@ -1,8 +1,8 @@ { "Signatures": { "azurelinux-ca-20230216.pem": "d545401163c75878319f01470455e6bc18a5968e39dd964323225e3fe308849b", - "config": "86b7c08764d8c4c4e955cdded877b2c8d387b82d375a64b4a12d8c6e611202dd", - "config_aarch64": "f46e12c2cfab204c8e8ea8b4250c7778e886926df4ec4849c3da58b6460213d3", + "config": "1ae57ff6851ef5bb2868c23f04a5794a823b4ed8412212fdbde2af1c7ff284b6", + "config_aarch64": "1d85b489585e2b1b332b287ceb27d9c873b96dbe06f5416007ea8ee99ed72538", "cpupower": "d7518767bf2b1110d146a49c7d42e76b803f45eb8bd14d931aa6d0d346fae985", "cpupower.service": "b057fe9e5d0e8c36f485818286b80e3eba8ff66ff44797940e99b1fd5361bb98", "sha512hmac-openssl.sh": "02ab91329c4be09ee66d759e4d23ac875037c3b56e5a598e32fd1206da06a27f", diff --git a/SPECS/kernel/kernel.spec b/SPECS/kernel/kernel.spec index 360f1498c17..26bc3104f62 100644 --- a/SPECS/kernel/kernel.spec +++ b/SPECS/kernel/kernel.spec @@ -32,7 +32,7 @@ Summary: Linux Kernel Name: kernel Version: 6.6.96.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2 Vendor: Microsoft Corporation Distribution: Azure Linux @@ -439,6 +439,9 @@ echo "initrd of kernel %{uname_r} removed" >&2 %{_sysconfdir}/bash_completion.d/bpftool %changelog +* Thu Jul 17 2025 Rachel Menge - 6.6.96.1-2 +- Add additional crypto support + * Mon Jul 07 2025 CBL-Mariner Servicing Account - 6.6.96.1-1 - Auto-upgrade to 6.6.96.1 diff --git a/SPECS/libbpf/0001-libbpf-Fix-buffer-overflow-in-bpf_object__init_prog.patch b/SPECS/libbpf/0001-libbpf-Fix-buffer-overflow-in-bpf_object__init_prog.patch new file mode 100644 index 00000000000..e8079261742 --- /dev/null +++ b/SPECS/libbpf/0001-libbpf-Fix-buffer-overflow-in-bpf_object__init_prog.patch @@ -0,0 +1,101 @@ +From 806b4e0a9f658d831119cece11a082ba1578b800 Mon Sep 17 00:00:00 2001 +From: Viktor Malik +Date: Tue, 15 Apr 2025 17:50:14 +0200 +Subject: [PATCH] libbpf: Fix buffer overflow in bpf_object__init_prog + +As shown in [1], it is possible to corrupt a BPF ELF file such that +arbitrary BPF instructions are loaded by libbpf. This can be done by +setting a symbol (BPF program) section offset to a large (unsigned) +number such that
overflows and points +before the section data in the memory. + +Consider the situation below where: +- prog_start = sec_start + symbol_offset <-- size_t overflow here +- prog_end = prog_start + prog_size + + prog_start sec_start prog_end sec_end + | | | | + v v v v + .....................|################################|............ + +The report in [1] also provides a corrupted BPF ELF which can be used as +a reproducer: + + $ readelf -S crash + Section Headers: + [Nr] Name Type Address Offset + Size EntSize Flags Link Info Align + ... + [ 2] uretprobe.mu[...] PROGBITS 0000000000000000 00000040 + 0000000000000068 0000000000000000 AX 0 0 8 + + $ readelf -s crash + Symbol table '.symtab' contains 8 entries: + Num: Value Size Type Bind Vis Ndx Name + ... + 6: ffffffffffffffb8 104 FUNC GLOBAL DEFAULT 2 handle_tp + +Here, the handle_tp prog has section offset ffffffffffffffb8, i.e. will +point before the actual memory where section 2 is allocated. + +This is also reported by AddressSanitizer: + + ================================================================= + ==1232==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7c7302fe0000 at pc 0x7fc3046e4b77 bp 0x7ffe64677cd0 sp 0x7ffe64677490 + READ of size 104 at 0x7c7302fe0000 thread T0 + #0 0x7fc3046e4b76 in memcpy (/lib64/libasan.so.8+0xe4b76) + #1 0x00000040df3e in bpf_object__init_prog /src/libbpf/src/libbpf.c:856 + #2 0x00000040df3e in bpf_object__add_programs /src/libbpf/src/libbpf.c:928 + #3 0x00000040df3e in bpf_object__elf_collect /src/libbpf/src/libbpf.c:3930 + #4 0x00000040df3e in bpf_object_open /src/libbpf/src/libbpf.c:8067 + #5 0x00000040f176 in bpf_object__open_file /src/libbpf/src/libbpf.c:8090 + #6 0x000000400c16 in main /poc/poc.c:8 + #7 0x7fc3043d25b4 in __libc_start_call_main (/lib64/libc.so.6+0x35b4) + #8 0x7fc3043d2667 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x3667) + #9 0x000000400b34 in _start (/poc/poc+0x400b34) + + 0x7c7302fe0000 is located 64 bytes before 104-byte region [0x7c7302fe0040,0x7c7302fe00a8) + allocated by thread T0 here: + #0 0x7fc3046e716b in malloc (/lib64/libasan.so.8+0xe716b) + #1 0x7fc3045ee600 in __libelf_set_rawdata_wrlock (/lib64/libelf.so.1+0xb600) + #2 0x7fc3045ef018 in __elf_getdata_rdlock (/lib64/libelf.so.1+0xc018) + #3 0x00000040642f in elf_sec_data /src/libbpf/src/libbpf.c:3740 + +The problem here is that currently, libbpf only checks that the program +end is within the section bounds. There used to be a check +`while (sec_off < sec_sz)` in bpf_object__add_programs, however, it was +removed by commit 6245947c1b3c ("libbpf: Allow gaps in BPF program +sections to support overriden weak functions"). + +Add a check for detecting the overflow of `sec_off + prog_sz` to +bpf_object__init_prog to fix this issue. + +[1] https://github.com/lmarch2/poc/blob/main/libbpf/libbpf.md + +Fixes: 6245947c1b3c ("libbpf: Allow gaps in BPF program sections to support overriden weak functions") +Reported-by: lmarch2 <2524158037@qq.com> +Signed-off-by: Viktor Malik +Signed-off-by: Andrii Nakryiko +Reviewed-by: Shung-Hsi Yu +Link: https://github.com/lmarch2/poc/blob/main/libbpf/libbpf.md +Link: https://lore.kernel.org/bpf/20250415155014.397603-1-vmalik@redhat.com +--- + src/libbpf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libbpf.c b/src/libbpf.c +index b2591f5..56250b5 100644 +--- a/src/libbpf.c ++++ b/src/libbpf.c +@@ -896,7 +896,7 @@ bpf_object__add_programs(struct bpf_object *obj, Elf_Data *sec_data, + return -LIBBPF_ERRNO__FORMAT; + } + +- if (sec_off + prog_sz > sec_sz) { ++ if (sec_off + prog_sz > sec_sz || sec_off + prog_sz < sec_off) { + pr_warn("sec '%s': program at offset %zu crosses section boundary\n", + sec_name, sec_off); + return -LIBBPF_ERRNO__FORMAT; +-- +2.45.4 + diff --git a/SPECS/libbpf/CVE-2025-29481.patch b/SPECS/libbpf/CVE-2025-29481.patch deleted file mode 100644 index 6eb0104010a..00000000000 --- a/SPECS/libbpf/CVE-2025-29481.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 61aa55706bb3792731eeab1496ece30c011ddb52 Mon Sep 17 00:00:00 2001 -From: jykanase -Date: Fri, 11 Apr 2025 12:07:55 +0000 -Subject: [PATCH] CVE-2025-29481 - -Upstream patch reference: https://lore.kernel.org/bpf/20250410073407.131211-1-vmalik@redhat.com/ ---- - src/libbpf.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libbpf.c b/src/libbpf.c -index 1b95c06..36ec2e0 100644 ---- a/src/libbpf.c -+++ b/src/libbpf.c -@@ -826,7 +826,7 @@ bpf_object__add_programs(struct bpf_object *obj, Elf_Data *sec_data, - return -LIBBPF_ERRNO__FORMAT; - } - -- if (sec_off + prog_sz > sec_sz) { -+ if (sec_off >= sec_sz || sec_off + prog_sz > sec_sz) { - pr_warn("sec '%s': program at offset %zu crosses section boundary\n", - sec_name, sec_off); - return -LIBBPF_ERRNO__FORMAT; --- -2.45.2 - diff --git a/SPECS/libbpf/libbpf.signatures.json b/SPECS/libbpf/libbpf.signatures.json index d3349ea8914..f56e8b72f00 100644 --- a/SPECS/libbpf/libbpf.signatures.json +++ b/SPECS/libbpf/libbpf.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "libbpf-1.2.2.tar.gz": "32b0c41eabfbbe8e0c8aea784d7495387ff9171b5a338480a8fbaceb9da8d5e5" + "libbpf-1.5.0.tar.gz": "53492aff6dd47e4da04ef5e672d753b9743848bdb38e9d90eafbe190b7983c44" } } diff --git a/SPECS/libbpf/libbpf.spec b/SPECS/libbpf/libbpf.spec index 49a7fe0fe7d..2d31b60d595 100644 --- a/SPECS/libbpf/libbpf.spec +++ b/SPECS/libbpf/libbpf.spec @@ -1,13 +1,13 @@ Summary: Libbpf library Name: libbpf -Version: 1.2.2 +Version: 1.5.0 Release: 2%{?dist} License: LGPLv2 OR BSD Vendor: Microsoft Corporation Distribution: Azure Linux URL: https://github.com/%{name}/%{name} Source0: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -Patch0: CVE-2025-29481.patch +Patch0: 0001-libbpf-Fix-buffer-overflow-in-bpf_object__init_prog.patch BuildRequires: elfutils-devel BuildRequires: elfutils-libelf-devel @@ -51,6 +51,12 @@ find %{buildroot} -type f -name "*.a" -delete -print %{_libdir}/pkgconfig/libbpf.pc %changelog +* Wed Jul 30 2025 Sriram Nambakam - 1.5.0-2 +- Patch CVE-2025-29481 + +* Fri Jul 25 2025 Sriram Nambakam - 1.5.0-1 +- Update to version 1.5.0 + * Mon Apr 14 2025 Jyoti Kanase - 1.2.2-2 - Patch for CVE-2025-29481 diff --git a/SPECS/perl/CVE-2025-40909.patch b/SPECS/perl/CVE-2025-40909.patch new file mode 100644 index 00000000000..f1f7bc69273 --- /dev/null +++ b/SPECS/perl/CVE-2025-40909.patch @@ -0,0 +1,409 @@ +From 288b4a81fe815d7193154e92593ece358ff947e2 Mon Sep 17 00:00:00 2001 +From: Aninda +Date: Tue, 3 Jun 2025 09:33:20 -0400 +Subject: [PATCH] Address CVE-2025-40909 +Upstream Patch Reference: https://github.com/Perl/perl5/commit/918bfff86ca8d6d4e4ec5b30994451e0bd74aba9.patch + +--- + Configure | 6 ++ + Cross/config.sh-arm-linux | 1 + + Cross/config.sh-arm-linux-n770 | 1 + + Porting/Glossary | 5 ++ + Porting/config.sh | 1 + + config_h.SH | 6 ++ + configure.com | 1 + + plan9/config_sh.sample | 1 + + sv.c | 91 +---------------------------- + t/op/threads-dirh.t | 104 +-------------------------------- + win32/config.gc | 1 + + win32/config.vc | 1 + + 12 files changed, 28 insertions(+), 191 deletions(-) + +diff --git a/Configure b/Configure +index e662b49..8327989 100755 +--- a/Configure ++++ b/Configure +@@ -478,6 +478,7 @@ d_fd_set='' + d_fds_bits='' + d_fdclose='' + d_fdim='' ++d_fdopendir='' + d_fegetround='' + d_ffs='' + d_ffsl='' +@@ -13337,6 +13338,10 @@ esac + set i_fcntl + eval $setvar + ++: see if fdopendir exists ++set fdopendir d_fdopendir ++eval $inlibc ++ + : see if fork exists + set fork d_fork + eval $inlibc +@@ -24808,6 +24813,7 @@ d_flockproto='$d_flockproto' + d_fma='$d_fma' + d_fmax='$d_fmax' + d_fmin='$d_fmin' ++d_fdopendir='$d_fdopendir' + d_fork='$d_fork' + d_fp_class='$d_fp_class' + d_fp_classify='$d_fp_classify' +diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux +index a61ea41..19154f2 100644 +--- a/Cross/config.sh-arm-linux ++++ b/Cross/config.sh-arm-linux +@@ -212,6 +212,7 @@ d_fd_macros='define' + d_fd_set='define' + d_fdclose='undef' + d_fdim='undef' ++d_fdopendir=undef + d_fds_bits='undef' + d_fegetround='define' + d_ffs='undef' +diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770 +index ed18781..ec32ad9 100644 +--- a/Cross/config.sh-arm-linux-n770 ++++ b/Cross/config.sh-arm-linux-n770 +@@ -211,6 +211,7 @@ d_fd_macros='define' + d_fd_set='define' + d_fdclose='undef' + d_fdim='undef' ++d_fdopendir=undef + d_fds_bits='undef' + d_fegetround='define' + d_ffs='undef' +diff --git a/Porting/Glossary b/Porting/Glossary +index f38aa14..2b0df05 100644 +--- a/Porting/Glossary ++++ b/Porting/Glossary +@@ -947,6 +947,11 @@ d_fmin (d_fmin.U): + This variable conditionally defines the HAS_FMIN symbol, which + indicates to the C program that the fmin() routine is available. + ++d_fdopendir (d_fdopendir.U): ++ This variable conditionally defines the HAS_FORK symbol, which ++ indicates that the fdopen routine is available to open a ++ directory descriptor. ++ + d_fork (d_fork.U): + This variable conditionally defines the HAS_FORK symbol, which + indicates to the C program that the fork() routine is available. +diff --git a/Porting/config.sh b/Porting/config.sh +index f914487..5834918 100644 +--- a/Porting/config.sh ++++ b/Porting/config.sh +@@ -223,6 +223,7 @@ d_fd_macros='define' + d_fd_set='define' + d_fdclose='undef' + d_fdim='define' ++d_fdopendir='define' + d_fds_bits='define' + d_fegetround='define' + d_ffs='define' +diff --git a/config_h.SH b/config_h.SH +index 5880dc5..bf930a6 100755 +--- a/config_h.SH ++++ b/config_h.SH +@@ -142,6 +142,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un + */ + #$d_fcntl HAS_FCNTL /**/ + ++/* HAS_FDOPENDIR: ++ * This symbol, if defined, indicates that the fdopen routine is ++ * available to open a directory descriptor. ++ */ ++#$d_fdopendir HAS_FDOPENDIR /**/ ++ + /* HAS_FGETPOS: + * This symbol, if defined, indicates that the fgetpos routine is + * available to get the file position indicator, similar to ftell(). +diff --git a/configure.com b/configure.com +index 9b43ca6..6514f32 100644 +--- a/configure.com ++++ b/configure.com +@@ -6010,6 +6010,7 @@ $ WC "d_fd_set='" + d_fd_set + "'" + $ WC "d_fd_macros='define'" + $ WC "d_fdclose='undef'" + $ WC "d_fdim='" + d_fdim + "'" ++$ WC "d_fdopendir='undef'" + $ WC "d_fds_bits='define'" + $ WC "d_fegetround='undef'" + $ WC "d_ffs='undef'" +diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample +index e9dba44..12322fa 100644 +--- a/plan9/config_sh.sample ++++ b/plan9/config_sh.sample +@@ -212,6 +212,7 @@ d_fd_macros='undef' + d_fd_set='undef' + d_fdclose='undef' + d_fdim='undef' ++d_fdopendir=undef + d_fds_bits='undef' + d_fegetround='undef' + d_ffs='undef' +diff --git a/sv.c b/sv.c +index ae40a2d..f3403fd 100644 +--- a/sv.c ++++ b/sv.c +@@ -13944,15 +13944,6 @@ Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param) + { + DIR *ret; + +-#if defined(HAS_FCHDIR) && defined(HAS_TELLDIR) && defined(HAS_SEEKDIR) +- DIR *pwd; +- const Direntry_t *dirent; +- char smallbuf[256]; /* XXX MAXPATHLEN, surely? */ +- char *name = NULL; +- STRLEN len = 0; +- long pos; +-#endif +- + PERL_UNUSED_CONTEXT; + PERL_ARGS_ASSERT_DIRP_DUP; + +@@ -13964,89 +13955,13 @@ Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param) + if (ret) + return ret; + +-#if defined(HAS_FCHDIR) && defined(HAS_TELLDIR) && defined(HAS_SEEKDIR) ++#ifdef HAS_FDOPENDIR + + PERL_UNUSED_ARG(param); + +- /* create anew */ +- +- /* open the current directory (so we can switch back) */ +- if (!(pwd = PerlDir_open("."))) return (DIR *)NULL; +- +- /* chdir to our dir handle and open the present working directory */ +- if (fchdir(my_dirfd(dp)) < 0 || !(ret = PerlDir_open("."))) { +- PerlDir_close(pwd); +- return (DIR *)NULL; +- } +- /* Now we should have two dir handles pointing to the same dir. */ +- +- /* Be nice to the calling code and chdir back to where we were. */ +- /* XXX If this fails, then what? */ +- PERL_UNUSED_RESULT(fchdir(my_dirfd(pwd))); ++ ret = fdopendir(dup(my_dirfd(dp))); + +- /* We have no need of the pwd handle any more. */ +- PerlDir_close(pwd); +- +-#ifdef DIRNAMLEN +-# define d_namlen(d) (d)->d_namlen +-#else +-# define d_namlen(d) strlen((d)->d_name) +-#endif +- /* Iterate once through dp, to get the file name at the current posi- +- tion. Then step back. */ +- pos = PerlDir_tell(dp); +- if ((dirent = PerlDir_read(dp))) { +- len = d_namlen(dirent); +- if (len > sizeof(dirent->d_name) && sizeof(dirent->d_name) > PTRSIZE) { +- /* If the len is somehow magically longer than the +- * maximum length of the directory entry, even though +- * we could fit it in a buffer, we could not copy it +- * from the dirent. Bail out. */ +- PerlDir_close(ret); +- return (DIR*)NULL; +- } +- if (len <= sizeof smallbuf) name = smallbuf; +- else Newx(name, len, char); +- Move(dirent->d_name, name, len, char); +- } +- PerlDir_seek(dp, pos); +- +- /* Iterate through the new dir handle, till we find a file with the +- right name. */ +- if (!dirent) /* just before the end */ +- for(;;) { +- pos = PerlDir_tell(ret); +- if (PerlDir_read(ret)) continue; /* not there yet */ +- PerlDir_seek(ret, pos); /* step back */ +- break; +- } +- else { +- const long pos0 = PerlDir_tell(ret); +- for(;;) { +- pos = PerlDir_tell(ret); +- if ((dirent = PerlDir_read(ret))) { +- if (len == (STRLEN)d_namlen(dirent) +- && memEQ(name, dirent->d_name, len)) { +- /* found it */ +- PerlDir_seek(ret, pos); /* step back */ +- break; +- } +- /* else we are not there yet; keep iterating */ +- } +- else { /* This is not meant to happen. The best we can do is +- reset the iterator to the beginning. */ +- PerlDir_seek(ret, pos0); +- break; +- } +- } +- } +-#undef d_namlen +- +- if (name && name != smallbuf) +- Safefree(name); +-#endif +- +-#ifdef WIN32 ++#elif defined(WIN32) + ret = win32_dirp_dup(dp, param); + #endif + +diff --git a/t/op/threads-dirh.t b/t/op/threads-dirh.t +index bb4bcfc..14c399c 100644 +--- a/t/op/threads-dirh.t ++++ b/t/op/threads-dirh.t +@@ -13,16 +13,12 @@ BEGIN { + skip_all_if_miniperl("no dynamic loading on miniperl, no threads"); + skip_all("runs out of memory on some EBCDIC") if $ENV{PERL_SKIP_BIG_MEM_TESTS}; + +- plan(6); ++ plan(1); + } + + use strict; + use warnings; + use threads; +-use threads::shared; +-use File::Path; +-use File::Spec::Functions qw 'updir catdir'; +-use Cwd 'getcwd'; + + # Basic sanity check: make sure this does not crash + fresh_perl_is <<'# this is no comment', 'ok', {}, 'crash when duping dirh'; +@@ -31,101 +27,3 @@ fresh_perl_is <<'# this is no comment', 'ok', {}, 'crash when duping dirh'; + async{}->join for 1..2; + print "ok"; + # this is no comment +- +-my $dir; +-SKIP: { +- skip "telldir or seekdir not defined on this platform", 5 +- if !$Config::Config{d_telldir} || !$Config::Config{d_seekdir}; +- my $skip = sub { +- chdir($dir); +- chdir updir; +- skip $_[0], 5 +- }; +- +- if(!$Config::Config{d_fchdir} && $^O ne "MSWin32") { +- $::TODO = 'dir handle cloning currently requires fchdir on non-Windows platforms'; +- } +- +- my @w :shared; # warnings accumulator +- local $SIG{__WARN__} = sub { push @w, $_[0] }; +- +- $dir = catdir getcwd(), "thrext$$" . int rand() * 100000; +- +- rmtree($dir) if -d $dir; +- mkdir($dir); +- +- # Create a dir structure like this: +- # $dir +- # | +- # `- toberead +- # | +- # +---- thrit +- # | +- # +---- rile +- # | +- # `---- zor +- +- chdir($dir); +- mkdir 'toberead'; +- chdir 'toberead'; +- {open my $fh, ">thrit" or &$skip("Cannot create file thrit")} +- {open my $fh, ">rile" or &$skip("Cannot create file rile")} +- {open my $fh, ">zor" or &$skip("Cannot create file zor")} +- chdir updir; +- +- # Then test that dir iterators are cloned correctly. +- +- opendir my $toberead, 'toberead'; +- my $start_pos = telldir $toberead; +- my @first_2 = (scalar readdir $toberead, scalar readdir $toberead); +- my @from_thread = @{; async { [readdir $toberead ] } ->join }; +- my @from_main = readdir $toberead; +- is join('-', sort @from_thread), join('-', sort @from_main), +- 'dir iterator is copied from one thread to another'; +- like +- join('-', "", sort(@first_2, @from_thread), ""), +- qr/(?join, 'undef', +- 'cloned dir iterator that points to the end of the directory' +- ; +- } +- +- # Make sure the cloning code can handle file names longer than 255 chars +- SKIP: { +- chdir 'toberead'; +- open my $fh, +- ">floccipaucinihilopilification-" +- . "pneumonoultramicroscopicsilicovolcanoconiosis-" +- . "lopadotemachoselachogaleokranioleipsanodrimypotrimmatosilphiokarabo" +- . "melitokatakechymenokichlepikossyphophattoperisteralektryonoptokephal" +- . "liokinklopeleiolagoiosiraiobaphetraganopterygon" +- or +- chdir updir, +- skip("OS does not support long file names (and I mean *long*)", 1); +- chdir updir; +- opendir my $dirh, "toberead"; +- my $test_name +- = "dir iterators can be cloned when the next fn > 255 chars"; +- while() { +- my $pos = telldir $dirh; +- my $fn = readdir($dirh); +- if(!defined $fn) { fail($test_name); last SKIP; } +- if($fn =~ 'lagoio') { +- seekdir $dirh, $pos; +- last; +- } +- } +- is length async { scalar readdir $dirh } ->join, 258, $test_name; +- } +- +- is scalar @w, 0, 'no warnings during all that' or diag @w; +- chdir updir; +-} +-rmtree($dir); +diff --git a/win32/config.gc b/win32/config.gc +index 3de8b72..6223615 100644 +--- a/win32/config.gc ++++ b/win32/config.gc +@@ -199,6 +199,7 @@ d_fd_macros='define' + d_fd_set='define' + d_fdclose='undef' + d_fdim='undef' ++d_fdopendir='undef' + d_fds_bits='define' + d_fegetround='undef' + d_ffs='undef' +diff --git a/win32/config.vc b/win32/config.vc +index 934e78f..b621cbf 100644 +--- a/win32/config.vc ++++ b/win32/config.vc +@@ -199,6 +199,7 @@ d_fd_macros='define' + d_fd_set='define' + d_fdclose='undef' + d_fdim='undef' ++d_fdopendir='undef' + d_fds_bits='define' + d_fegetround='undef' + d_ffs='undef' +-- +2.34.1 + diff --git a/SPECS/perl/perl.spec b/SPECS/perl/perl.spec index e3d4da3b1b6..331aaba694c 100644 --- a/SPECS/perl/perl.spec +++ b/SPECS/perl/perl.spec @@ -127,7 +127,7 @@ License: GPL+ or Artistic Epoch: %{perl_epoch} Version: %{perl_version} # release number must be even higher, because dual-lived modules will be broken otherwise -Release: 508%{?dist} +Release: 509%{?dist} Summary: Practical Extraction and Report Language Url: https://www.perl.org/ Vendor: Microsoft Corporation @@ -189,6 +189,8 @@ Patch202: perl-5.36.0-Add-definition-of-OPTIMIZE-to-.ph-files.patch Patch203: CVE-2024-56406.patch +Patch204: CVE-2025-40909.patch + # Update some of the bundled modules # see http://fedoraproject.org/wiki/Perl/perl.spec for instructions @@ -6844,6 +6846,9 @@ popd # Old changelog entries are preserved in CVS. %changelog +* Wed Jun 04 2025 Aninda Pradhan - 4:5.38.2-509 +- Patch CVE-2025-40909 + * Tue May 27 2025 Nicolas Guibourge - 4:5.38.2-508 - Remove password protected zip files from upstream src tarball diff --git a/cgmanifest.json b/cgmanifest.json index 4524cc1ee44..a3be65fb609 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -1237,8 +1237,8 @@ "type": "other", "other": { "name": "bpftrace", - "version": "0.20.3", - "downloadUrl": "https://github.com/iovisor/bpftrace/archive/refs/tags/v0.20.3.tar.gz" + "version": "0.23.5", + "downloadUrl": "https://github.com/bpftrace/bpftrace/archive/refs/tags/v0.23.5.tar.gz" } } }, @@ -1297,8 +1297,8 @@ "type": "other", "other": { "name": "buildah", - "version": "1.18.0", - "downloadUrl": "https://github.com/containers/buildah/archive/v1.18.0.tar.gz" + "version": "1.38.0", + "downloadUrl": "https://github.com/containers/buildah/archive/v1.38.0.tar.gz" } } }, @@ -8851,8 +8851,8 @@ "type": "other", "other": { "name": "libbpf", - "version": "1.2.2", - "downloadUrl": "https://github.com/libbpf/libbpf/archive/v1.2.2.tar.gz" + "version": "1.5.0", + "downloadUrl": "https://github.com/libbpf/libbpf/archive/v1.5.0.tar.gz" } } }, @@ -21373,8 +21373,8 @@ "type": "other", "other": { "name": "podman", - "version": "4.1.1", - "downloadUrl": "https://github.com/containers/podman/archive/v4.1.1.tar.gz" + "version": "5.5.2", + "downloadUrl": "https://github.com/containers/podman/archive/v5.5.2.tar.gz" } } }, @@ -28586,8 +28586,8 @@ "type": "other", "other": { "name": "SymCrypt-OpenSSL", - "version": "1.9.0", - "downloadUrl": "https://github.com/microsoft/SymCrypt-OpenSSL/archive/v1.9.0.tar.gz" + "version": "1.9.1", + "downloadUrl": "https://github.com/microsoft/SymCrypt-OpenSSL/archive/v1.9.1.tar.gz" } } }, diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index e1acb1f73ae..4e6e2973017 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.96.1-1.azl3.noarch.rpm +kernel-headers-6.6.96.1-2.azl3.noarch.rpm glibc-2.38-11.azl3.aarch64.rpm glibc-devel-2.38-11.azl3.aarch64.rpm glibc-i18n-2.38-11.azl3.aarch64.rpm @@ -107,64 +107,64 @@ libpipeline-devel-1.5.7-1.azl3.aarch64.rpm gdbm-1.23-1.azl3.aarch64.rpm gdbm-devel-1.23-1.azl3.aarch64.rpm gdbm-lang-1.23-1.azl3.aarch64.rpm -perl-B-1.88-508.azl3.aarch64.rpm -perl-Carp-1.54-508.azl3.noarch.rpm -perl-Class-Struct-0.68-508.azl3.noarch.rpm -perl-Data-Dumper-2.188-508.azl3.aarch64.rpm -perl-DynaLoader-1.54-508.azl3.aarch64.rpm -perl-Encode-3.19-508.azl3.aarch64.rpm -perl-Errno-1.37-508.azl3.aarch64.rpm -perl-Exporter-5.77-508.azl3.noarch.rpm -perl-Fcntl-1.15-508.azl3.aarch64.rpm -perl-File-Basename-2.86-508.azl3.noarch.rpm -perl-File-Compare-1.100.700-508.azl3.noarch.rpm -perl-File-Copy-2.41-508.azl3.noarch.rpm -perl-File-Path-2.18-508.azl3.noarch.rpm -perl-File-Temp-0.231.100-508.azl3.noarch.rpm -perl-File-stat-1.13-508.azl3.noarch.rpm -perl-FileHandle-2.05-508.azl3.noarch.rpm -perl-Getopt-Long-2.54-508.azl3.noarch.rpm -perl-Getopt-Std-1.13-508.azl3.noarch.rpm -perl-HTTP-Tiny-0.086-508.azl3.noarch.rpm -perl-I18N-Langinfo-0.22-508.azl3.aarch64.rpm -perl-IO-1.52-508.azl3.aarch64.rpm -perl-IPC-Open3-1.22-508.azl3.noarch.rpm -perl-MIME-Base64-3.16-508.azl3.aarch64.rpm -perl-POSIX-2.13-508.azl3.aarch64.rpm -perl-PathTools-3.89-508.azl3.aarch64.rpm -perl-Pod-Escapes-1.07-508.azl3.noarch.rpm -perl-Pod-Perldoc-3.28.01-508.azl3.noarch.rpm -perl-Pod-Simple-3.43-508.azl3.noarch.rpm -perl-Pod-Usage-2.03-508.azl3.noarch.rpm -perl-Scalar-List-Utils-1.63-508.azl3.aarch64.rpm -perl-SelectSaver-1.02-508.azl3.noarch.rpm -perl-Socket-2.036-508.azl3.aarch64.rpm -perl-Storable-3.32-508.azl3.aarch64.rpm -perl-Symbol-1.09-508.azl3.noarch.rpm -perl-Term-ANSIColor-5.01-508.azl3.noarch.rpm -perl-Term-Cap-1.18-508.azl3.noarch.rpm -perl-Text-ParseWords-3.31-508.azl3.noarch.rpm -perl-Text-Tabs+Wrap-2021.0814-508.azl3.noarch.rpm -perl-Thread-Queue-3.14-508.azl3.noarch.rpm -perl-Time-Local-1.300-508.azl3.noarch.rpm -perl-Unicode-Normalize-1.32-508.azl3.aarch64.rpm -perl-base-2.27-508.azl3.noarch.rpm -perl-constant-1.33-508.azl3.noarch.rpm -perl-if-0.61.000-508.azl3.noarch.rpm -perl-interpreter-5.38.2-508.azl3.aarch64.rpm -perl-libs-5.38.2-508.azl3.aarch64.rpm -perl-locale-1.10-508.azl3.noarch.rpm -perl-macros-5.38.2-508.azl3.noarch.rpm -perl-mro-1.28-508.azl3.aarch64.rpm -perl-overload-1.37-508.azl3.noarch.rpm -perl-overloading-0.02-508.azl3.noarch.rpm -perl-parent-0.241-508.azl3.noarch.rpm -perl-podlators-5.01-508.azl3.noarch.rpm -perl-subs-1.04-508.azl3.noarch.rpm -perl-threads-2.36-508.azl3.aarch64.rpm -perl-threads-shared-1.68-508.azl3.aarch64.rpm -perl-vars-1.05-508.azl3.noarch.rpm -perl-5.38.2-508.azl3.aarch64.rpm +perl-B-1.88-509.azl3.aarch64.rpm +perl-Carp-1.54-509.azl3.noarch.rpm +perl-Class-Struct-0.68-509.azl3.noarch.rpm +perl-Data-Dumper-2.188-509.azl3.aarch64.rpm +perl-DynaLoader-1.54-509.azl3.aarch64.rpm +perl-Encode-3.19-509.azl3.aarch64.rpm +perl-Errno-1.37-509.azl3.aarch64.rpm +perl-Exporter-5.77-509.azl3.noarch.rpm +perl-Fcntl-1.15-509.azl3.aarch64.rpm +perl-File-Basename-2.86-509.azl3.noarch.rpm +perl-File-Compare-1.100.700-509.azl3.noarch.rpm +perl-File-Copy-2.41-509.azl3.noarch.rpm +perl-File-Path-2.18-509.azl3.noarch.rpm +perl-File-Temp-0.231.100-509.azl3.noarch.rpm +perl-File-stat-1.13-509.azl3.noarch.rpm +perl-FileHandle-2.05-509.azl3.noarch.rpm +perl-Getopt-Long-2.54-509.azl3.noarch.rpm +perl-Getopt-Std-1.13-509.azl3.noarch.rpm +perl-HTTP-Tiny-0.086-509.azl3.noarch.rpm +perl-I18N-Langinfo-0.22-509.azl3.aarch64.rpm +perl-IO-1.52-509.azl3.aarch64.rpm +perl-IPC-Open3-1.22-509.azl3.noarch.rpm +perl-MIME-Base64-3.16-509.azl3.aarch64.rpm +perl-POSIX-2.13-509.azl3.aarch64.rpm +perl-PathTools-3.89-509.azl3.aarch64.rpm +perl-Pod-Escapes-1.07-509.azl3.noarch.rpm +perl-Pod-Perldoc-3.28.01-509.azl3.noarch.rpm +perl-Pod-Simple-3.43-509.azl3.noarch.rpm +perl-Pod-Usage-2.03-509.azl3.noarch.rpm +perl-Scalar-List-Utils-1.63-509.azl3.aarch64.rpm +perl-SelectSaver-1.02-509.azl3.noarch.rpm +perl-Socket-2.036-509.azl3.aarch64.rpm +perl-Storable-3.32-509.azl3.aarch64.rpm +perl-Symbol-1.09-509.azl3.noarch.rpm +perl-Term-ANSIColor-5.01-509.azl3.noarch.rpm +perl-Term-Cap-1.18-509.azl3.noarch.rpm +perl-Text-ParseWords-3.31-509.azl3.noarch.rpm +perl-Text-Tabs+Wrap-2021.0814-509.azl3.noarch.rpm +perl-Thread-Queue-3.14-509.azl3.noarch.rpm +perl-Time-Local-1.300-509.azl3.noarch.rpm +perl-Unicode-Normalize-1.32-509.azl3.aarch64.rpm +perl-base-2.27-509.azl3.noarch.rpm +perl-constant-1.33-509.azl3.noarch.rpm +perl-if-0.61.000-509.azl3.noarch.rpm +perl-interpreter-5.38.2-509.azl3.aarch64.rpm +perl-libs-5.38.2-509.azl3.aarch64.rpm +perl-locale-1.10-509.azl3.noarch.rpm +perl-macros-5.38.2-509.azl3.noarch.rpm +perl-mro-1.28-509.azl3.aarch64.rpm +perl-overload-1.37-509.azl3.noarch.rpm +perl-overloading-0.02-509.azl3.noarch.rpm +perl-parent-0.241-509.azl3.noarch.rpm +perl-podlators-5.01-509.azl3.noarch.rpm +perl-subs-1.04-509.azl3.noarch.rpm +perl-threads-2.36-509.azl3.aarch64.rpm +perl-threads-shared-1.68-509.azl3.aarch64.rpm +perl-vars-1.05-509.azl3.noarch.rpm +perl-5.38.2-509.azl3.aarch64.rpm texinfo-7.0.3-1.azl3.aarch64.rpm gtk-doc-1.33.2-1.azl3.noarch.rpm autoconf-2.72-2.azl3.noarch.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index df7eef45d77..b4afef0472f 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.96.1-1.azl3.noarch.rpm +kernel-headers-6.6.96.1-2.azl3.noarch.rpm glibc-2.38-11.azl3.x86_64.rpm glibc-devel-2.38-11.azl3.x86_64.rpm glibc-i18n-2.38-11.azl3.x86_64.rpm @@ -107,64 +107,64 @@ libpipeline-devel-1.5.7-1.azl3.x86_64.rpm gdbm-1.23-1.azl3.x86_64.rpm gdbm-devel-1.23-1.azl3.x86_64.rpm gdbm-lang-1.23-1.azl3.x86_64.rpm -perl-B-1.88-508.azl3.x86_64.rpm -perl-Carp-1.54-508.azl3.noarch.rpm -perl-Class-Struct-0.68-508.azl3.noarch.rpm -perl-Data-Dumper-2.188-508.azl3.x86_64.rpm -perl-DynaLoader-1.54-508.azl3.x86_64.rpm -perl-Encode-3.19-508.azl3.x86_64.rpm -perl-Errno-1.37-508.azl3.x86_64.rpm -perl-Exporter-5.77-508.azl3.noarch.rpm -perl-Fcntl-1.15-508.azl3.x86_64.rpm -perl-File-Basename-2.86-508.azl3.noarch.rpm -perl-File-Compare-1.100.700-508.azl3.noarch.rpm -perl-File-Copy-2.41-508.azl3.noarch.rpm -perl-File-Path-2.18-508.azl3.noarch.rpm -perl-File-Temp-0.231.100-508.azl3.noarch.rpm -perl-File-stat-1.13-508.azl3.noarch.rpm -perl-FileHandle-2.05-508.azl3.noarch.rpm -perl-Getopt-Long-2.54-508.azl3.noarch.rpm -perl-Getopt-Std-1.13-508.azl3.noarch.rpm -perl-HTTP-Tiny-0.086-508.azl3.noarch.rpm -perl-I18N-Langinfo-0.22-508.azl3.x86_64.rpm -perl-IO-1.52-508.azl3.x86_64.rpm -perl-IPC-Open3-1.22-508.azl3.noarch.rpm -perl-MIME-Base64-3.16-508.azl3.x86_64.rpm -perl-POSIX-2.13-508.azl3.x86_64.rpm -perl-PathTools-3.89-508.azl3.x86_64.rpm -perl-Pod-Escapes-1.07-508.azl3.noarch.rpm -perl-Pod-Perldoc-3.28.01-508.azl3.noarch.rpm -perl-Pod-Simple-3.43-508.azl3.noarch.rpm -perl-Pod-Usage-2.03-508.azl3.noarch.rpm -perl-Scalar-List-Utils-1.63-508.azl3.x86_64.rpm -perl-SelectSaver-1.02-508.azl3.noarch.rpm -perl-Socket-2.036-508.azl3.x86_64.rpm -perl-Storable-3.32-508.azl3.x86_64.rpm -perl-Symbol-1.09-508.azl3.noarch.rpm -perl-Term-ANSIColor-5.01-508.azl3.noarch.rpm -perl-Term-Cap-1.18-508.azl3.noarch.rpm -perl-Text-ParseWords-3.31-508.azl3.noarch.rpm -perl-Text-Tabs+Wrap-2021.0814-508.azl3.noarch.rpm -perl-Thread-Queue-3.14-508.azl3.noarch.rpm -perl-Time-Local-1.300-508.azl3.noarch.rpm -perl-Unicode-Normalize-1.32-508.azl3.x86_64.rpm -perl-base-2.27-508.azl3.noarch.rpm -perl-constant-1.33-508.azl3.noarch.rpm -perl-if-0.61.000-508.azl3.noarch.rpm -perl-interpreter-5.38.2-508.azl3.x86_64.rpm -perl-libs-5.38.2-508.azl3.x86_64.rpm -perl-locale-1.10-508.azl3.noarch.rpm -perl-macros-5.38.2-508.azl3.noarch.rpm -perl-mro-1.28-508.azl3.x86_64.rpm -perl-overload-1.37-508.azl3.noarch.rpm -perl-overloading-0.02-508.azl3.noarch.rpm -perl-parent-0.241-508.azl3.noarch.rpm -perl-podlators-5.01-508.azl3.noarch.rpm -perl-subs-1.04-508.azl3.noarch.rpm -perl-threads-2.36-508.azl3.x86_64.rpm -perl-threads-shared-1.68-508.azl3.x86_64.rpm -perl-vars-1.05-508.azl3.noarch.rpm -perl-5.38.2-508.azl3.x86_64.rpm +perl-B-1.88-509.azl3.x86_64.rpm +perl-Carp-1.54-509.azl3.noarch.rpm +perl-Class-Struct-0.68-509.azl3.noarch.rpm +perl-Data-Dumper-2.188-509.azl3.x86_64.rpm +perl-DynaLoader-1.54-509.azl3.x86_64.rpm +perl-Encode-3.19-509.azl3.x86_64.rpm +perl-Errno-1.37-509.azl3.x86_64.rpm +perl-Exporter-5.77-509.azl3.noarch.rpm +perl-Fcntl-1.15-509.azl3.x86_64.rpm +perl-File-Basename-2.86-509.azl3.noarch.rpm +perl-File-Compare-1.100.700-509.azl3.noarch.rpm +perl-File-Copy-2.41-509.azl3.noarch.rpm +perl-File-Path-2.18-509.azl3.noarch.rpm +perl-File-Temp-0.231.100-509.azl3.noarch.rpm +perl-File-stat-1.13-509.azl3.noarch.rpm +perl-FileHandle-2.05-509.azl3.noarch.rpm +perl-Getopt-Long-2.54-509.azl3.noarch.rpm +perl-Getopt-Std-1.13-509.azl3.noarch.rpm +perl-HTTP-Tiny-0.086-509.azl3.noarch.rpm +perl-I18N-Langinfo-0.22-509.azl3.x86_64.rpm +perl-IO-1.52-509.azl3.x86_64.rpm +perl-IPC-Open3-1.22-509.azl3.noarch.rpm +perl-MIME-Base64-3.16-509.azl3.x86_64.rpm +perl-POSIX-2.13-509.azl3.x86_64.rpm +perl-PathTools-3.89-509.azl3.x86_64.rpm +perl-Pod-Escapes-1.07-509.azl3.noarch.rpm +perl-Pod-Perldoc-3.28.01-509.azl3.noarch.rpm +perl-Pod-Simple-3.43-509.azl3.noarch.rpm +perl-Pod-Usage-2.03-509.azl3.noarch.rpm +perl-Scalar-List-Utils-1.63-509.azl3.x86_64.rpm +perl-SelectSaver-1.02-509.azl3.noarch.rpm +perl-Socket-2.036-509.azl3.x86_64.rpm +perl-Storable-3.32-509.azl3.x86_64.rpm +perl-Symbol-1.09-509.azl3.noarch.rpm +perl-Term-ANSIColor-5.01-509.azl3.noarch.rpm +perl-Term-Cap-1.18-509.azl3.noarch.rpm +perl-Text-ParseWords-3.31-509.azl3.noarch.rpm +perl-Text-Tabs+Wrap-2021.0814-509.azl3.noarch.rpm +perl-Thread-Queue-3.14-509.azl3.noarch.rpm +perl-Time-Local-1.300-509.azl3.noarch.rpm +perl-Unicode-Normalize-1.32-509.azl3.x86_64.rpm +perl-base-2.27-509.azl3.noarch.rpm +perl-constant-1.33-509.azl3.noarch.rpm +perl-if-0.61.000-509.azl3.noarch.rpm +perl-interpreter-5.38.2-509.azl3.x86_64.rpm +perl-libs-5.38.2-509.azl3.x86_64.rpm +perl-locale-1.10-509.azl3.noarch.rpm +perl-macros-5.38.2-509.azl3.noarch.rpm +perl-mro-1.28-509.azl3.x86_64.rpm +perl-overload-1.37-509.azl3.noarch.rpm +perl-overloading-0.02-509.azl3.noarch.rpm +perl-parent-0.241-509.azl3.noarch.rpm +perl-podlators-5.01-509.azl3.noarch.rpm +perl-subs-1.04-509.azl3.noarch.rpm +perl-threads-2.36-509.azl3.x86_64.rpm +perl-threads-shared-1.68-509.azl3.x86_64.rpm +perl-vars-1.05-509.azl3.noarch.rpm +perl-5.38.2-509.azl3.x86_64.rpm texinfo-7.0.3-1.azl3.x86_64.rpm gtk-doc-1.33.2-1.azl3.noarch.rpm autoconf-2.72-2.azl3.noarch.rpm diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index 8eb5cbad7b7..c1c014ab9ee 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -158,7 +158,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.96.1-1.azl3.noarch.rpm +kernel-headers-6.6.96.1-2.azl3.noarch.rpm kmod-30-1.azl3.aarch64.rpm kmod-debuginfo-30-1.azl3.aarch64.rpm kmod-devel-30-1.azl3.aarch64.rpm @@ -310,207 +310,207 @@ pcre2-devel-10.42-3.azl3.aarch64.rpm pcre2-devel-static-10.42-3.azl3.aarch64.rpm pcre2-doc-10.42-3.azl3.noarch.rpm pcre2-tools-10.42-3.azl3.aarch64.rpm -perl-5.38.2-508.azl3.aarch64.rpm -perl-Archive-Tar-2.40-508.azl3.noarch.rpm -perl-Attribute-Handlers-1.03-508.azl3.noarch.rpm -perl-autodie-2.36-508.azl3.noarch.rpm -perl-AutoLoader-5.74-508.azl3.noarch.rpm -perl-AutoSplit-5.74-508.azl3.noarch.rpm -perl-autouse-1.11-508.azl3.noarch.rpm -perl-B-1.88-508.azl3.aarch64.rpm -perl-base-2.27-508.azl3.noarch.rpm -perl-Benchmark-1.24-508.azl3.noarch.rpm -perl-bignum-0.66-508.azl3.noarch.rpm -perl-blib-1.07-508.azl3.noarch.rpm -perl-Carp-1.54-508.azl3.noarch.rpm -perl-Class-Struct-0.68-508.azl3.noarch.rpm -perl-Compress-Raw-Bzip2-2.204-508.azl3.aarch64.rpm -perl-Compress-Raw-Zlib-2.204-508.azl3.aarch64.rpm -perl-Config-Extensions-0.03-508.azl3.noarch.rpm -perl-Config-Perl-V-0.36-508.azl3.noarch.rpm -perl-constant-1.33-508.azl3.noarch.rpm -perl-CPAN-2.36-508.azl3.noarch.rpm -perl-CPAN-Meta-2.150010-508.azl3.noarch.rpm -perl-CPAN-Meta-Requirements-2.140-508.azl3.noarch.rpm -perl-CPAN-Meta-YAML-0.018-508.azl3.noarch.rpm -perl-Data-Dumper-2.188-508.azl3.aarch64.rpm +perl-5.38.2-509.azl3.aarch64.rpm +perl-Archive-Tar-2.40-509.azl3.noarch.rpm +perl-Attribute-Handlers-1.03-509.azl3.noarch.rpm +perl-autodie-2.36-509.azl3.noarch.rpm +perl-AutoLoader-5.74-509.azl3.noarch.rpm +perl-AutoSplit-5.74-509.azl3.noarch.rpm +perl-autouse-1.11-509.azl3.noarch.rpm +perl-B-1.88-509.azl3.aarch64.rpm +perl-base-2.27-509.azl3.noarch.rpm +perl-Benchmark-1.24-509.azl3.noarch.rpm +perl-bignum-0.66-509.azl3.noarch.rpm +perl-blib-1.07-509.azl3.noarch.rpm +perl-Carp-1.54-509.azl3.noarch.rpm +perl-Class-Struct-0.68-509.azl3.noarch.rpm +perl-Compress-Raw-Bzip2-2.204-509.azl3.aarch64.rpm +perl-Compress-Raw-Zlib-2.204-509.azl3.aarch64.rpm +perl-Config-Extensions-0.03-509.azl3.noarch.rpm +perl-Config-Perl-V-0.36-509.azl3.noarch.rpm +perl-constant-1.33-509.azl3.noarch.rpm +perl-CPAN-2.36-509.azl3.noarch.rpm +perl-CPAN-Meta-2.150010-509.azl3.noarch.rpm +perl-CPAN-Meta-Requirements-2.140-509.azl3.noarch.rpm +perl-CPAN-Meta-YAML-0.018-509.azl3.noarch.rpm +perl-Data-Dumper-2.188-509.azl3.aarch64.rpm perl-DBD-SQLite-1.74-2.azl3.aarch64.rpm perl-DBD-SQLite-debuginfo-1.74-2.azl3.aarch64.rpm perl-DBI-1.643-3.azl3.aarch64.rpm perl-DBI-debuginfo-1.643-3.azl3.aarch64.rpm perl-DBIx-Simple-1.37-7.azl3.noarch.rpm -perl-DBM_Filter-0.06-508.azl3.noarch.rpm -perl-debugger-1.60-508.azl3.noarch.rpm -perl-debuginfo-5.38.2-508.azl3.aarch64.rpm -perl-deprecate-0.04-508.azl3.noarch.rpm -perl-devel-5.38.2-508.azl3.aarch64.rpm -perl-Devel-Peek-1.33-508.azl3.aarch64.rpm -perl-Devel-PPPort-3.71-508.azl3.aarch64.rpm -perl-Devel-SelfStubber-1.06-508.azl3.noarch.rpm -perl-diagnostics-1.39-508.azl3.noarch.rpm -perl-Digest-1.20-508.azl3.noarch.rpm -perl-Digest-MD5-2.58-508.azl3.aarch64.rpm -perl-Digest-SHA-6.04-508.azl3.aarch64.rpm -perl-DirHandle-1.05-508.azl3.noarch.rpm -perl-doc-5.38.2-508.azl3.noarch.rpm -perl-Dumpvalue-2.27-508.azl3.noarch.rpm -perl-DynaLoader-1.54-508.azl3.aarch64.rpm -perl-Encode-3.19-508.azl3.aarch64.rpm -perl-Encode-devel-3.19-508.azl3.noarch.rpm -perl-encoding-3.00-508.azl3.aarch64.rpm -perl-encoding-warnings-0.14-508.azl3.noarch.rpm -perl-English-1.11-508.azl3.noarch.rpm -perl-Env-1.06-508.azl3.noarch.rpm -perl-Errno-1.37-508.azl3.aarch64.rpm -perl-experimental-0.031-508.azl3.noarch.rpm -perl-Exporter-5.77-508.azl3.noarch.rpm -perl-ExtUtils-CBuilder-0.280238-508.azl3.noarch.rpm -perl-ExtUtils-Command-7.70-508.azl3.noarch.rpm -perl-ExtUtils-Constant-0.25-508.azl3.noarch.rpm -perl-ExtUtils-Embed-1.35-508.azl3.noarch.rpm -perl-ExtUtils-Install-2.22-508.azl3.noarch.rpm -perl-ExtUtils-MakeMaker-7.70-508.azl3.noarch.rpm -perl-ExtUtils-Manifest-1.73-508.azl3.noarch.rpm -perl-ExtUtils-Miniperl-1.13-508.azl3.noarch.rpm -perl-ExtUtils-MM-Utils-7.44-508.azl3.noarch.rpm -perl-ExtUtils-ParseXS-3.51-508.azl3.noarch.rpm -perl-Fcntl-1.15-508.azl3.aarch64.rpm +perl-DBM_Filter-0.06-509.azl3.noarch.rpm +perl-debugger-1.60-509.azl3.noarch.rpm +perl-debuginfo-5.38.2-509.azl3.aarch64.rpm +perl-deprecate-0.04-509.azl3.noarch.rpm +perl-devel-5.38.2-509.azl3.aarch64.rpm +perl-Devel-Peek-1.33-509.azl3.aarch64.rpm +perl-Devel-PPPort-3.71-509.azl3.aarch64.rpm +perl-Devel-SelfStubber-1.06-509.azl3.noarch.rpm +perl-diagnostics-1.39-509.azl3.noarch.rpm +perl-Digest-1.20-509.azl3.noarch.rpm +perl-Digest-MD5-2.58-509.azl3.aarch64.rpm +perl-Digest-SHA-6.04-509.azl3.aarch64.rpm +perl-DirHandle-1.05-509.azl3.noarch.rpm +perl-doc-5.38.2-509.azl3.noarch.rpm +perl-Dumpvalue-2.27-509.azl3.noarch.rpm +perl-DynaLoader-1.54-509.azl3.aarch64.rpm +perl-Encode-3.19-509.azl3.aarch64.rpm +perl-Encode-devel-3.19-509.azl3.noarch.rpm +perl-encoding-3.00-509.azl3.aarch64.rpm +perl-encoding-warnings-0.14-509.azl3.noarch.rpm +perl-English-1.11-509.azl3.noarch.rpm +perl-Env-1.06-509.azl3.noarch.rpm +perl-Errno-1.37-509.azl3.aarch64.rpm +perl-experimental-0.031-509.azl3.noarch.rpm +perl-Exporter-5.77-509.azl3.noarch.rpm +perl-ExtUtils-CBuilder-0.280238-509.azl3.noarch.rpm +perl-ExtUtils-Command-7.70-509.azl3.noarch.rpm +perl-ExtUtils-Constant-0.25-509.azl3.noarch.rpm +perl-ExtUtils-Embed-1.35-509.azl3.noarch.rpm +perl-ExtUtils-Install-2.22-509.azl3.noarch.rpm +perl-ExtUtils-MakeMaker-7.70-509.azl3.noarch.rpm +perl-ExtUtils-Manifest-1.73-509.azl3.noarch.rpm +perl-ExtUtils-Miniperl-1.13-509.azl3.noarch.rpm +perl-ExtUtils-MM-Utils-7.44-509.azl3.noarch.rpm +perl-ExtUtils-ParseXS-3.51-509.azl3.noarch.rpm +perl-Fcntl-1.15-509.azl3.aarch64.rpm perl-Fedora-VSP-0.001-20.azl3.noarch.rpm -perl-fields-2.27-508.azl3.noarch.rpm -perl-File-Basename-2.86-508.azl3.noarch.rpm -perl-File-Compare-1.100.700-508.azl3.noarch.rpm -perl-File-Copy-2.41-508.azl3.noarch.rpm -perl-File-DosGlob-1.12-508.azl3.aarch64.rpm -perl-File-Fetch-1.04-508.azl3.noarch.rpm -perl-File-Find-1.43-508.azl3.noarch.rpm -perl-File-Path-2.18-508.azl3.noarch.rpm -perl-File-stat-1.13-508.azl3.noarch.rpm -perl-File-Temp-0.231.100-508.azl3.noarch.rpm -perl-FileCache-1.10-508.azl3.noarch.rpm -perl-FileHandle-2.05-508.azl3.noarch.rpm -perl-filetest-1.03-508.azl3.noarch.rpm -perl-Filter-1.64-508.azl3.aarch64.rpm -perl-Filter-Simple-0.96-508.azl3.noarch.rpm -perl-FindBin-1.53-508.azl3.noarch.rpm -perl-GDBM_File-1.24-508.azl3.aarch64.rpm +perl-fields-2.27-509.azl3.noarch.rpm +perl-File-Basename-2.86-509.azl3.noarch.rpm +perl-File-Compare-1.100.700-509.azl3.noarch.rpm +perl-File-Copy-2.41-509.azl3.noarch.rpm +perl-File-DosGlob-1.12-509.azl3.aarch64.rpm +perl-File-Fetch-1.04-509.azl3.noarch.rpm +perl-File-Find-1.43-509.azl3.noarch.rpm +perl-File-Path-2.18-509.azl3.noarch.rpm +perl-File-stat-1.13-509.azl3.noarch.rpm +perl-File-Temp-0.231.100-509.azl3.noarch.rpm +perl-FileCache-1.10-509.azl3.noarch.rpm +perl-FileHandle-2.05-509.azl3.noarch.rpm +perl-filetest-1.03-509.azl3.noarch.rpm +perl-Filter-1.64-509.azl3.aarch64.rpm +perl-Filter-Simple-0.96-509.azl3.noarch.rpm +perl-FindBin-1.53-509.azl3.noarch.rpm +perl-GDBM_File-1.24-509.azl3.aarch64.rpm perl-generators-1.15-2.azl3.noarch.rpm -perl-Getopt-Long-2.54-508.azl3.noarch.rpm -perl-Getopt-Std-1.13-508.azl3.noarch.rpm -perl-Hash-Util-0.30-508.azl3.aarch64.rpm -perl-Hash-Util-FieldHash-1.26-508.azl3.aarch64.rpm -perl-HTTP-Tiny-0.086-508.azl3.noarch.rpm -perl-I18N-Collate-1.02-508.azl3.noarch.rpm -perl-I18N-Langinfo-0.22-508.azl3.aarch64.rpm -perl-I18N-LangTags-0.45-508.azl3.noarch.rpm -perl-if-0.61.000-508.azl3.noarch.rpm -perl-interpreter-5.38.2-508.azl3.aarch64.rpm -perl-IO-1.52-508.azl3.aarch64.rpm -perl-IO-Compress-2.204-508.azl3.noarch.rpm -perl-IO-Socket-IP-0.41-508.azl3.noarch.rpm -perl-IO-Zlib-1.14-508.azl3.noarch.rpm -perl-IPC-Cmd-1.04-508.azl3.noarch.rpm -perl-IPC-Open3-1.22-508.azl3.noarch.rpm -perl-IPC-SysV-2.09-508.azl3.aarch64.rpm -perl-JSON-PP-4.16-508.azl3.noarch.rpm -perl-less-0.03-508.azl3.noarch.rpm -perl-lib-0.65-508.azl3.aarch64.rpm +perl-Getopt-Long-2.54-509.azl3.noarch.rpm +perl-Getopt-Std-1.13-509.azl3.noarch.rpm +perl-Hash-Util-0.30-509.azl3.aarch64.rpm +perl-Hash-Util-FieldHash-1.26-509.azl3.aarch64.rpm +perl-HTTP-Tiny-0.086-509.azl3.noarch.rpm +perl-I18N-Collate-1.02-509.azl3.noarch.rpm +perl-I18N-Langinfo-0.22-509.azl3.aarch64.rpm +perl-I18N-LangTags-0.45-509.azl3.noarch.rpm +perl-if-0.61.000-509.azl3.noarch.rpm +perl-interpreter-5.38.2-509.azl3.aarch64.rpm +perl-IO-1.52-509.azl3.aarch64.rpm +perl-IO-Compress-2.204-509.azl3.noarch.rpm +perl-IO-Socket-IP-0.41-509.azl3.noarch.rpm +perl-IO-Zlib-1.14-509.azl3.noarch.rpm +perl-IPC-Cmd-1.04-509.azl3.noarch.rpm +perl-IPC-Open3-1.22-509.azl3.noarch.rpm +perl-IPC-SysV-2.09-509.azl3.aarch64.rpm +perl-JSON-PP-4.16-509.azl3.noarch.rpm +perl-less-0.03-509.azl3.noarch.rpm +perl-lib-0.65-509.azl3.aarch64.rpm perl-libintl-perl-1.33-1.azl3.aarch64.rpm perl-libintl-perl-debuginfo-1.33-1.azl3.aarch64.rpm -perl-libnet-3.15-508.azl3.noarch.rpm -perl-libnetcfg-5.38.2-508.azl3.noarch.rpm -perl-libs-5.38.2-508.azl3.aarch64.rpm -perl-locale-1.10-508.azl3.noarch.rpm -perl-Locale-Maketext-1.33-508.azl3.noarch.rpm -perl-Locale-Maketext-Simple-0.21-508.azl3.noarch.rpm -perl-macros-5.38.2-508.azl3.noarch.rpm -perl-Math-BigInt-1.9998.37-508.azl3.noarch.rpm -perl-Math-BigInt-FastCalc-0.501.300-508.azl3.aarch64.rpm -perl-Math-BigRat-0.2624-508.azl3.noarch.rpm -perl-Math-Complex-1.62-508.azl3.noarch.rpm -perl-Memoize-1.16-508.azl3.noarch.rpm -perl-meta-notation-5.38.2-508.azl3.noarch.rpm -perl-MIME-Base64-3.16-508.azl3.aarch64.rpm -perl-Module-CoreList-5.20231129-508.azl3.noarch.rpm -perl-Module-CoreList-tools-5.20231129-508.azl3.noarch.rpm -perl-Module-Load-0.36-508.azl3.noarch.rpm -perl-Module-Load-Conditional-0.74-508.azl3.noarch.rpm -perl-Module-Loaded-0.08-508.azl3.noarch.rpm -perl-Module-Metadata-1.000037-508.azl3.noarch.rpm -perl-mro-1.28-508.azl3.aarch64.rpm -perl-NDBM_File-1.16-508.azl3.aarch64.rpm -perl-Net-1.03-508.azl3.noarch.rpm -perl-Net-Ping-2.76-508.azl3.noarch.rpm -perl-NEXT-0.69-508.azl3.noarch.rpm +perl-libnet-3.15-509.azl3.noarch.rpm +perl-libnetcfg-5.38.2-509.azl3.noarch.rpm +perl-libs-5.38.2-509.azl3.aarch64.rpm +perl-locale-1.10-509.azl3.noarch.rpm +perl-Locale-Maketext-1.33-509.azl3.noarch.rpm +perl-Locale-Maketext-Simple-0.21-509.azl3.noarch.rpm +perl-macros-5.38.2-509.azl3.noarch.rpm +perl-Math-BigInt-1.9998.37-509.azl3.noarch.rpm +perl-Math-BigInt-FastCalc-0.501.300-509.azl3.aarch64.rpm +perl-Math-BigRat-0.2624-509.azl3.noarch.rpm +perl-Math-Complex-1.62-509.azl3.noarch.rpm +perl-Memoize-1.16-509.azl3.noarch.rpm +perl-meta-notation-5.38.2-509.azl3.noarch.rpm +perl-MIME-Base64-3.16-509.azl3.aarch64.rpm +perl-Module-CoreList-5.20231129-509.azl3.noarch.rpm +perl-Module-CoreList-tools-5.20231129-509.azl3.noarch.rpm +perl-Module-Load-0.36-509.azl3.noarch.rpm +perl-Module-Load-Conditional-0.74-509.azl3.noarch.rpm +perl-Module-Loaded-0.08-509.azl3.noarch.rpm +perl-Module-Metadata-1.000037-509.azl3.noarch.rpm +perl-mro-1.28-509.azl3.aarch64.rpm +perl-NDBM_File-1.16-509.azl3.aarch64.rpm +perl-Net-1.03-509.azl3.noarch.rpm +perl-Net-Ping-2.76-509.azl3.noarch.rpm +perl-NEXT-0.69-509.azl3.noarch.rpm perl-Object-Accessor-0.48-10.azl3.noarch.rpm -perl-ODBM_File-1.18-508.azl3.aarch64.rpm -perl-Opcode-1.64-508.azl3.aarch64.rpm -perl-open-1.13-508.azl3.noarch.rpm -perl-overload-1.37-508.azl3.noarch.rpm -perl-overloading-0.02-508.azl3.noarch.rpm -perl-Params-Check-0.38-508.azl3.noarch.rpm -perl-parent-0.241-508.azl3.noarch.rpm -perl-PathTools-3.89-508.azl3.aarch64.rpm -perl-Perl-OSType-1.010-508.azl3.noarch.rpm -perl-perlfaq-5.20210520-508.azl3.noarch.rpm -perl-PerlIO-via-QuotedPrint-0.10-508.azl3.noarch.rpm -perl-ph-5.38.2-508.azl3.aarch64.rpm -perl-Pod-Checker-1.75-508.azl3.noarch.rpm -perl-Pod-Escapes-1.07-508.azl3.noarch.rpm -perl-Pod-Functions-1.14-508.azl3.noarch.rpm -perl-Pod-Html-1.34-508.azl3.noarch.rpm -perl-Pod-Perldoc-3.28.01-508.azl3.noarch.rpm -perl-Pod-Simple-3.43-508.azl3.noarch.rpm -perl-Pod-Usage-2.03-508.azl3.noarch.rpm -perl-podlators-5.01-508.azl3.noarch.rpm -perl-POSIX-2.13-508.azl3.aarch64.rpm -perl-Safe-2.44-508.azl3.noarch.rpm -perl-Scalar-List-Utils-1.63-508.azl3.aarch64.rpm -perl-Search-Dict-1.07-508.azl3.noarch.rpm -perl-SelectSaver-1.02-508.azl3.noarch.rpm -perl-SelfLoader-1.26-508.azl3.noarch.rpm -perl-sigtrap-1.10-508.azl3.noarch.rpm -perl-Socket-2.036-508.azl3.aarch64.rpm -perl-sort-2.05-508.azl3.noarch.rpm -perl-Storable-3.32-508.azl3.aarch64.rpm -perl-subs-1.04-508.azl3.noarch.rpm -perl-Symbol-1.09-508.azl3.noarch.rpm -perl-Sys-Hostname-1.25-508.azl3.aarch64.rpm -perl-Sys-Syslog-0.36-508.azl3.aarch64.rpm -perl-Term-ANSIColor-5.01-508.azl3.noarch.rpm -perl-Term-Cap-1.18-508.azl3.noarch.rpm -perl-Term-Complete-1.403-508.azl3.noarch.rpm -perl-Term-ReadLine-1.17-508.azl3.noarch.rpm -perl-Test-1.31-508.azl3.noarch.rpm -perl-Test-Harness-3.44-508.azl3.noarch.rpm -perl-Test-Simple-1.302194-508.azl3.noarch.rpm +perl-ODBM_File-1.18-509.azl3.aarch64.rpm +perl-Opcode-1.64-509.azl3.aarch64.rpm +perl-open-1.13-509.azl3.noarch.rpm +perl-overload-1.37-509.azl3.noarch.rpm +perl-overloading-0.02-509.azl3.noarch.rpm +perl-Params-Check-0.38-509.azl3.noarch.rpm +perl-parent-0.241-509.azl3.noarch.rpm +perl-PathTools-3.89-509.azl3.aarch64.rpm +perl-Perl-OSType-1.010-509.azl3.noarch.rpm +perl-perlfaq-5.20210520-509.azl3.noarch.rpm +perl-PerlIO-via-QuotedPrint-0.10-509.azl3.noarch.rpm +perl-ph-5.38.2-509.azl3.aarch64.rpm +perl-Pod-Checker-1.75-509.azl3.noarch.rpm +perl-Pod-Escapes-1.07-509.azl3.noarch.rpm +perl-Pod-Functions-1.14-509.azl3.noarch.rpm +perl-Pod-Html-1.34-509.azl3.noarch.rpm +perl-Pod-Perldoc-3.28.01-509.azl3.noarch.rpm +perl-Pod-Simple-3.43-509.azl3.noarch.rpm +perl-Pod-Usage-2.03-509.azl3.noarch.rpm +perl-podlators-5.01-509.azl3.noarch.rpm +perl-POSIX-2.13-509.azl3.aarch64.rpm +perl-Safe-2.44-509.azl3.noarch.rpm +perl-Scalar-List-Utils-1.63-509.azl3.aarch64.rpm +perl-Search-Dict-1.07-509.azl3.noarch.rpm +perl-SelectSaver-1.02-509.azl3.noarch.rpm +perl-SelfLoader-1.26-509.azl3.noarch.rpm +perl-sigtrap-1.10-509.azl3.noarch.rpm +perl-Socket-2.036-509.azl3.aarch64.rpm +perl-sort-2.05-509.azl3.noarch.rpm +perl-Storable-3.32-509.azl3.aarch64.rpm +perl-subs-1.04-509.azl3.noarch.rpm +perl-Symbol-1.09-509.azl3.noarch.rpm +perl-Sys-Hostname-1.25-509.azl3.aarch64.rpm +perl-Sys-Syslog-0.36-509.azl3.aarch64.rpm +perl-Term-ANSIColor-5.01-509.azl3.noarch.rpm +perl-Term-Cap-1.18-509.azl3.noarch.rpm +perl-Term-Complete-1.403-509.azl3.noarch.rpm +perl-Term-ReadLine-1.17-509.azl3.noarch.rpm +perl-Test-1.31-509.azl3.noarch.rpm +perl-Test-Harness-3.44-509.azl3.noarch.rpm +perl-Test-Simple-1.302194-509.azl3.noarch.rpm perl-Test-Warnings-0.032-2.azl3.noarch.rpm -perl-tests-5.38.2-508.azl3.aarch64.rpm -perl-Text-Abbrev-1.02-508.azl3.noarch.rpm -perl-Text-Balanced-2.06-508.azl3.noarch.rpm -perl-Text-ParseWords-3.31-508.azl3.noarch.rpm -perl-Text-Tabs+Wrap-2021.0814-508.azl3.noarch.rpm +perl-tests-5.38.2-509.azl3.aarch64.rpm +perl-Text-Abbrev-1.02-509.azl3.noarch.rpm +perl-Text-Balanced-2.06-509.azl3.noarch.rpm +perl-Text-ParseWords-3.31-509.azl3.noarch.rpm +perl-Text-Tabs+Wrap-2021.0814-509.azl3.noarch.rpm perl-Text-Template-1.61-2.azl3.noarch.rpm -perl-Thread-3.05-508.azl3.noarch.rpm -perl-Thread-Queue-3.14-508.azl3.noarch.rpm -perl-Thread-Semaphore-2.13-508.azl3.noarch.rpm -perl-threads-2.36-508.azl3.aarch64.rpm -perl-threads-shared-1.68-508.azl3.aarch64.rpm -perl-Tie-4.6-508.azl3.noarch.rpm -perl-Tie-File-1.07-508.azl3.noarch.rpm -perl-Tie-Memoize-1.1-508.azl3.noarch.rpm -perl-Tie-RefHash-1.40-508.azl3.noarch.rpm -perl-Time-1.03-508.azl3.noarch.rpm -perl-Time-HiRes-1.9775-508.azl3.aarch64.rpm -perl-Time-Local-1.300-508.azl3.noarch.rpm -perl-Time-Piece-1.3401-508.azl3.aarch64.rpm -perl-Unicode-Collate-1.31-508.azl3.aarch64.rpm -perl-Unicode-Normalize-1.32-508.azl3.aarch64.rpm -perl-Unicode-UCD-0.78-508.azl3.noarch.rpm -perl-User-pwent-1.04-508.azl3.noarch.rpm -perl-utils-5.38.2-508.azl3.noarch.rpm -perl-vars-1.05-508.azl3.noarch.rpm -perl-version-0.99.29-508.azl3.noarch.rpm -perl-vmsish-1.04-508.azl3.noarch.rpm +perl-Thread-3.05-509.azl3.noarch.rpm +perl-Thread-Queue-3.14-509.azl3.noarch.rpm +perl-Thread-Semaphore-2.13-509.azl3.noarch.rpm +perl-threads-2.36-509.azl3.aarch64.rpm +perl-threads-shared-1.68-509.azl3.aarch64.rpm +perl-Tie-4.6-509.azl3.noarch.rpm +perl-Tie-File-1.07-509.azl3.noarch.rpm +perl-Tie-Memoize-1.1-509.azl3.noarch.rpm +perl-Tie-RefHash-1.40-509.azl3.noarch.rpm +perl-Time-1.03-509.azl3.noarch.rpm +perl-Time-HiRes-1.9775-509.azl3.aarch64.rpm +perl-Time-Local-1.300-509.azl3.noarch.rpm +perl-Time-Piece-1.3401-509.azl3.aarch64.rpm +perl-Unicode-Collate-1.31-509.azl3.aarch64.rpm +perl-Unicode-Normalize-1.32-509.azl3.aarch64.rpm +perl-Unicode-UCD-0.78-509.azl3.noarch.rpm +perl-User-pwent-1.04-509.azl3.noarch.rpm +perl-utils-5.38.2-509.azl3.noarch.rpm +perl-vars-1.05-509.azl3.noarch.rpm +perl-version-0.99.29-509.azl3.noarch.rpm +perl-vmsish-1.04-509.azl3.noarch.rpm perl-XML-Parser-2.47-1.azl3.aarch64.rpm perl-XML-Parser-debuginfo-2.47-1.azl3.aarch64.rpm pinentry-1.2.1-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 2af0a7a2bde..7afafc515f7 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -165,8 +165,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.96.1-1.azl3.noarch.rpm -kernel-headers-6.6.96.1-1.azl3.noarch.rpm +kernel-cross-headers-6.6.96.1-2.azl3.noarch.rpm +kernel-headers-6.6.96.1-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 @@ -318,207 +318,207 @@ pcre2-devel-10.42-3.azl3.x86_64.rpm pcre2-devel-static-10.42-3.azl3.x86_64.rpm pcre2-doc-10.42-3.azl3.noarch.rpm pcre2-tools-10.42-3.azl3.x86_64.rpm -perl-5.38.2-508.azl3.x86_64.rpm -perl-Archive-Tar-2.40-508.azl3.noarch.rpm -perl-Attribute-Handlers-1.03-508.azl3.noarch.rpm -perl-autodie-2.36-508.azl3.noarch.rpm -perl-AutoLoader-5.74-508.azl3.noarch.rpm -perl-AutoSplit-5.74-508.azl3.noarch.rpm -perl-autouse-1.11-508.azl3.noarch.rpm -perl-B-1.88-508.azl3.x86_64.rpm -perl-base-2.27-508.azl3.noarch.rpm -perl-Benchmark-1.24-508.azl3.noarch.rpm -perl-bignum-0.66-508.azl3.noarch.rpm -perl-blib-1.07-508.azl3.noarch.rpm -perl-Carp-1.54-508.azl3.noarch.rpm -perl-Class-Struct-0.68-508.azl3.noarch.rpm -perl-Compress-Raw-Bzip2-2.204-508.azl3.x86_64.rpm -perl-Compress-Raw-Zlib-2.204-508.azl3.x86_64.rpm -perl-Config-Extensions-0.03-508.azl3.noarch.rpm -perl-Config-Perl-V-0.36-508.azl3.noarch.rpm -perl-constant-1.33-508.azl3.noarch.rpm -perl-CPAN-2.36-508.azl3.noarch.rpm -perl-CPAN-Meta-2.150010-508.azl3.noarch.rpm -perl-CPAN-Meta-Requirements-2.140-508.azl3.noarch.rpm -perl-CPAN-Meta-YAML-0.018-508.azl3.noarch.rpm -perl-Data-Dumper-2.188-508.azl3.x86_64.rpm +perl-5.38.2-509.azl3.x86_64.rpm +perl-Archive-Tar-2.40-509.azl3.noarch.rpm +perl-Attribute-Handlers-1.03-509.azl3.noarch.rpm +perl-autodie-2.36-509.azl3.noarch.rpm +perl-AutoLoader-5.74-509.azl3.noarch.rpm +perl-AutoSplit-5.74-509.azl3.noarch.rpm +perl-autouse-1.11-509.azl3.noarch.rpm +perl-B-1.88-509.azl3.x86_64.rpm +perl-base-2.27-509.azl3.noarch.rpm +perl-Benchmark-1.24-509.azl3.noarch.rpm +perl-bignum-0.66-509.azl3.noarch.rpm +perl-blib-1.07-509.azl3.noarch.rpm +perl-Carp-1.54-509.azl3.noarch.rpm +perl-Class-Struct-0.68-509.azl3.noarch.rpm +perl-Compress-Raw-Bzip2-2.204-509.azl3.x86_64.rpm +perl-Compress-Raw-Zlib-2.204-509.azl3.x86_64.rpm +perl-Config-Extensions-0.03-509.azl3.noarch.rpm +perl-Config-Perl-V-0.36-509.azl3.noarch.rpm +perl-constant-1.33-509.azl3.noarch.rpm +perl-CPAN-2.36-509.azl3.noarch.rpm +perl-CPAN-Meta-2.150010-509.azl3.noarch.rpm +perl-CPAN-Meta-Requirements-2.140-509.azl3.noarch.rpm +perl-CPAN-Meta-YAML-0.018-509.azl3.noarch.rpm +perl-Data-Dumper-2.188-509.azl3.x86_64.rpm perl-DBD-SQLite-1.74-2.azl3.x86_64.rpm perl-DBD-SQLite-debuginfo-1.74-2.azl3.x86_64.rpm perl-DBI-1.643-3.azl3.x86_64.rpm perl-DBI-debuginfo-1.643-3.azl3.x86_64.rpm perl-DBIx-Simple-1.37-7.azl3.noarch.rpm -perl-DBM_Filter-0.06-508.azl3.noarch.rpm -perl-debugger-1.60-508.azl3.noarch.rpm -perl-debuginfo-5.38.2-508.azl3.x86_64.rpm -perl-deprecate-0.04-508.azl3.noarch.rpm -perl-devel-5.38.2-508.azl3.x86_64.rpm -perl-Devel-Peek-1.33-508.azl3.x86_64.rpm -perl-Devel-PPPort-3.71-508.azl3.x86_64.rpm -perl-Devel-SelfStubber-1.06-508.azl3.noarch.rpm -perl-diagnostics-1.39-508.azl3.noarch.rpm -perl-Digest-1.20-508.azl3.noarch.rpm -perl-Digest-MD5-2.58-508.azl3.x86_64.rpm -perl-Digest-SHA-6.04-508.azl3.x86_64.rpm -perl-DirHandle-1.05-508.azl3.noarch.rpm -perl-doc-5.38.2-508.azl3.noarch.rpm -perl-Dumpvalue-2.27-508.azl3.noarch.rpm -perl-DynaLoader-1.54-508.azl3.x86_64.rpm -perl-Encode-3.19-508.azl3.x86_64.rpm -perl-Encode-devel-3.19-508.azl3.noarch.rpm -perl-encoding-3.00-508.azl3.x86_64.rpm -perl-encoding-warnings-0.14-508.azl3.noarch.rpm -perl-English-1.11-508.azl3.noarch.rpm -perl-Env-1.06-508.azl3.noarch.rpm -perl-Errno-1.37-508.azl3.x86_64.rpm -perl-experimental-0.031-508.azl3.noarch.rpm -perl-Exporter-5.77-508.azl3.noarch.rpm -perl-ExtUtils-CBuilder-0.280238-508.azl3.noarch.rpm -perl-ExtUtils-Command-7.70-508.azl3.noarch.rpm -perl-ExtUtils-Constant-0.25-508.azl3.noarch.rpm -perl-ExtUtils-Embed-1.35-508.azl3.noarch.rpm -perl-ExtUtils-Install-2.22-508.azl3.noarch.rpm -perl-ExtUtils-MakeMaker-7.70-508.azl3.noarch.rpm -perl-ExtUtils-Manifest-1.73-508.azl3.noarch.rpm -perl-ExtUtils-Miniperl-1.13-508.azl3.noarch.rpm -perl-ExtUtils-MM-Utils-7.44-508.azl3.noarch.rpm -perl-ExtUtils-ParseXS-3.51-508.azl3.noarch.rpm -perl-Fcntl-1.15-508.azl3.x86_64.rpm +perl-DBM_Filter-0.06-509.azl3.noarch.rpm +perl-debugger-1.60-509.azl3.noarch.rpm +perl-debuginfo-5.38.2-509.azl3.x86_64.rpm +perl-deprecate-0.04-509.azl3.noarch.rpm +perl-devel-5.38.2-509.azl3.x86_64.rpm +perl-Devel-Peek-1.33-509.azl3.x86_64.rpm +perl-Devel-PPPort-3.71-509.azl3.x86_64.rpm +perl-Devel-SelfStubber-1.06-509.azl3.noarch.rpm +perl-diagnostics-1.39-509.azl3.noarch.rpm +perl-Digest-1.20-509.azl3.noarch.rpm +perl-Digest-MD5-2.58-509.azl3.x86_64.rpm +perl-Digest-SHA-6.04-509.azl3.x86_64.rpm +perl-DirHandle-1.05-509.azl3.noarch.rpm +perl-doc-5.38.2-509.azl3.noarch.rpm +perl-Dumpvalue-2.27-509.azl3.noarch.rpm +perl-DynaLoader-1.54-509.azl3.x86_64.rpm +perl-Encode-3.19-509.azl3.x86_64.rpm +perl-Encode-devel-3.19-509.azl3.noarch.rpm +perl-encoding-3.00-509.azl3.x86_64.rpm +perl-encoding-warnings-0.14-509.azl3.noarch.rpm +perl-English-1.11-509.azl3.noarch.rpm +perl-Env-1.06-509.azl3.noarch.rpm +perl-Errno-1.37-509.azl3.x86_64.rpm +perl-experimental-0.031-509.azl3.noarch.rpm +perl-Exporter-5.77-509.azl3.noarch.rpm +perl-ExtUtils-CBuilder-0.280238-509.azl3.noarch.rpm +perl-ExtUtils-Command-7.70-509.azl3.noarch.rpm +perl-ExtUtils-Constant-0.25-509.azl3.noarch.rpm +perl-ExtUtils-Embed-1.35-509.azl3.noarch.rpm +perl-ExtUtils-Install-2.22-509.azl3.noarch.rpm +perl-ExtUtils-MakeMaker-7.70-509.azl3.noarch.rpm +perl-ExtUtils-Manifest-1.73-509.azl3.noarch.rpm +perl-ExtUtils-Miniperl-1.13-509.azl3.noarch.rpm +perl-ExtUtils-MM-Utils-7.44-509.azl3.noarch.rpm +perl-ExtUtils-ParseXS-3.51-509.azl3.noarch.rpm +perl-Fcntl-1.15-509.azl3.x86_64.rpm perl-Fedora-VSP-0.001-20.azl3.noarch.rpm -perl-fields-2.27-508.azl3.noarch.rpm -perl-File-Basename-2.86-508.azl3.noarch.rpm -perl-File-Compare-1.100.700-508.azl3.noarch.rpm -perl-File-Copy-2.41-508.azl3.noarch.rpm -perl-File-DosGlob-1.12-508.azl3.x86_64.rpm -perl-File-Fetch-1.04-508.azl3.noarch.rpm -perl-File-Find-1.43-508.azl3.noarch.rpm -perl-File-Path-2.18-508.azl3.noarch.rpm -perl-File-stat-1.13-508.azl3.noarch.rpm -perl-File-Temp-0.231.100-508.azl3.noarch.rpm -perl-FileCache-1.10-508.azl3.noarch.rpm -perl-FileHandle-2.05-508.azl3.noarch.rpm -perl-filetest-1.03-508.azl3.noarch.rpm -perl-Filter-1.64-508.azl3.x86_64.rpm -perl-Filter-Simple-0.96-508.azl3.noarch.rpm -perl-FindBin-1.53-508.azl3.noarch.rpm -perl-GDBM_File-1.24-508.azl3.x86_64.rpm +perl-fields-2.27-509.azl3.noarch.rpm +perl-File-Basename-2.86-509.azl3.noarch.rpm +perl-File-Compare-1.100.700-509.azl3.noarch.rpm +perl-File-Copy-2.41-509.azl3.noarch.rpm +perl-File-DosGlob-1.12-509.azl3.x86_64.rpm +perl-File-Fetch-1.04-509.azl3.noarch.rpm +perl-File-Find-1.43-509.azl3.noarch.rpm +perl-File-Path-2.18-509.azl3.noarch.rpm +perl-File-stat-1.13-509.azl3.noarch.rpm +perl-File-Temp-0.231.100-509.azl3.noarch.rpm +perl-FileCache-1.10-509.azl3.noarch.rpm +perl-FileHandle-2.05-509.azl3.noarch.rpm +perl-filetest-1.03-509.azl3.noarch.rpm +perl-Filter-1.64-509.azl3.x86_64.rpm +perl-Filter-Simple-0.96-509.azl3.noarch.rpm +perl-FindBin-1.53-509.azl3.noarch.rpm +perl-GDBM_File-1.24-509.azl3.x86_64.rpm perl-generators-1.15-2.azl3.noarch.rpm -perl-Getopt-Long-2.54-508.azl3.noarch.rpm -perl-Getopt-Std-1.13-508.azl3.noarch.rpm -perl-Hash-Util-0.30-508.azl3.x86_64.rpm -perl-Hash-Util-FieldHash-1.26-508.azl3.x86_64.rpm -perl-HTTP-Tiny-0.086-508.azl3.noarch.rpm -perl-I18N-Collate-1.02-508.azl3.noarch.rpm -perl-I18N-Langinfo-0.22-508.azl3.x86_64.rpm -perl-I18N-LangTags-0.45-508.azl3.noarch.rpm -perl-if-0.61.000-508.azl3.noarch.rpm -perl-interpreter-5.38.2-508.azl3.x86_64.rpm -perl-IO-1.52-508.azl3.x86_64.rpm -perl-IO-Compress-2.204-508.azl3.noarch.rpm -perl-IO-Socket-IP-0.41-508.azl3.noarch.rpm -perl-IO-Zlib-1.14-508.azl3.noarch.rpm -perl-IPC-Cmd-1.04-508.azl3.noarch.rpm -perl-IPC-Open3-1.22-508.azl3.noarch.rpm -perl-IPC-SysV-2.09-508.azl3.x86_64.rpm -perl-JSON-PP-4.16-508.azl3.noarch.rpm -perl-less-0.03-508.azl3.noarch.rpm -perl-lib-0.65-508.azl3.x86_64.rpm +perl-Getopt-Long-2.54-509.azl3.noarch.rpm +perl-Getopt-Std-1.13-509.azl3.noarch.rpm +perl-Hash-Util-0.30-509.azl3.x86_64.rpm +perl-Hash-Util-FieldHash-1.26-509.azl3.x86_64.rpm +perl-HTTP-Tiny-0.086-509.azl3.noarch.rpm +perl-I18N-Collate-1.02-509.azl3.noarch.rpm +perl-I18N-Langinfo-0.22-509.azl3.x86_64.rpm +perl-I18N-LangTags-0.45-509.azl3.noarch.rpm +perl-if-0.61.000-509.azl3.noarch.rpm +perl-interpreter-5.38.2-509.azl3.x86_64.rpm +perl-IO-1.52-509.azl3.x86_64.rpm +perl-IO-Compress-2.204-509.azl3.noarch.rpm +perl-IO-Socket-IP-0.41-509.azl3.noarch.rpm +perl-IO-Zlib-1.14-509.azl3.noarch.rpm +perl-IPC-Cmd-1.04-509.azl3.noarch.rpm +perl-IPC-Open3-1.22-509.azl3.noarch.rpm +perl-IPC-SysV-2.09-509.azl3.x86_64.rpm +perl-JSON-PP-4.16-509.azl3.noarch.rpm +perl-less-0.03-509.azl3.noarch.rpm +perl-lib-0.65-509.azl3.x86_64.rpm perl-libintl-perl-1.33-1.azl3.x86_64.rpm perl-libintl-perl-debuginfo-1.33-1.azl3.x86_64.rpm -perl-libnet-3.15-508.azl3.noarch.rpm -perl-libnetcfg-5.38.2-508.azl3.noarch.rpm -perl-libs-5.38.2-508.azl3.x86_64.rpm -perl-locale-1.10-508.azl3.noarch.rpm -perl-Locale-Maketext-1.33-508.azl3.noarch.rpm -perl-Locale-Maketext-Simple-0.21-508.azl3.noarch.rpm -perl-macros-5.38.2-508.azl3.noarch.rpm -perl-Math-BigInt-1.9998.37-508.azl3.noarch.rpm -perl-Math-BigInt-FastCalc-0.501.300-508.azl3.x86_64.rpm -perl-Math-BigRat-0.2624-508.azl3.noarch.rpm -perl-Math-Complex-1.62-508.azl3.noarch.rpm -perl-Memoize-1.16-508.azl3.noarch.rpm -perl-meta-notation-5.38.2-508.azl3.noarch.rpm -perl-MIME-Base64-3.16-508.azl3.x86_64.rpm -perl-Module-CoreList-5.20231129-508.azl3.noarch.rpm -perl-Module-CoreList-tools-5.20231129-508.azl3.noarch.rpm -perl-Module-Load-0.36-508.azl3.noarch.rpm -perl-Module-Load-Conditional-0.74-508.azl3.noarch.rpm -perl-Module-Loaded-0.08-508.azl3.noarch.rpm -perl-Module-Metadata-1.000037-508.azl3.noarch.rpm -perl-mro-1.28-508.azl3.x86_64.rpm -perl-NDBM_File-1.16-508.azl3.x86_64.rpm -perl-Net-1.03-508.azl3.noarch.rpm -perl-Net-Ping-2.76-508.azl3.noarch.rpm -perl-NEXT-0.69-508.azl3.noarch.rpm +perl-libnet-3.15-509.azl3.noarch.rpm +perl-libnetcfg-5.38.2-509.azl3.noarch.rpm +perl-libs-5.38.2-509.azl3.x86_64.rpm +perl-locale-1.10-509.azl3.noarch.rpm +perl-Locale-Maketext-1.33-509.azl3.noarch.rpm +perl-Locale-Maketext-Simple-0.21-509.azl3.noarch.rpm +perl-macros-5.38.2-509.azl3.noarch.rpm +perl-Math-BigInt-1.9998.37-509.azl3.noarch.rpm +perl-Math-BigInt-FastCalc-0.501.300-509.azl3.x86_64.rpm +perl-Math-BigRat-0.2624-509.azl3.noarch.rpm +perl-Math-Complex-1.62-509.azl3.noarch.rpm +perl-Memoize-1.16-509.azl3.noarch.rpm +perl-meta-notation-5.38.2-509.azl3.noarch.rpm +perl-MIME-Base64-3.16-509.azl3.x86_64.rpm +perl-Module-CoreList-5.20231129-509.azl3.noarch.rpm +perl-Module-CoreList-tools-5.20231129-509.azl3.noarch.rpm +perl-Module-Load-0.36-509.azl3.noarch.rpm +perl-Module-Load-Conditional-0.74-509.azl3.noarch.rpm +perl-Module-Loaded-0.08-509.azl3.noarch.rpm +perl-Module-Metadata-1.000037-509.azl3.noarch.rpm +perl-mro-1.28-509.azl3.x86_64.rpm +perl-NDBM_File-1.16-509.azl3.x86_64.rpm +perl-Net-1.03-509.azl3.noarch.rpm +perl-Net-Ping-2.76-509.azl3.noarch.rpm +perl-NEXT-0.69-509.azl3.noarch.rpm perl-Object-Accessor-0.48-10.azl3.noarch.rpm -perl-ODBM_File-1.18-508.azl3.x86_64.rpm -perl-Opcode-1.64-508.azl3.x86_64.rpm -perl-open-1.13-508.azl3.noarch.rpm -perl-overload-1.37-508.azl3.noarch.rpm -perl-overloading-0.02-508.azl3.noarch.rpm -perl-Params-Check-0.38-508.azl3.noarch.rpm -perl-parent-0.241-508.azl3.noarch.rpm -perl-PathTools-3.89-508.azl3.x86_64.rpm -perl-Perl-OSType-1.010-508.azl3.noarch.rpm -perl-perlfaq-5.20210520-508.azl3.noarch.rpm -perl-PerlIO-via-QuotedPrint-0.10-508.azl3.noarch.rpm -perl-ph-5.38.2-508.azl3.x86_64.rpm -perl-Pod-Checker-1.75-508.azl3.noarch.rpm -perl-Pod-Escapes-1.07-508.azl3.noarch.rpm -perl-Pod-Functions-1.14-508.azl3.noarch.rpm -perl-Pod-Html-1.34-508.azl3.noarch.rpm -perl-Pod-Perldoc-3.28.01-508.azl3.noarch.rpm -perl-Pod-Simple-3.43-508.azl3.noarch.rpm -perl-Pod-Usage-2.03-508.azl3.noarch.rpm -perl-podlators-5.01-508.azl3.noarch.rpm -perl-POSIX-2.13-508.azl3.x86_64.rpm -perl-Safe-2.44-508.azl3.noarch.rpm -perl-Scalar-List-Utils-1.63-508.azl3.x86_64.rpm -perl-Search-Dict-1.07-508.azl3.noarch.rpm -perl-SelectSaver-1.02-508.azl3.noarch.rpm -perl-SelfLoader-1.26-508.azl3.noarch.rpm -perl-sigtrap-1.10-508.azl3.noarch.rpm -perl-Socket-2.036-508.azl3.x86_64.rpm -perl-sort-2.05-508.azl3.noarch.rpm -perl-Storable-3.32-508.azl3.x86_64.rpm -perl-subs-1.04-508.azl3.noarch.rpm -perl-Symbol-1.09-508.azl3.noarch.rpm -perl-Sys-Hostname-1.25-508.azl3.x86_64.rpm -perl-Sys-Syslog-0.36-508.azl3.x86_64.rpm -perl-Term-ANSIColor-5.01-508.azl3.noarch.rpm -perl-Term-Cap-1.18-508.azl3.noarch.rpm -perl-Term-Complete-1.403-508.azl3.noarch.rpm -perl-Term-ReadLine-1.17-508.azl3.noarch.rpm -perl-Test-1.31-508.azl3.noarch.rpm -perl-Test-Harness-3.44-508.azl3.noarch.rpm -perl-Test-Simple-1.302194-508.azl3.noarch.rpm +perl-ODBM_File-1.18-509.azl3.x86_64.rpm +perl-Opcode-1.64-509.azl3.x86_64.rpm +perl-open-1.13-509.azl3.noarch.rpm +perl-overload-1.37-509.azl3.noarch.rpm +perl-overloading-0.02-509.azl3.noarch.rpm +perl-Params-Check-0.38-509.azl3.noarch.rpm +perl-parent-0.241-509.azl3.noarch.rpm +perl-PathTools-3.89-509.azl3.x86_64.rpm +perl-Perl-OSType-1.010-509.azl3.noarch.rpm +perl-perlfaq-5.20210520-509.azl3.noarch.rpm +perl-PerlIO-via-QuotedPrint-0.10-509.azl3.noarch.rpm +perl-ph-5.38.2-509.azl3.x86_64.rpm +perl-Pod-Checker-1.75-509.azl3.noarch.rpm +perl-Pod-Escapes-1.07-509.azl3.noarch.rpm +perl-Pod-Functions-1.14-509.azl3.noarch.rpm +perl-Pod-Html-1.34-509.azl3.noarch.rpm +perl-Pod-Perldoc-3.28.01-509.azl3.noarch.rpm +perl-Pod-Simple-3.43-509.azl3.noarch.rpm +perl-Pod-Usage-2.03-509.azl3.noarch.rpm +perl-podlators-5.01-509.azl3.noarch.rpm +perl-POSIX-2.13-509.azl3.x86_64.rpm +perl-Safe-2.44-509.azl3.noarch.rpm +perl-Scalar-List-Utils-1.63-509.azl3.x86_64.rpm +perl-Search-Dict-1.07-509.azl3.noarch.rpm +perl-SelectSaver-1.02-509.azl3.noarch.rpm +perl-SelfLoader-1.26-509.azl3.noarch.rpm +perl-sigtrap-1.10-509.azl3.noarch.rpm +perl-Socket-2.036-509.azl3.x86_64.rpm +perl-sort-2.05-509.azl3.noarch.rpm +perl-Storable-3.32-509.azl3.x86_64.rpm +perl-subs-1.04-509.azl3.noarch.rpm +perl-Symbol-1.09-509.azl3.noarch.rpm +perl-Sys-Hostname-1.25-509.azl3.x86_64.rpm +perl-Sys-Syslog-0.36-509.azl3.x86_64.rpm +perl-Term-ANSIColor-5.01-509.azl3.noarch.rpm +perl-Term-Cap-1.18-509.azl3.noarch.rpm +perl-Term-Complete-1.403-509.azl3.noarch.rpm +perl-Term-ReadLine-1.17-509.azl3.noarch.rpm +perl-Test-1.31-509.azl3.noarch.rpm +perl-Test-Harness-3.44-509.azl3.noarch.rpm +perl-Test-Simple-1.302194-509.azl3.noarch.rpm perl-Test-Warnings-0.032-2.azl3.noarch.rpm -perl-tests-5.38.2-508.azl3.x86_64.rpm -perl-Text-Abbrev-1.02-508.azl3.noarch.rpm -perl-Text-Balanced-2.06-508.azl3.noarch.rpm -perl-Text-ParseWords-3.31-508.azl3.noarch.rpm -perl-Text-Tabs+Wrap-2021.0814-508.azl3.noarch.rpm +perl-tests-5.38.2-509.azl3.x86_64.rpm +perl-Text-Abbrev-1.02-509.azl3.noarch.rpm +perl-Text-Balanced-2.06-509.azl3.noarch.rpm +perl-Text-ParseWords-3.31-509.azl3.noarch.rpm +perl-Text-Tabs+Wrap-2021.0814-509.azl3.noarch.rpm perl-Text-Template-1.61-2.azl3.noarch.rpm -perl-Thread-3.05-508.azl3.noarch.rpm -perl-Thread-Queue-3.14-508.azl3.noarch.rpm -perl-Thread-Semaphore-2.13-508.azl3.noarch.rpm -perl-threads-2.36-508.azl3.x86_64.rpm -perl-threads-shared-1.68-508.azl3.x86_64.rpm -perl-Tie-4.6-508.azl3.noarch.rpm -perl-Tie-File-1.07-508.azl3.noarch.rpm -perl-Tie-Memoize-1.1-508.azl3.noarch.rpm -perl-Tie-RefHash-1.40-508.azl3.noarch.rpm -perl-Time-1.03-508.azl3.noarch.rpm -perl-Time-HiRes-1.9775-508.azl3.x86_64.rpm -perl-Time-Local-1.300-508.azl3.noarch.rpm -perl-Time-Piece-1.3401-508.azl3.x86_64.rpm -perl-Unicode-Collate-1.31-508.azl3.x86_64.rpm -perl-Unicode-Normalize-1.32-508.azl3.x86_64.rpm -perl-Unicode-UCD-0.78-508.azl3.noarch.rpm -perl-User-pwent-1.04-508.azl3.noarch.rpm -perl-utils-5.38.2-508.azl3.noarch.rpm -perl-vars-1.05-508.azl3.noarch.rpm -perl-version-0.99.29-508.azl3.noarch.rpm -perl-vmsish-1.04-508.azl3.noarch.rpm +perl-Thread-3.05-509.azl3.noarch.rpm +perl-Thread-Queue-3.14-509.azl3.noarch.rpm +perl-Thread-Semaphore-2.13-509.azl3.noarch.rpm +perl-threads-2.36-509.azl3.x86_64.rpm +perl-threads-shared-1.68-509.azl3.x86_64.rpm +perl-Tie-4.6-509.azl3.noarch.rpm +perl-Tie-File-1.07-509.azl3.noarch.rpm +perl-Tie-Memoize-1.1-509.azl3.noarch.rpm +perl-Tie-RefHash-1.40-509.azl3.noarch.rpm +perl-Time-1.03-509.azl3.noarch.rpm +perl-Time-HiRes-1.9775-509.azl3.x86_64.rpm +perl-Time-Local-1.300-509.azl3.noarch.rpm +perl-Time-Piece-1.3401-509.azl3.x86_64.rpm +perl-Unicode-Collate-1.31-509.azl3.x86_64.rpm +perl-Unicode-Normalize-1.32-509.azl3.x86_64.rpm +perl-Unicode-UCD-0.78-509.azl3.noarch.rpm +perl-User-pwent-1.04-509.azl3.noarch.rpm +perl-utils-5.38.2-509.azl3.noarch.rpm +perl-vars-1.05-509.azl3.noarch.rpm +perl-version-0.99.29-509.azl3.noarch.rpm +perl-vmsish-1.04-509.azl3.noarch.rpm perl-XML-Parser-2.47-1.azl3.x86_64.rpm perl-XML-Parser-debuginfo-2.47-1.azl3.x86_64.rpm pinentry-1.2.1-1.azl3.x86_64.rpm