diff options
704 files changed, 27254 insertions, 5777 deletions
diff --git a/.gitignore b/.gitignore index 5c5ff1687..4d70126d3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ pkg scripts/sgrep scripts/tsort scripts/.index +Makefile +built diff --git a/configure b/configure new file mode 100755 index 000000000..72abed07d --- /dev/null +++ b/configure @@ -0,0 +1,103 @@ +#!/bin/sh -e + +HERE="$(dirname $(readlink -f ${0}))"; + +## +# Full list of all possible repositories. +# +repos=$(grep -v ^# <<EOF +system +user +legacy +experimental +EOF +); + +## +# Do not build any repos by default. +# +build=""; + +## +# Usage. +# +usage () +{ + printf "Usage: %s OPTION [OPTION] ...\n" "${0}"; + + printf "\nOptions:\n\n"; + cat <<"EOF" + --simulate Sleep 1 second instead of build +EOF + + printf "\nRepositories:\n\n"; + for k in ${repos}; do + printf " --enable-%s\n" "${k}"; + done + printf "\n"; +} + +## +# Enable repositories only explicitly. +# +_find=; +_fake=0; # default not a simulation +for arg; do + case "${arg}" in + --enable-*) + for repo in ${repos}; do + _find=0; + if test "${arg##*-}" = "${repo}"; then + build="${build} ${repo}"; + _find=1; + break; + fi + done + if test ${_find} -eq 0; then + printf "E: Repository '%s' is not supported!\n" "${arg##*-}"; + exit 1; + fi + ;; + --simulate) + _fake=1; + ;; + *) + printf "E: Option '%s' is not supported!\n" "${arg}"; + exit 1; + ;; + esac +done + +## +# Sorted order. +# +build=$(printf "%s\n" "${build}" | tr ' ' '\n' | sort | uniq | xargs); + +## +# Sanity checks. +# +if test "${#build}" -eq 0; then + usage; + exit 0; +fi + +## +# Generate Makefile. +# +printf "Generating subpackage index ...\n"; +"${HERE}"/scripts/setup; +printf "Generating dependency list ...\n"; +"${HERE}"/scripts/deplist ${build} | "${HERE}"/scripts/genmake ${_fake}; + +## +# Generate report. +# +printf "\nSuccess!\n\n"; + +_numpkgs=$(grep -E '^.*/.*:' "${HERE}"/Makefile | wc -l); +printf " Packages\t: %s\n" "${_numpkgs}"; +printf "\n"; + +if test ${_fake} -eq 1; then + printf "SIMULATION ONLY! NO PACKAGES WILL BE BUILT!\n\n"; +fi diff --git a/experimental/otter-browser/APKBUILD b/experimental/otter-browser/APKBUILD index ec0d59264..d7056cba7 100644 --- a/experimental/otter-browser/APKBUILD +++ b/experimental/otter-browser/APKBUILD @@ -1,23 +1,22 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=otter-browser -pkgver=0.9.96 +pkgver=1.0.03 pkgrel=0 pkgdesc="A free, open browser focused on user privacy" url="https://otter-browser.org/" arch="all" +options="!check" # No test suite license="GPL-3.0+" depends="" makedepends="cmake qt5-qtbase-dev qt5-qttools-dev openssl-dev gstreamer-dev qt5-qtmultimedia-dev qt5-qtdeclarative-dev qt5-qtsvg-dev hunspell-dev qt5-qtxmlpatterns-dev qt5-qtwebkit-dev" -install="" langdir="/usr/share/otter-browser/locale" subpackages="$pkgname-doc $pkgname-lang" -source="https://sourceforge.net/projects/$pkgname/files/$pkgname-rc6/$pkgname-$pkgver.tar.bz2" +source="https://sourceforge.net/projects/$pkgname/files/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2" build() { - cd "$builddir" if [ "$CBUILD" != "$CHOST" ]; then CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" fi @@ -28,18 +27,13 @@ build() { -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ - ${CMAKE_CROSSOPTS} - make -} - -check() { - cd "$builddir" - CTEST_OUTPUT_ON_FAILURE=TRUE ctest + ${CMAKE_CROSSOPTS} \ + -Bbuild + make -C build } package() { - cd "$builddir" - make DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" -C build install } -sha512sums="4ba915226360ae1d6f5fd9bf5ea502ea9f2104594536eff0cfe57f162fb769158b03da2da9e5c0ce757af8fafa6f379ce81391b648bf4253c2bb35f12c3620b3 otter-browser-0.9.96.tar.bz2" +sha512sums="7d78b6927d9eb0503ca9a16cf5435505d941e615a9b77f2707b40f14a8a0c84250e88a33b2cc6ab3b1cce5b46930d23814135932ae38cbd0a8100452a5b2daf6 otter-browser-1.0.03.tar.bz2" diff --git a/user/zola/APKBUILD b/experimental/zola/APKBUILD index f61764a01..402b2f0fe 100644 --- a/user/zola/APKBUILD +++ b/experimental/zola/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Samuel Holland <samuel@sholland.org> pkgname=zola pkgver=0.9.0 -pkgrel=0 +pkgrel=1 pkgdesc="A fast static site generator in a single binary with everything built in" url="https://github.com/getzola/zola" arch="all" @@ -388,8 +388,7 @@ check() { package() { export CARGO_HOME="$srcdir/cargo-home" - cargo install --path . --root="$pkgdir"/usr - rm "$pkgdir"/usr/.crates.toml + cargo install --no-track --path . --root="$pkgdir"/usr } doc() { diff --git a/user/lxmenu-data/APKBUILD b/legacy/lxmenu-data/APKBUILD index 9e60933b9..9e60933b9 100644 --- a/user/lxmenu-data/APKBUILD +++ b/legacy/lxmenu-data/APKBUILD diff --git a/user/minizip-ng/APKBUILD b/legacy/minizip-ng/APKBUILD index 7e60b5857..7e60b5857 100644 --- a/user/minizip-ng/APKBUILD +++ b/legacy/minizip-ng/APKBUILD diff --git a/user/mozjs/0003-build-Fix-library-install-name-on-macOS.patch b/legacy/mozjs/0003-build-Fix-library-install-name-on-macOS.patch index 7d66d5aac..7d66d5aac 100644 --- a/user/mozjs/0003-build-Fix-library-install-name-on-macOS.patch +++ b/legacy/mozjs/0003-build-Fix-library-install-name-on-macOS.patch diff --git a/user/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch b/legacy/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch index 1a27b9ab5..1a27b9ab5 100644 --- a/user/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch +++ b/legacy/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch diff --git a/user/mozjs/1002_drop_build_id.patch b/legacy/mozjs/1002_drop_build_id.patch index 9f62abaea..9f62abaea 100644 --- a/user/mozjs/1002_drop_build_id.patch +++ b/legacy/mozjs/1002_drop_build_id.patch diff --git a/user/mozjs/1004_fix_pie_detection.patch b/legacy/mozjs/1004_fix_pie_detection.patch index e24adf365..e24adf365 100644 --- a/user/mozjs/1004_fix_pie_detection.patch +++ b/legacy/mozjs/1004_fix_pie_detection.patch diff --git a/user/mozjs/6006_musl_pthread_setname.patch b/legacy/mozjs/6006_musl_pthread_setname.patch index 213509ff7..213509ff7 100644 --- a/user/mozjs/6006_musl_pthread_setname.patch +++ b/legacy/mozjs/6006_musl_pthread_setname.patch diff --git a/user/mozjs/APKBUILD b/legacy/mozjs/APKBUILD index 86c7c5c0c..86c7c5c0c 100644 --- a/user/mozjs/APKBUILD +++ b/legacy/mozjs/APKBUILD diff --git a/user/mozjs/endian.patch b/legacy/mozjs/endian.patch index 1a04573ea..1a04573ea 100644 --- a/user/mozjs/endian.patch +++ b/legacy/mozjs/endian.patch diff --git a/scripts/cargo.pl b/scripts/cargo.pl index 54d716e47..93e365620 100755 --- a/scripts/cargo.pl +++ b/scripts/cargo.pl @@ -2,7 +2,7 @@ use strict; use warnings; -use feature qw(:5.22); +use feature qw(:5.34); open my $cargo, '<', $ARGV[0] or die "can't open $ARGV[0]: $!\n"; my $data = ''; @@ -12,21 +12,32 @@ my $data = ''; $data = <$cargo>; } -my $name = ''; -my %cargo = (); -my @lines = split /\r?\n/, $data; +my @lines = split /(\r?\n){2,}/, $data; +my @cargo; # Parse the file; we just want the name and version. foreach my $line (@lines) { - if ($line =~ /^name = "(.*?)"$/) { - $name = $1; - } elsif ($line =~ /^version = "(.*?)"$/) { - $cargo{$name} = $1; + $line =~ /^name = "(.*?)"$/m; + my $name = $1; + next unless defined($name); + + $line =~ /^version = "(.*?)"$/m; + my $version = $1; + next unless defined($version); + + next unless $line =~ /^source /m; + $line =~ /^source = "(.*?)"$/m; + my $source = $1; + next unless defined($source); + + if ($source ne 'registry+https://github.com/rust-lang/crates.io-index') { + warn "Warning: $name lacks a supported registry.\n"; } + push @cargo, "$name $version"; } open my $file, '>', 'crates.txt' or die "can't open output file: $!\n"; # Print the data we pulled out above to a file. -foreach my $pkg (keys %cargo) { - say $file $pkg . ' ' . $cargo{$pkg}; +foreach my $pkg (sort @cargo) { + say $file $pkg; } diff --git a/scripts/genmake b/scripts/genmake new file mode 100755 index 000000000..79a89175a --- /dev/null +++ b/scripts/genmake @@ -0,0 +1,93 @@ +#!/bin/sh -e + +# ./scripts/deplist system | ./scripts/genmake [0|1] + +## +# This script reads from stdin and generates +# a Makefile in the repository's root. +# +# The first argument to this script is a value {0,1} +# indicating whether to generate real rules or fake +# (simulation) rules. Fake rules might be 'sleep 1' +# or can be user-defined. +# +# NOTE: out-of-tree builds are not supported. +# + +HERE="$(dirname $(readlink -f ${0}))"; +DEST="${HERE}"/../Makefile; +TEMP="$(mktemp)"; + +## +# Build recipes. +# +# FIXME: is $(@D) POSIX or $(%/built=%) required? +# +rule_real=$(cat <<"EOF" + @cd $(@D) && abuild -r +EOF +); +rule_fake=$(cat <<"EOF" + @echo $(@D) + @sleep 1 +EOF +); + +## +# Read deplist from stdin, synthesize Makefile targets. +# +awk '{ $(NF+1)=$1; print $0 }' `# duplicate first column to last` \ + | sed > "${TEMP}" -E `# use extended regex, write to temp file ` \ + -e 's/ /: /' `# append colon to first column` \ + -e '/: /s@( |$)@/built @2g' `# append '/built' to all dependencies` \ + -e 's/ $//g' `# trim trailing spaces` \ + ; + +## +# Internal; convenience only. +# +list=$(grep : "${TEMP}" \ + | cut -d: -f1 \ + | xargs \ +); + +## +# Create (or truncate) the output Makefile. +# +# Default target builds everything. +# +printf "all: %s\n" "${list}" > "${DEST}"; + +## +# Append generic target build recipe. +# +rule=; +case ${1} in + 0) rule="${rule_real}"; ;; + 1) rule="${rule_fake}"; ;; + *) printf "E: Invalid mode '%s'\n" "${1}"; exit 1; ;; +esac +cat >> "${DEST}" <<EOF +%/built: %/APKBUILD +${rule} + @touch \$@ +clean: + @find \$(CURDIR) -type f -name built -print -delete +distclean: + @rm -fv \ + \$(CURDIR)/Makefile \ + \$(CURDIR)/scripts/.index \ + \$(CURDIR)/scripts/sgrep \ + \$(CURDIR)/scripts/tsort \ + ; +EOF + +## +# Append target rules to output Makefile. +# +cat >> "${DEST}" "${TEMP}"; + +## +# Clean up. +# +rm "${TEMP}"; diff --git a/scripts/healthchecks b/scripts/healthchecks index ae313bb1e..ab3abee32 100755 --- a/scripts/healthchecks +++ b/scripts/healthchecks @@ -58,7 +58,7 @@ try_down () ## # Download the file and set global 'okay' to curl retval. # - curl --connect-timeout 10 -sLo "${TEMP}/${name}" "${down}" || okay=${?}; + curl --connect-timeout 120 -sLo "${TEMP}/${name}" "${down}" || okay=${?}; ## diff --git a/system/adelie-base/APKBUILD b/system/adelie-base/APKBUILD index 7d4440684..cc7d48397 100644 --- a/system/adelie-base/APKBUILD +++ b/system/adelie-base/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=adelie-base -pkgver=0.9.5 -pkgrel=1 +pkgver=0.9.7 +pkgrel=0 pkgdesc="The Adélie Linux Base System" url="https://www.adelielinux.org/" arch="noarch" @@ -13,8 +13,8 @@ _core_depends="apk-tools adelie-keys musl-utils shadow coreutils diffutils findutils util-linux net-tools nvi sed psmisc less tzdata" -depends="adelie-core binutils debianutils file gettys-openrc - kbd libarchive-tools mandoc patch sed sharutils sysklogd zsh" +depends="adelie-core binutils curl debianutils file gettys-openrc + kbd libarchive-tools mandoc patch sysklogd utmps zsh" makedepends="" makedepends_host="$depends" subpackages="adelie-core:core $pkgname-doc $pkgname-posix $pkgname-lsb dev @@ -47,22 +47,20 @@ package() { echo '' > "$pkgdir"/etc/shells # stupid inflatable stupid busybox - local i - for i in adduser addgroup; do - install -m755 "$srcdir"/$i "$pkgdir"/usr/sbin/$i + for _cmd in adduser addgroup; do + install -m755 "$srcdir"/$_cmd "$pkgdir"/usr/sbin/$_cmd done } core() { - core="The Adélie Linux minimal runtime environment" depends=$_core_depends + pkgdesc="The Adélie Linux minimal runtime environment" replaces="adelie-base" mkdir -p "$subpkgdir" mv -i "$pkgdir"/* "$subpkgdir"/ } doc() { - local _doc DOCS DOCS="CONTRIBUTING.rst LICENSE README.rst" for _doc in $DOCS; do install -Dm644 "$srcdir"/$pkgname-$pkgver/$_doc \ @@ -73,15 +71,15 @@ doc() { posix() { # We pull in vim for /usr/bin/ex, until apk has an alternatives system depends="adelie-base at bc cflow cxref ed fcron heirloom-devtools - heirloom-pax mailx mawk uucp utmps vim" + heirloom-pax mailx mawk sharutils uucp vim" pkgdesc="$pkgdesc - Additional POSIX tools" mkdir -p "$subpkgdir" return 0 } lsb() { - depends="adelie-base gettext-tiny gzip libarchive-tools linux-pam make - mawk ncurses nspr nss" + depends="adelie-base-posix gettext-tiny gzip libarchive-tools linux-pam + make ncurses nspr nss" pkgdesc="$pkgdesc - Additional LSB tools" mkdir -p "$subpkgdir" return 0 @@ -115,7 +113,7 @@ symbols() { return 0 } -sha512sums="0fbf49174e0740bbbcb8ff29b560a65987305ab17ea70b1ecb7f0fddd8c9963d23272950d7e729afd3afc45426faa40896aa1c9e8703f7b79532b2cd7039a0c5 adelie-base-0.9.5.tar.xz +sha512sums="897a4733c49bbb460ac815a95d812bc22f6d603ffebb4a5f4405be404cd526637191116e614d51377a1c2b322b44ac95c865cb1cfff6ec9d88c76eb6b5601888 adelie-base-0.9.7.tar.xz 37260d9315fd8d8b0df3dfb5bd3e1035a47ba1e43f33aa195e3feca6d169da282c1b067ef4603e7e9acaedbfef8b58cf490c00bdca444d43c9d570355ad29eac group 33aca5423feadd02cce1ac5598ab26ce4f10f2e0d955d953c5ec12b61e605d92b25c2449aec224923bf8affb4fa918458ab67e4292a29c357ad15b74ebc68183 passwd f2437ebfbc83aa6eaeec3a111aae98751215cebfaec3991ccc511be8c8938778ae46f15e07c7306bd431d036bc4ba49b33b724b839c125bd882d2e93c0314ae8 addgroup diff --git a/system/apk-tools/APKBUILD b/system/apk-tools/APKBUILD index d664340e0..8bda1131c 100644 --- a/system/apk-tools/APKBUILD +++ b/system/apk-tools/APKBUILD @@ -1,23 +1,23 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> pkgname=apk-tools -pkgver=2.12.0 +pkgver=2.14.0 pkgrel=0 pkgdesc="Alpine Package Keeper - package manager" url="https://git.adelielinux.org/adelie/apk-tools" arch="all" license="GPL-2.0-only" depends="ca-certificates" -makedepends_build="" +makedepends_build="scdoc" makedepends_host="zlib-dev openssl openssl-dev linux-headers" makedepends="$makedepends_build $makedepends_host" subpackages="$pkgname-dev $pkgname-static $pkgname-doc" -source="https://dev.sick.bike/dist/$pkgname-v$pkgver+adelie.tar.gz - https://dev.sick.bike/dist/$pkgname-help-v$pkgver.tar.gz +source="https://git.adelielinux.org/adelie/apk-tools/-/archive/v${pkgver}+adelie1/${pkgname}-v${pkgver}+adelie1.tar.bz2 + https://git.adelielinux.org/adelie/apk-tools/uploads/58cb5e01b6ac8218ba738df0e0bedc7c/apk-tools-docs-v2.14.0.tar.xz apk.zsh-completion s6-linux-init.patch " -builddir="$srcdir/$pkgname-v$pkgver" +builddir="$srcdir/$pkgname-v$pkgver+adelie1" prepare() { default_prepare @@ -27,6 +27,7 @@ prepare() { LUA=no export LUA EOF + rm "$builddir"/doc/apk-add.8 } build() { @@ -71,7 +72,7 @@ static() { "$subpkgdir"/sbin/apk.static } -sha512sums="739cbf487a9184aba56c87448d18acebf357b6eddb4852033cc0cd331fc910d425a5d01f7b0bf109f5cd62f78f10cca96ebcbdb4fa00d197edb90726998e1523 apk-tools-v2.12.0+adelie.tar.gz -b8e6e6e9efe2fc3a900e5fea54ed2f047bbf8917c8c3e470e001865c2169167ce6a273869ba577aceb1a1580b7dd684de115a4d92250786958fa13b9e8abf28b apk-tools-help-v2.12.0.tar.gz +sha512sums="e71fd14655cd5907ea7046d64a877cf5128d062a7e7ca82dd5d1c254bf3ca59443c5643571734c9f558301fe0ffd16956bb89b680c5101b653eaaf64259d2959 apk-tools-v2.14.0+adelie1.tar.bz2 +c59bdd7fe77bd2cf565a1c050100bebd90da80b9d46b706237c6e5d2a3f5bf3f5a23a69940074b842c8e9f49e788d3c27492b952e52ef881bd1c22e1046a0743 apk-tools-docs-v2.14.0.tar.xz cedda9bf11e0a516c9bf0fd1a239ffa345cdd236419cbd8b10273410610ae7d0f0f61fd36e1e9ccc3bbf32f895508cdca4fb57a0e04f78dd88469b33bf64a32a apk.zsh-completion f92e2e0c062b71e1e5cf95f0d4997166ccc7f7a5e45af8d1650f5951a1d552d89217c8c60d24f31fa626e8e0675c5e882e6b36ef1af8f7624e54627b22801381 s6-linux-init.patch" diff --git a/system/argon2/APKBUILD b/system/argon2/APKBUILD index c7a1bd6c2..14427ad12 100644 --- a/system/argon2/APKBUILD +++ b/system/argon2/APKBUILD @@ -4,7 +4,7 @@ pkgname=argon2 _pkgname=phc-winner-argon2 pkgver=20190702 -pkgrel=1 +pkgrel=2 pkgdesc="Password hashing library" url="https://github.com/P-H-C/phc-winner-argon2" arch="all" @@ -18,17 +18,17 @@ builddir="$srcdir/$_pkgname-$pkgver" build() { # musl >= 1.1.20 has explicit_bzero for better security export CFLAGS="$CFLAGS -DHAVE_EXPLICIT_BZERO=1" - make OPTTARGET=none + make OPTTARGET=none ARGON2_VERSION=$pkgver } check() { - make OPTTARGET=none test + make OPTTARGET=none ARGON2_VERSION=$pkgver test } package() { # pkgconfig file has it in /usr/lib... sed -i 's#libdir=${prefix}/lib#libdir=/lib#' "$builddir"/libargon2.pc - make OPTTARGET=none DESTDIR="$pkgdir" LIBRARY_REL=lib install + make OPTTARGET=none ARGON2_VERSION=$pkgver DESTDIR="$pkgdir" LIBRARY_REL=lib install # ...but cryptsetup needs this in /lib for early-boot mkdir "$pkgdir"/lib mv "$pkgdir"/usr/lib/lib* "$pkgdir"/lib diff --git a/system/bash/APKBUILD b/system/bash/APKBUILD index a7df29ff5..dfb3adab8 100644 --- a/system/bash/APKBUILD +++ b/system/bash/APKBUILD @@ -52,6 +52,10 @@ prepare() { done default_prepare + + # `abuild` pc: auto-provider cannot handle "-release" string in .pc + # See also: adelie/packages#1131 + sed -i "s/@PACKAGE_VERSION@/$pkgver/" "$builddir"/support/bash.pc.in } build() { diff --git a/system/binutils/APKBUILD b/system/binutils/APKBUILD index 0ba167363..06f7c4cb6 100644 --- a/system/binutils/APKBUILD +++ b/system/binutils/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> pkgname=binutils -pkgver=2.41 +pkgver=2.42 pkgrel=0 pkgdesc="Tools necessary to build programs" url="https://www.gnu.org/software/binutils/" @@ -13,6 +13,7 @@ makedepends="$makedepends_build $makedepends_host" checkdepends="dejagnu" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-libs" source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz + ar-deterministic-tests.patch binutils-ld-fix-static-linking.patch disable-ifunc-tests.patch disable-mbind2b.patch @@ -20,20 +21,17 @@ source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz disable-preinit-array-tests.patch disable-relr-glibc-tests.patch disable-sframe-tests.patch - disable-textrel-test.patch - fix-pr28158-test.patch + libctf-32bit-test.patch musl-preinit-array.patch musl-versioned-syms.patch - ppc32-pic-required.patch - ppc64-abiv2-addr2line.patch pr25749-test-size.patch remove-pr2404-tests.patch remove-pr19719-test.patch remove-pr19553c-test.patch - skip-thumb-plt-musl.patch - vers-tests-eabi.patch visibility-musl.patch vsb-hammer.patch + x86_64-mark-plt.patch + x86_64-missing-test.patch BTS-170.patch BTS-196.patch fix-deprecated-egrep-usage.patch @@ -144,28 +142,26 @@ libs() { mv "$pkgdir"/usr/lib/lib*.so "$subpkgdir"/usr/lib/ } -sha512sums="5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374 binutils-2.41.tar.xz -ced667e95bfec8909e20802cd3d734b0b179bfc9d995dd68827a471ab9a4fdc38397f3d947dcae1bf2368a73480be3f18d4ec6b757ac7fdb9ee358693cc0670f binutils-ld-fix-static-linking.patch -ae54a3728b6e674febf130979a434f525b77f93103eef9c023647a68eaf5b607dfe264ab553d2132f46e93956959d1adf71bbd176e80a42a33329e62f6f55c3e disable-ifunc-tests.patch -de3f50afe2b0962d1f52f154871285e9c6d7b5599b745365a8f14fd237c7b1d6a066d0d081ce67ad1317b37bae2875f27adfea52f3853d7e30003e74a84075c2 disable-mbind2b.patch -cbbb9d62f53b1f93bb7d5728e0fe7ef0ebb18f388bc228b396e4df8ce5dd1079e0d7ca0afb2928f6f1beba30475e7f68fe345daffab3cb3ef607ca5bdd87915d disable-pr26580-test.patch -4c8098df5c01579d1c53c0344bf5e0f1c3b11bc119da077d83e87f7d103ed958e78083f94e71b12521c5f0cb83b3dda509efadc4124bcc28b436b39245ab4603 disable-preinit-array-tests.patch -b2d5da2705366f5919d3f8310225620493b88406b6e909ddf9bd8c9ef50f13757816ff2947eb33c1832048fd1d42c3a2593c909ee35f2fdc947f8e2df5500c7b disable-relr-glibc-tests.patch +sha512sums="155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6 binutils-2.42.tar.xz +07a9a47c5955a1911cab5387134cfacfff82f5521066bb61f671c7e0d07ce64c31c4162a57234604b470d24f27093cb23202ad05bebc34479957c6fe64dbc8fb ar-deterministic-tests.patch +3736ea519eab417bc05f9851954e644a4d1b44f4641fb5685ff2238bd2da775f20611edfdcd3a72eb1f2a31ba2a98e3fd97fe9d57714b7d9846553eb881a3435 binutils-ld-fix-static-linking.patch +5eef9c29066f906fc133736efdfb9c94a897f08650bb741dc0ea8b5614563166d2afa9018c045569c853ae7cabe08ef5ec3539eb7b53df55b39b8c659a8c8b72 disable-ifunc-tests.patch +b9f5c09aec2e6423f31fae48a26b8138f65569e63f28dc2190cb73abc2493832cc33362443ec0f24e7833bf2eb0f14ce78045d82fd8ebb4097eafd1f1a34a3fe disable-mbind2b.patch +086f97e52c536e68b082716d054d32be50b0947cab9c62d87b1959efbf8f99423b6dc52f79da4a6dedc588a577132cb062a071928cd2b85449a107b89c3771de disable-pr26580-test.patch +6568983766b0b9e947c21fc12f29d41b79a2a0c0c162e0d2c00120713da76bec7b6369333dbdca9d53dd0c81e2cd438c20e30076893742bfb8e14dbc89301c57 disable-preinit-array-tests.patch +4b0089f72c676fadbbcffbd87d2715ca010a4a87392d677b0887b86ce5c2ba446fb45e079bcd4492c47d1479b91b4a2c5b2466746166081e04f4b24191239625 disable-relr-glibc-tests.patch e8ebb984e9b13b75114c8092d1ad2d0c1b3bb59bf10e66ca250151e79844125a23f74b8c4142210c8e574785c35e0ee1df0499e0cfd6ef59e8e80d58121963e1 disable-sframe-tests.patch -8213bc7e965b7c93e24c755e3ca47c522e3ba0d8504ec1def58fad398dd215158740164276ec8a0b48f2058c7025b5b8b6b2e16e646baf4f7dc1841d4fc5a504 disable-textrel-test.patch -2972b86e1741866db244cd262469eaef244fc3fb0d569b58cb1ad427d31b3ffc9ccbde904e7bd78f10367a5bfe8ec7f4076253abe03edbabbb0e5894ccc20487 fix-pr28158-test.patch -8ef144efc8c0cc71b48d7ed9444fa70906c9a4894058588e3f49c1826975675ab8091681912a15ecbed6772aa5bba31935c92abef0095548fc8a9ecaa5d26526 musl-preinit-array.patch -ab4d03394073bb6dbd4a046637e9bf57f8b4dad163c551b0d9bb2202025b243161149c8622c2fae072c43082bbf19e15b667483831a58a5d1bc93b464763cdcc musl-versioned-syms.patch -7b5ee15c9e5a3567cb000a4ac07699f9d0f11354cf5ee20fd375e483945fd45d0e1551f3f28bdb8ebb49355b3180cc90977e81ae0c3c210cdc689add504952a7 ppc32-pic-required.patch -5456d4d6c1097f41e5c02d92ed83acf608eb05d912cf4d289e8f772e8eded9af2030c518b7a89133ef3905d084fc5354ec140e472c22fe11c6802c1e9a4237e7 ppc64-abiv2-addr2line.patch +4948b963906a72075873f2988289294f6c1eb60297ac2bdee5d8646ad8a23f8f16d98b3e4f048fb625d347be28028a87247241a8dca030b4847450951b7aca32 libctf-32bit-test.patch +1f22d31b4bc1ed96d9aa1fc49c4328c6516cbb196c0d86db3f68665b948a4950911bb23d53c6f3b82703cddf9380f706355177842f12aa7fc11dd0124feadd3e musl-preinit-array.patch +ad38c37ae67f60cf3091bf5012dbdaba0982a3e4eac5f3be400d989fb3f7400a4be2db0b8658357ec1e8be71eaddf012e9608ae8540f28fe9fa3af3d87e90fa3 musl-versioned-syms.patch c76733b76daf5d4af17464777cb753c68063fdc6040d943962c78182ca65f46a2744d4437f6cc3b8ff5f09ff8c0f582690b7dc89eaaf4da48f9300a81b8b3803 pr25749-test-size.patch -b97aa6fd5a0b5b71dadd7d9925a0642681ce96bb98348a01c5778e4e6570bd2e135ff0252dec6568e19df329fb1a36bcf495d332c0207573fe2e6e5842283d27 remove-pr2404-tests.patch -ac8d30f5af82653242355d7bb0835823ea474bc6d349df4a2e6db91d90f8f80ccab1ff4ede6734af76e79da2e083a1a90cb9ae0631e3d62d89bc5f5a57c24c92 remove-pr19719-test.patch +c54fa146dd6838c7b55441943b2ca0e344d851615574a46464e253d3f4a9ef3594ef9cf2bc69b584032a8206bf891d0aae62fb38b32873dc60c9d51874ead2ae remove-pr2404-tests.patch +b4bd7b5d2ad3705c7db0924c73bd91d5f8ef07e73f146c250af7d794387ab219b02254b1b61060a524f2c27c04e14a401e4ce7ed50367f424f8c03874318c2c1 remove-pr19719-test.patch 06f9df891a4ae0e9f6f8b3282d3691ede7cc0f08d63bf722f942f3c94dd4d7f3907b7bb5a8087e63639569e61aed6c39b5f5da7ad6566e7ef278524aa32ada63 remove-pr19553c-test.patch -bdfc92cdd6c31a68e09daf71e3c45900158f8222832bda14cb2f12d9d693e6f19fe00dd29a7af9850bf0a19afe6ef421a690195f1a4e96d3cc76370f1e3bd399 skip-thumb-plt-musl.patch -52f250970ba6814a7a992f6ad4a7c8bfbc9b5f0a0c422c920edf8b6c3dfbc353d13be940483bbbce1bfc543572c2abb06015df61a68a640774b827810d0dde6b vers-tests-eabi.patch 075565f9bc85c0fc4bd36c7a848f6b876b71fbbe0f572b5c21961687ab4e2cd00c784fba09fe92b214c4b1df871ebd6409e6c93dde5a0a6c1ef6e41a30b24520 visibility-musl.patch 55bdb08f93563449b170ba8623cd7d4409c8f22abb15fca23bc87f23cc43cd580fa149e68271e65fdf2c29ddb0a15cd78d6f0de1a50332fdc026ea1b7d0ec7b8 vsb-hammer.patch +fcd71dc0e664bce0d1066b6adec9b8eebb85eb589061ad7e88934dbda4d5f8849ff6db97299a8026840515e44a73de5e131e3209052be45e807706e79ef8a045 x86_64-mark-plt.patch +f524acb49e7ce14133a11b237858aaadc84f4c3290b6e59335ec293fc6cc0e65c9bdd47c2b68bf75bb3a39ebe2e61df4f7bf941acec69d79968aa68915ade4d5 x86_64-missing-test.patch c62365110dd0a550e55f1445b197f1f968849b1079439cda0d44778772964779b4ab1142ccc662ba75ebb040e09ef4b4bfc253f4632db24ed783155be2f5f3b1 BTS-170.patch ab7d0c1fa74862bf9364d5e2228200054a2c5c4351c979dc7a9850f630d74034edffba740b468e009c5419a3cec110322364303f8af28dcdbfbe672c3c16f450 BTS-196.patch 95f2063ecb902148e53603211452ca21d4dec215c32a07c2eebc5881dbdc7cba34a7a49177fedf4db1d7d8542708af673a31930fd7d49a6a2eb00b47dbe6eeb9 fix-deprecated-egrep-usage.patch" diff --git a/system/binutils/ar-deterministic-tests.patch b/system/binutils/ar-deterministic-tests.patch new file mode 100644 index 000000000..f3f63b937 --- /dev/null +++ b/system/binutils/ar-deterministic-tests.patch @@ -0,0 +1,67 @@ +From: Stephen Kitt <steve@sk2.org> +Date: Mon, 11 Mar 2024 07:21:47 +0000 (+0100) +Subject: tests: force non-deterministic mode in non-deterministic tests +X-Git-Tag: gdb-15-branchpoint~761 +X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=64e215c15bc316f673161c76db93a50bda45666a;hp=5790996072837620a8fd3756dda5138eb2f2781b + +tests: force non-deterministic mode in non-deterministic tests + +Since ar can be built defaulting to deterministic mode, tests which +expect non-deterministic behaviour need to explicitly set the U flag. + +The non-deterministic member test expects SOURCE_DATE_EPOCH to not be +set; this documents that. Unconditionally unsetting the variable +causes issues in test infrastructure (which expects unsetenv to only +be called on variables which are already set). + +Signed-off-by: Stephen Kitt <steve@sk2.org> +--- + +diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp +index d4e4f64b42e..998cbe1f0a9 100644 +--- a/binutils/testsuite/binutils-all/ar.exp ++++ b/binutils/testsuite/binutils-all/ar.exp +@@ -538,6 +538,7 @@ proc replacing_deterministic_member { } { + } + + # Test replacing a member of a non-deterministic archive. ++# This test expects SOURCE_DATE_EPOCH to not be set in the environment. + + proc replacing_non_deterministic_member { } { + global AR +@@ -581,7 +582,7 @@ proc replacing_non_deterministic_member { } { + + # Build the archive with the *newer* object file. + +- set got [binutils_run $AR "rc $archive ${newer_objfile}"] ++ set got [binutils_run $AR "rcU $archive ${newer_objfile}"] + if ![string match "" $got] { + fail "$testname: (could not build archive)" + return +@@ -589,7 +590,7 @@ proc replacing_non_deterministic_member { } { + + # Now try to replace the newer file with the older one. This should not work. + +- set got [binutils_run $AR "ru $archive $older_objfile"] ++ set got [binutils_run $AR "ruU $archive $older_objfile"] + if ![string match "" $got] { + fail "$testname: (failed to replace file)" + return +@@ -651,7 +652,7 @@ proc replacing_sde_deterministic_member { } { + # Build the archive with the *newer* object file. + setenv SOURCE_DATE_EPOCH "1000" + +- set got [binutils_run $AR "rc $archive ${newer_objfile}"] ++ set got [binutils_run $AR "rcU $archive ${newer_objfile}"] + if ![string match "" $got] { + fail "$testname: (could not build archive)" + unsetenv SOURCE_DATE_EPOCH +@@ -662,7 +663,7 @@ proc replacing_sde_deterministic_member { } { + # archive this will not work, but one created to be deterministic + # should always replace its members. + +- set got [binutils_run $AR "ru $archive $older_objfile"] ++ set got [binutils_run $AR "ruU $archive $older_objfile"] + if ![string match "" $got] { + fail "$testname: (failed to replace file)" + unsetenv SOURCE_DATE_EPOCH diff --git a/system/binutils/binutils-ld-fix-static-linking.patch b/system/binutils/binutils-ld-fix-static-linking.patch index fb79e3213..d1bbe41a4 100644 --- a/system/binutils/binutils-ld-fix-static-linking.patch +++ b/system/binutils/binutils-ld-fix-static-linking.patch @@ -3,7 +3,7 @@ diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index e8126cb..9532bfb 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc -@@ -257,8 +257,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS=" +@@ -269,8 +269,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS=" if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))" SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))" @@ -14,7 +14,7 @@ index e8126cb..9532bfb 100644 else SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))" SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))" -@@ -298,15 +298,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : +@@ -310,15 +310,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ @@ -32,7 +32,7 @@ index e8126cb..9532bfb 100644 KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} -@@ -314,9 +313,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : +@@ -326,9 +325,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=".dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} diff --git a/system/binutils/disable-ifunc-tests.patch b/system/binutils/disable-ifunc-tests.patch index 39b35d319..9f21a03fc 100644 --- a/system/binutils/disable-ifunc-tests.patch +++ b/system/binutils/disable-ifunc-tests.patch @@ -1,6 +1,6 @@ --- binutils-2.31.1/ld/testsuite/ld-ifunc/ifunc.exp.old 2018-06-27 07:55:16.000000000 +0000 +++ binutils-2.31.1/ld/testsuite/ld-ifunc/ifunc.exp 2018-10-12 03:23:09.240000000 +0000 -@@ -43,7 +43,8 @@ +@@ -44,7 +44,8 @@ || [istarget sh*-*-*] || [istarget tic6x-*-*] || [istarget tile*-*-*] diff --git a/system/binutils/disable-mbind2b.patch b/system/binutils/disable-mbind2b.patch index 6065ba0cf..dee8690f1 100644 --- a/system/binutils/disable-mbind2b.patch +++ b/system/binutils/disable-mbind2b.patch @@ -2,7 +2,7 @@ XXX working upstream with musl, trying to push to other arches for testing --- binutils-2.41/ld/testsuite/ld-elf/elf.exp.old 2023-09-22 22:22:00.860304785 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/elf.exp 2023-09-22 23:43:12.163396014 -0500 -@@ -490,15 +490,6 @@ +@@ -493,15 +493,6 @@ "pass.out" \ "-O2 -I../bfd" \ ] \ diff --git a/system/binutils/disable-pr26580-test.patch b/system/binutils/disable-pr26580-test.patch index 768a7c0c0..681b8ec0c 100644 --- a/system/binutils/disable-pr26580-test.patch +++ b/system/binutils/disable-pr26580-test.patch @@ -7,7 +7,7 @@ Not reported upstream. --- binutils-2.41/ld/testsuite/ld-elf/shared.exp.old 2023-09-30 00:31:20.814410396 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/shared.exp 2023-09-30 01:23:23.564443008 -0500 -@@ -1121,10 +1121,6 @@ +@@ -1157,10 +1157,6 @@ "" "" \ {pr26580-a.c} "pr26580-3" "pr26580-3.out" "-fcommon" "c" "" \ "-Wl,--as-needed tmpdir/libpr26580-2.so" ] \ diff --git a/system/binutils/disable-preinit-array-tests.patch b/system/binutils/disable-preinit-array-tests.patch index 4338fd5ec..5693d4bbd 100644 --- a/system/binutils/disable-preinit-array-tests.patch +++ b/system/binutils/disable-preinit-array-tests.patch @@ -1,6 +1,6 @@ --- binutils-2.29/ld/testsuite/ld-elf/elf.exp.old 2017-07-04 08:43:21.000000000 +0000 +++ binutils-2.29/ld/testsuite/ld-elf/elf.exp 2017-08-19 04:46:32.214460537 +0000 -@@ -391,8 +391,6 @@ +@@ -392,8 +392,6 @@ } set array_tests { @@ -9,7 +9,7 @@ {"init array" "" "" {init.c} "init" "init.out"} {"fini array" "" "" -@@ -401,8 +399,6 @@ +@@ -402,8 +400,6 @@ {init-mixed.c} "init-mixed" "init-mixed.out" "-I."} } set array_tests_pie { @@ -18,7 +18,7 @@ {"PIE init array" "-pie" "" {init.c} "init" "init.out" "-fPIE"} {"PIE fini array" "-pie" "" -@@ -413,8 +409,6 @@ +@@ -414,8 +410,6 @@ {pr14525.c} "pr14525" "pr14525.out" "-fPIE"} } set array_tests_static { diff --git a/system/binutils/disable-relr-glibc-tests.patch b/system/binutils/disable-relr-glibc-tests.patch index afefe593a..1edf30acb 100644 --- a/system/binutils/disable-relr-glibc-tests.patch +++ b/system/binutils/disable-relr-glibc-tests.patch @@ -6,7 +6,7 @@ Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30917 --- binutils-2.41/ld/testsuite/ld-elf/dt-relr.exp.old 2023-07-02 18:00:00.000000000 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/dt-relr.exp 2023-09-22 20:28:27.455427142 -0500 -@@ -23,6 +23,10 @@ +@@ -27,6 +27,10 @@ return } diff --git a/system/binutils/disable-textrel-test.patch b/system/binutils/disable-textrel-test.patch deleted file mode 100644 index f01921996..000000000 --- a/system/binutils/disable-textrel-test.patch +++ /dev/null @@ -1,43 +0,0 @@ -musl doesn't support TEXTRELs, so the pr22001-1 test will always segfault. - -Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30925 - ---- binutils-2.41/ld/testsuite/ld-i386/i386.exp.old 2023-07-02 23:00:00.000000000 +0000 -+++ binutils-2.41/ld/testsuite/ld-i386/i386.exp 2023-09-30 12:34:46.594675721 +0000 -@@ -1318,6 +1318,20 @@ - ] \ - ] - -+ if { ![istarget i?86-*-musl] } { -+ run_ld_link_exec_tests [list \ -+ [list \ -+ "Run pr22001-1" \ -+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \ -+ "-Wa,-mx86-used-note=yes" \ -+ { pr22001-1b.c } \ -+ "pr22001-1" \ -+ "pass.out" \ -+ "$NOPIE_CFLAGS" \ -+ ] \ -+ ] -+ } -+ - run_ld_link_exec_tests [list \ - [list \ - "Run weakundef1 without PIE" \ -@@ -1328,15 +1342,6 @@ - "pass.out" \ - "$NOPIE_CFLAGS" \ - ] \ -- [list \ -- "Run pr22001-1" \ -- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \ -- "-Wa,-mx86-used-note=yes" \ -- { pr22001-1b.c } \ -- "pr22001-1" \ -- "pass.out" \ -- "$NOPIE_CFLAGS" \ -- ] \ - [list \ - "Run pr22001-1 (PIE 1)" \ - "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \ diff --git a/system/binutils/fix-pr28158-test.patch b/system/binutils/fix-pr28158-test.patch deleted file mode 100644 index 2fade9593..000000000 --- a/system/binutils/fix-pr28158-test.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream: https://sourceware.org/bugzilla/show_bug.cgi?id=30905 - -From 221e4f9b4ac4e6d4e362fdadf7f86a8b0df94d47 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> -Date: Tue, 26 Sep 2023 00:26:06 -0500 -Subject: [PATCH] elf: Adjust PR ld/28158 tests - -PR ld/28158 - * testsuite/ld-elf/pr28158.rd: ensure symbol indexes containing - the number 0 match in regex - -Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com> ---- - ld/testsuite/ld-elf/pr28158.rd | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ld/testsuite/ld-elf/pr28158.rd b/ld/testsuite/ld-elf/pr28158.rd -index b3cfe8915cb..c2cef7a0b39 100644 ---- a/ld/testsuite/ld-elf/pr28158.rd -+++ b/ld/testsuite/ld-elf/pr28158.rd -@@ -3,5 +3,5 @@ - #target: x86_64-*-linux* i?86-*-linux-gnu - - #... -- +[0-9]+: +[0-9a-f]+ +[0-9]+ +OBJECT +GLOBAL +DEFAULT +[1-9]+ foo@VERS_2.0 \([0-9]+\) -+ +[0-9]+: +[0-9a-f]+ +[0-9]+ +OBJECT +GLOBAL +DEFAULT +[0-9]+ foo@VERS_2.0 \([0-9]+\) - #pass --- -2.39.2 (Apple Git-143) - diff --git a/system/binutils/libctf-32bit-test.patch b/system/binutils/libctf-32bit-test.patch new file mode 100644 index 000000000..788c46259 --- /dev/null +++ b/system/binutils/libctf-32bit-test.patch @@ -0,0 +1,27 @@ +We need to use the proper format specifiers. + +Upstream-Status: Pending +Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=31882 + +--- binutils-2.41/libctf/testsuite/libctf-lookup/struct-iteration.c.old 2023-07-02 18:00:00.000000000 -0500 ++++ binutils-2.41/libctf/testsuite/libctf-lookup/struct-iteration.c 2024-06-11 16:22:32.976649333 -0500 +@@ -53,7 +53,7 @@ + { + char *type_name = ctf_type_aname (fp, membtype); + +- printf ("next test: %s, offset %lx, has type %lx/%s\n", ++ printf ("next test: %s, offset %zi, has type %lx/%s\n", + name, offset, membtype, type_name); + free (type_name); + } +--- binutils-2.41/libctf/testsuite/libctf-lookup/unnamed-field-info.c.old 2023-07-02 18:00:00.000000000 -0500 ++++ binutils-2.41/libctf/testsuite/libctf-lookup/unnamed-field-info.c 2024-06-11 16:23:19.191708550 -0500 +@@ -16,7 +16,7 @@ + goto err; + + if (mi.ctm_offset != offset * 8) +- fprintf (stderr, "field %s inconsistency: offsetof() says %zi bits, CTF says %zi\n", ++ fprintf (stderr, "field %s inconsistency: offsetof() says %zi bits, CTF says %li\n", + name, offset * 8, mi.ctm_offset); + + return; diff --git a/system/binutils/musl-preinit-array.patch b/system/binutils/musl-preinit-array.patch index 9932f3c7f..f06084658 100644 --- a/system/binutils/musl-preinit-array.patch +++ b/system/binutils/musl-preinit-array.patch @@ -2,7 +2,7 @@ musl libc currently does not run .preinit_array functions. --- binutils-2.41/ld/testsuite/ld-elf/elf.exp.old 2023-09-22 20:55:13.894385414 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/elf.exp 2023-09-22 21:31:13.354594152 -0500 -@@ -427,17 +427,21 @@ +@@ -428,17 +428,21 @@ run_ld_link_exec_tests $array_tests_pie $xfails if { $STATIC_PIE_LDFLAGS != "" } then { diff --git a/system/binutils/musl-versioned-syms.patch b/system/binutils/musl-versioned-syms.patch index 3812947c3..ce7c9fb7d 100644 --- a/system/binutils/musl-versioned-syms.patch +++ b/system/binutils/musl-versioned-syms.patch @@ -2,7 +2,7 @@ This test will not work on musl which does not support symbol versioning. --- binutils-2.41/ld/testsuite/ld-elfvers/vers.exp.old 2023-07-02 18:00:00.000000000 -0500 +++ binutils-2.41/ld/testsuite/ld-elfvers/vers.exp 2023-09-22 22:20:51.407688782 -0500 -@@ -888,8 +888,12 @@ +@@ -890,8 +890,12 @@ # Test that when we override a versioned symbol from the library this # symbol appears in the dynamic symbol table of the executable. # diff --git a/system/binutils/ppc32-pic-required.patch b/system/binutils/ppc32-pic-required.patch deleted file mode 100644 index c9395d945..000000000 --- a/system/binutils/ppc32-pic-required.patch +++ /dev/null @@ -1,23 +0,0 @@ -On the 32-bit PowerPC target, musl does not support shared libraries without -PIC, because secure-PLT is required. - -Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30918 - ---- binutils-2.41/ld/testsuite/ld-shared/shared.exp.old 2023-07-02 23:00:00.000000000 +0000 -+++ binutils-2.41/ld/testsuite/ld-shared/shared.exp 2023-09-24 08:44:39.404937347 +0000 -@@ -226,6 +226,7 @@ - setup_xfail "*-*-solaris2*" - setup_xfail "ia64-*-linux*" - setup_xfail "alpha*-*-linux*" -+ setup_xfail "powerpc-*-linux-musl" - setup_xfail "powerpc64*-*-*" - if { ![istarget hppa*64*-*-linux*] } { - setup_xfail "hppa*-*-linux*" -@@ -307,6 +308,7 @@ - setup_xfail "*-*-solaris2*" - setup_xfail "ia64-*-linux*" - setup_xfail "alpha*-*-linux*" -+ setup_xfail "powerpc-*-linux-musl" - setup_xfail "powerpc64*-*-*" - if { ![istarget hppa*64*-*-linux*] } { - setup_xfail "hppa*-*-linux*" diff --git a/system/binutils/ppc64-abiv2-addr2line.patch b/system/binutils/ppc64-abiv2-addr2line.patch deleted file mode 100644 index e3cb4d73d..000000000 --- a/system/binutils/ppc64-abiv2-addr2line.patch +++ /dev/null @@ -1,15 +0,0 @@ -musl libc uses the same ELFv2 ABI on both endians of PowerPC64. - -Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30916 - ---- binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp.old 2023-07-02 18:00:00.000000000 -0500 -+++ binutils-2.41/binutils/testsuite/binutils-all/addr2line.exp 2023-09-22 20:44:37.242158767 -0500 -@@ -20,7 +20,7 @@ - set exe [exeext] - - # powerpc64 function symbols are on descriptors rather than code. --if [istarget powerpc64-*-*] { -+if { [istarget powerpc64-*-*] && ![istarget powerpc64-*-musl] } { - set opts --synthetic - set dot {\.} - } diff --git a/system/binutils/remove-pr19719-test.patch b/system/binutils/remove-pr19719-test.patch index 09786fee6..24f44479b 100644 --- a/system/binutils/remove-pr19719-test.patch +++ b/system/binutils/remove-pr19719-test.patch @@ -1,7 +1,7 @@ We always use -fPIE (it's in our spec file), so it isn't possible to test this. --- binutils-2.30/ld/testsuite/ld-elf/shared.exp.old 2018-05-25 06:28:07.252414401 +0000 +++ binutils-2.30/ld/testsuite/ld-elf/shared.exp 2018-05-25 06:51:50.637028357 +0000 -@@ -1657,5 +1657,4 @@ +@@ -1593,5 +1593,4 @@ } } diff --git a/system/binutils/remove-pr2404-tests.patch b/system/binutils/remove-pr2404-tests.patch index 8dd7db65d..94ea63996 100644 --- a/system/binutils/remove-pr2404-tests.patch +++ b/system/binutils/remove-pr2404-tests.patch @@ -2,7 +2,7 @@ These tests fail to link correctly on musl. --- binutils-2.41/ld/testsuite/ld-elf/shared.exp.old 2023-09-22 20:47:52.781342124 -0500 +++ binutils-2.41/ld/testsuite/ld-elf/shared.exp 2023-09-22 20:54:03.151915244 -0500 -@@ -799,30 +799,6 @@ +@@ -800,30 +800,6 @@ run_cc_link_tests [list \ [list \ @@ -33,7 +33,7 @@ These tests fail to link correctly on musl. "Build libpr26590a.so" \ "-shared" \ "-fPIC" \ -@@ -1132,17 +1108,6 @@ +@@ -1133,17 +1107,6 @@ [list "Run relmain" \ "-Wl,--no-as-needed,-rpath=tmpdir -Ltmpdir -lrel" "" \ {relmain.c} "relmain" "relmain.out" ] \ @@ -51,7 +51,7 @@ These tests fail to link correctly on musl. [list "Run pr18458" \ "-Wl,--no-as-needed,-z,now tmpdir/libpr18458a.so tmpdir/libpr18458b.so" "" \ {pr18458c.c} "pr18458" "pass.out" ] \ -@@ -1341,14 +1306,6 @@ +@@ -1338,14 +1303,6 @@ || [istarget *-*-gnu*] } { run_cc_link_tests [list \ [list \ @@ -66,7 +66,7 @@ These tests fail to link correctly on musl. "Build pr19579a.o" \ "" "-fPIE -fcommon" \ {pr19579a.c} \ -@@ -1428,24 +1385,6 @@ +@@ -1425,24 +1382,6 @@ "-fPIE" \ ] \ [list \ diff --git a/system/binutils/skip-thumb-plt-musl.patch b/system/binutils/skip-thumb-plt-musl.patch deleted file mode 100644 index f88500de2..000000000 --- a/system/binutils/skip-thumb-plt-musl.patch +++ /dev/null @@ -1,28 +0,0 @@ -The file offsets are different causing this test to fail on hard-float EABI targets. - -Add musl target triplet alongside the glibc one. - -Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30923 - ---- binutils-2.41/ld/testsuite/ld-arm/thumb-plt.d.old 2023-07-02 23:00:00.000000000 +0000 -+++ binutils-2.41/ld/testsuite/ld-arm/thumb-plt.d 2023-09-30 11:03:51.611314942 +0000 -@@ -2,7 +2,7 @@ - #name: Thumb only PLT and GOT - #ld: -shared -e0 -z max-page-size=0x10000 - #objdump: -dr --#skip: *-*-pe *-*-wince *-*-vxworks armeb-*-* *-*-gnueabihf -+#skip: *-*-pe *-*-wince *-*-vxworks armeb-*-* *-*-gnueabihf *-*-musleabihf - - .*: +file format .*arm.* - ---- binutils-2.41/ld/testsuite/ld-arm/thumb-plt-got.d.old 2023-07-02 23:00:00.000000000 +0000 -+++ binutils-2.41/ld/testsuite/ld-arm/thumb-plt-got.d 2023-09-30 11:04:19.175314931 +0000 -@@ -2,7 +2,7 @@ - #name: Thumb only PLT and GOT LSB Symbol - #ld: -shared -e0 -z max-page-size=0x10000 - #readelf: -rx .got --#skip: *-*-pe *-*-wince *-*-vxworks armeb-*-* *-*-gnueabihf -+#skip: *-*-pe *-*-wince *-*-vxworks armeb-*-* *-*-gnueabihf *-*-musleabihf - - Relocation section '.rel.plt' at offset 0x108 contains 1 entry: - Offset Info Type Sym.Value Sym. Name diff --git a/system/binutils/vers-tests-eabi.patch b/system/binutils/vers-tests-eabi.patch deleted file mode 100644 index 2ce59cee2..000000000 --- a/system/binutils/vers-tests-eabi.patch +++ /dev/null @@ -1,33 +0,0 @@ -By default, the vers4 tests use `sed` to look for `Version` lines. - -The problem is, on 32-bit ARM targets we have Version5 EABI. This causes -the tests to fail, like so: - - objdump --private-headers tmpdir/vers4b | sed -n /Version/,\$p > tmpdir/objdump.out - private flags = 0x5000400: [Version5 EABI] [hard-float ABI] - - objdump_emptyverstuff: did not expect any output from objdump - FAIL: vers4b - -Take 'private flags' lines out of the output to fix this. - -Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30924 - ---- binutils-2.41/ld/testsuite/ld-elfvers/vers.exp.old 2023-09-30 21:51:47.304868575 -0500 -+++ binutils-2.41/ld/testsuite/ld-elfvers/vers.exp 2023-09-30 21:52:49.738253244 -0500 -@@ -215,11 +215,14 @@ - # this probably means that there is version information in libc, so we - # can't really perform this test. - return 1 -+ } else { if { [string match "*Version? EABI*" $exec_output] } then { -+# there is EABI Version information in the private flags of the binary. -+ return 1 - } else { - verbose -log "$exec_output" - verbose -log "objdump_emptyverstuff: did not expect any output from objdump" - return 0 -- } } -+ } } } - - } - diff --git a/system/binutils/x86_64-mark-plt.patch b/system/binutils/x86_64-mark-plt.patch new file mode 100644 index 000000000..29e1bd3bc --- /dev/null +++ b/system/binutils/x86_64-mark-plt.patch @@ -0,0 +1,37 @@ +From 6ef47613129c9251a5b8d5fa15ce6ea3ebe81ec1 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" <hjl.tools@gmail.com> +Date: Wed, 10 Jul 2024 15:19:23 -0700 +Subject: [PATCH] x86-64: Skip -z mark-plt tests on MUSL + +Skip -z mark-plt tests, which are specific to glibc, on MUSL. + + PR ld/31970 + * ld/testsuite/ld-x86-64/x86-64.exp: Skip -z mark-plt tests on + MUSL. + +Signed-off-by: H.J. Lu <hjl.tools@gmail.com> +--- + ld/testsuite/ld-x86-64/x86-64.exp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp +index dddac4375e1..57a1cc44e2c 100644 +--- a/ld/testsuite/ld-x86-64/x86-64.exp ++++ b/ld/testsuite/ld-x86-64/x86-64.exp +@@ -2274,6 +2274,13 @@ run_dump_test "ibt-plt-3a-x32" + run_dump_test "ibt-plt-3b-x32" + run_dump_test "ibt-plt-3c-x32" + run_dump_test "ibt-plt-3d-x32" ++ ++# Skip -z mark-plt tests on MUSL. ++if { [istarget "x86_64-*-musl*"]} { ++ set ASFLAGS "$saved_ASFLAGS" ++ return ++} ++ + run_dump_test "mark-plt-1a" + run_dump_test "mark-plt-1b" + run_dump_test "mark-plt-1c" +-- +2.45.2 + diff --git a/system/binutils/x86_64-missing-test.patch b/system/binutils/x86_64-missing-test.patch new file mode 100644 index 000000000..e6544c1a1 --- /dev/null +++ b/system/binutils/x86_64-missing-test.patch @@ -0,0 +1,91 @@ +From: Indu Bhagat <indu.bhagat@oracle.com> +Date: Tue, 30 Jan 2024 08:35:04 +0000 (-0800) +Subject: gas: scfi: add missing ginsn-cofi-1 testcase files +X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=48942a586ebc056bd059d3f63a5eed3a2fa46ab3;hp=7586594c484bbc2a1fb472b988c7e9cbc08c8416 + +gas: scfi: add missing ginsn-cofi-1 testcase files + +Previous commit a58dc5427f0 intended to bring the following two commits +from master branch: + + 91cdbed4d7b gas: scfi: untraceable control flow should be a hard error + 16cbeae1b27 x86: testsuite: scfi: adjust COFI testcase + +But missed adding the testcase files. Fix the failure by adding the +missing files. + +gas/testsuite/ + * gas/scfi/x86_64/ginsn-cofi-1.l: New test. + * gas/scfi/x86_64/ginsn-cofi-1.s: Likewise. +--- + +diff --git a/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l +new file mode 100644 +index 00000000000..ab6b50d47e8 +--- /dev/null ++++ b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l +@@ -0,0 +1,38 @@ ++.*: Assembler messages: ++.*:20: Error: untraceable control flow for func 'foo' ++GAS LISTING .* ++ ++ ++ 1 # Testcase with a variety of "change of flow instructions" ++ 2 # ++ 3 # This test does not have much going on wrt synthesis of CFI; ++ 4 # it just aims to ensure x8_64 -> ginsn decoding behaves ++ 5 # gracefully for these "change of flow instructions" ++ 6 .text ++ 7 .globl foo ++ 8 .type foo, @function ++ 8 ginsn: SYM FUNC_BEGIN ++ 9 foo: ++ 9 ginsn: SYM foo ++ 10 \?\?\?\? 4801D0 addq %rdx, %rax ++ 10 ginsn: ADD %r1, %r0, %r0 ++ 11 \?\?\?\? E200 loop foo ++ 11 ginsn: JCC ++ 12 \?\?\?\? 3EFFE0 notrack jmp \*%rax ++ 12 ginsn: JMP %r0, ++ 13 \?\?\?\? 41FFD0 call \*%r8 ++ 13 ginsn: CALL ++ 14 \?\?\?\? 67E305 jecxz .L179 ++ 14 ginsn: JCC ++ 15 \?\?\?\? FF6730 jmp \*48\(%rdi\) ++ 15 ginsn: JMP %r5, ++ 16 \?\?\?\? 7000 jo .L179 ++ 16 ginsn: JCC ++ 17 .L179: ++ 17 ginsn: SYM .L179 ++ 18 \?\?\?\? C3 ret ++ 18 ginsn: RET ++ 19 .LFE0: ++ 19 ginsn: SYM .LFE0 ++ 20 .size foo, .-foo ++ 20 ginsn: SYM FUNC_END +diff --git a/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s +new file mode 100644 +index 00000000000..0a63910e046 +--- /dev/null ++++ b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s +@@ -0,0 +1,20 @@ ++# Testcase with a variety of "change of flow instructions" ++# ++# This test does not have much going on wrt synthesis of CFI; ++# it just aims to ensure x8_64 -> ginsn decoding behaves ++# gracefully for these "change of flow instructions" ++ .text ++ .globl foo ++ .type foo, @function ++foo: ++ addq %rdx, %rax ++ loop foo ++ notrack jmp *%rax ++ call *%r8 ++ jecxz .L179 ++ jmp *48(%rdi) ++ jo .L179 ++.L179: ++ ret ++.LFE0: ++ .size foo, .-foo diff --git a/system/ca-certificates/APKBUILD b/system/ca-certificates/APKBUILD index a65728805..8a9d26863 100644 --- a/system/ca-certificates/APKBUILD +++ b/system/ca-certificates/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ca-certificates -pkgver=20220331 +pkgver=20230727 pkgrel=0 pkgdesc="CA root certificates" -url="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/" +url="https://wiki.mozilla.org/CA" arch="all" options="!fhs !check" license="MPL-2.0 AND GPL-2.0+" @@ -42,5 +42,5 @@ package() { install -D -m755 "$srcdir"/certhash "$pkgdir"/etc/ca-certificates/update.d/certhash } -sha512sums="cb4dba3d5fe955343a9cd8c150f3b1b8f012f2fd101bf0036fb3bf71fa4feffd82af7cc2cb6d8d0907d5bec5446f81e58dd52f9ac1aee8849f131dad5a2778d3 ca-certificates-20220331.tar.xz +sha512sums="b6e3cf4e9a2f5074a71fac368fa58afcbf8a6b23a0a788982a0c712054c91167b546c86470d8e193d8bd92c9b086d9793903ef48ffc0a9e4745aabdf9cede9f5 ca-certificates-20230727.tar.xz 1efe48235f150052da6b872d2ebff174359825ab3bd66086c9d7f4c18dcd8aa8953c634dbf1aa8416d30d5623babf589660a25cf6e3a4cdcce707c14cc2f348a certhash" diff --git a/system/curl/APKBUILD b/system/curl/APKBUILD index aedaa6e7b..e719f008a 100644 --- a/system/curl/APKBUILD +++ b/system/curl/APKBUILD @@ -3,19 +3,18 @@ # Contributor: Łukasz Jendrysik <scadu@yandex.com> # Maintainer: Zach van Rijn <me@zv.io> pkgname=curl -pkgver=8.3.0 -pkgrel=1 +pkgver=8.9.1 +pkgrel=0 pkgdesc="A URL retrival utility and library" url="https://curl.haxx.se" arch="all" license="MIT" depends="ca-certificates" makedepends_build="perl" -makedepends_host="libssh2-dev nghttp2-dev openssl-dev zlib-dev zstd-dev - autoconf automake libtool" +makedepends_host="libssh2-dev nghttp2-dev openssl-dev zlib-dev zstd-dev" makedepends="$makedepends_build $makedepends_host" source="https://curl.haxx.se/download/$pkgname-$pkgver.tar.xz - fix-fseek-type-mismatch.patch + errorcodes.pl " subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev libcurl" @@ -103,12 +102,10 @@ subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev libcurl" # - CVE-2014-0138 # - CVE-2014-0139 -# remove after the upstream release includes -# https://github.com/curl/curl/pull/11918 prepare() { default_prepare - autoreconf -vif + cp "$srcdir"/errorcodes.pl "$builddir"/tests/errorcodes.pl } build() { @@ -143,5 +140,5 @@ libcurl() { mv "$pkgdir"/usr/lib "$subpkgdir"/usr } -sha512sums="6404b4c74fe1185cb482631ca3a143996cb7298d0d8a76bfafd7696e7729c00559999a069bdba782dee3f3eb273fb678a4438cb27d3deca54022878cdff83a51 curl-8.3.0.tar.xz -c89178b8be2f48ba0a25072087d5430ec25293f3b5d5a7eef916656b356609624f679a143f90d28459cc6e669ad028526663934a22ea4c777e86ce154d6c5516 fix-fseek-type-mismatch.patch" +sha512sums="a0fe234402875db194aad4e4208b7e67e7ffc1562622eea90948d4b9b0122c95c3dde8bbe2f7445a687cb3de7cb09f20e5819d424570442d976aa4c913227fc7 curl-8.9.1.tar.xz +7848b1271e0bfe3be40221fb0582712d4af3ce1e1bdf16b5f0cac731d81bda145efc039f945a311af70caff279a44435a8ead6bb6e1db7570a4bd22df0a77fdb errorcodes.pl" diff --git a/system/curl/errorcodes.pl b/system/curl/errorcodes.pl new file mode 100644 index 000000000..9c8f9e882 --- /dev/null +++ b/system/curl/errorcodes.pl @@ -0,0 +1,99 @@ +#!/usr/bin/env perl +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at https://curl.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +# SPDX-License-Identifier: curl +# +########################################################################### + +# Check that libcurl-errors.3 and the public header files have the same set of +# error codes. + +use strict; +use warnings; + +# we may get the dir roots pointed out +my $root=$ARGV[0] || "."; +my $manpge = "$root/docs/libcurl/libcurl-errors.3"; +my $curlh = "$root/include/curl"; +my $errors=0; + +my @hnames; +my %wherefrom; +my @mnames; +my %manfrom; + +sub scanheader { + my ($file)=@_; + open H, "<$file"; + my $line = 0; + while(<H>) { + $line++; + if($_ =~ /^ (CURL(E|UE|SHE|HE|M)_[A-Z0-9_]*)/) { + my ($name)=($1); + if(($name !~ /OBSOLETE/) && ($name !~ /_LAST\z/)) { + push @hnames, $name; + if($wherefrom{$name}) { + print STDERR "double: $name\n"; + } + $wherefrom{$name}="$file:$line"; + } + } + } + close(H); +} + +sub scanmanpage { + my ($file)=@_; + open H, "<$file"; + my $line = 0; + while(<H>) { + $line++; + if($_ =~ /^\.IP \"(CURL(E|UE|SHE|HE|M)_[A-Z0-9_]*)/) { + my ($name)=($1); + push @mnames, $name; + $manfrom{$name}="$file:$line"; + } + } + close(H); +} + + +opendir(my $dh, $curlh) || die "Can't opendir $curlh: $!"; +my @hfiles = grep { /\.h$/ } readdir($dh); +closedir $dh; + +for(sort @hfiles) { + scanheader("$curlh/$_"); +} +scanmanpage($manpge); + +print "Result\n"; +for my $h (sort @hnames) { + if(!$manfrom{$h}) { + printf "$h from %s, not in man page\n", $wherefrom{$h}; + } +} + +for my $m (sort @mnames) { + if(!$wherefrom{$m}) { + printf "$m from %s, not in any header\n", $manfrom{$m}; + } +} diff --git a/system/curl/fix-fseek-type-mismatch.patch b/system/curl/fix-fseek-type-mismatch.patch deleted file mode 100644 index ec83efb41..000000000 --- a/system/curl/fix-fseek-type-mismatch.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 40ee445b3b05be4e215be8b5b0f87f7080ceaf26 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Mon, 25 Sep 2023 13:03:26 +0200 -Subject: [PATCH] configure: sort AC_CHECK_FUNCS - -No functional changes. ---- - configure.ac | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 2fc9f2f01783c..a6f9066a133a4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3583,8 +3583,10 @@ AC_CHECK_DECLS([getpwuid_r], [], [AC_DEFINE(HAVE_DECL_GETPWUID_R_MISSING, 1, "Se - #include <sys/types.h>]]) - - --AC_CHECK_FUNCS([fnmatch \ -+AC_CHECK_FUNCS([\ -+ arc4random \ - fchmod \ -+ fnmatch \ - fork \ - geteuid \ - getpass_r \ -@@ -3604,7 +3606,6 @@ AC_CHECK_FUNCS([fnmatch \ - snprintf \ - utime \ - utimes \ -- arc4random - ],[ - ],[ - func="$ac_func" -From 60d047b6b238427a7dda916bb00d0a48238e7a27 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Fri, 22 Sep 2023 13:58:49 +0000 -Subject: [PATCH] lib: use wrapper for curl_mime_data fseek callback - -fseek uses long offset which does not match with curl_off_t. This leads -to undefined behavior when calling the callback and caused failure on -arm 32 bit. - -Use a wrapper to solve this and use fseeko which uses off_t instead of -long. - -Thanks to the nice people at Libera IRC #musl for helping finding this -out. - -Closes #11882 -Closes #11900 ---- - CMakeLists.txt | 3 +++ - configure.ac | 2 ++ - lib/formdata.c | 17 +++++++++++++++-- - 3 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0b3aed90627b1..84774dc1db043 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1037,6 +1037,7 @@ check_include_file_concat("signal.h" HAVE_SIGNAL_H) - check_include_file_concat("stdatomic.h" HAVE_STDATOMIC_H) - check_include_file_concat("stdbool.h" HAVE_STDBOOL_H) - check_include_file_concat("stdint.h" HAVE_STDINT_H) -+check_include_file_concat("stdio.h" HAVE_STDIO_H) - check_include_file_concat("stdlib.h" HAVE_STDLIB_H) - check_include_file_concat("string.h" HAVE_STRING_H) - check_include_file_concat("strings.h" HAVE_STRINGS_H) -@@ -1122,6 +1123,8 @@ endif() - check_symbol_exists(freeaddrinfo "${CURL_INCLUDES}" HAVE_FREEADDRINFO) - check_symbol_exists(pipe "${CURL_INCLUDES}" HAVE_PIPE) - check_symbol_exists(ftruncate "${CURL_INCLUDES}" HAVE_FTRUNCATE) -+check_symbol_exists(fseeko "${CURL_INCLUDES}" HAVE_FSEEKO) -+check_symbol_exists(_fseeki64 "${CURL_INCLUDES}" HAVE__FSEEKI64) - check_symbol_exists(getpeername "${CURL_INCLUDES}" HAVE_GETPEERNAME) - check_symbol_exists(getsockname "${CURL_INCLUDES}" HAVE_GETSOCKNAME) - check_symbol_exists(if_nametoindex "${CURL_INCLUDES}" HAVE_IF_NAMETOINDEX) -diff --git a/configure.ac b/configure.ac -index a6f9066a133a4..5fa7c45c47430 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3584,10 +3584,12 @@ AC_CHECK_DECLS([getpwuid_r], [], [AC_DEFINE(HAVE_DECL_GETPWUID_R_MISSING, 1, "Se - - - AC_CHECK_FUNCS([\ -+ _fseeki64 \ - arc4random \ - fchmod \ - fnmatch \ - fork \ -+ fseeko \ - geteuid \ - getpass_r \ - getppid \ -diff --git a/lib/formdata.c b/lib/formdata.c -index 8984b63223cc0..f370ce6854b5f 100644 ---- a/lib/formdata.c -+++ b/lib/formdata.c -@@ -789,6 +789,20 @@ static CURLcode setname(curl_mimepart *part, const char *name, size_t len) - return res; - } - -+/* wrap call to fseeko so it matches the calling convetion of callback */ -+static int fseeko_wrapper(void *stream, curl_off_t offset, int whence) -+{ -+#if defined(HAVE_FSEEKO) -+ return fseeko(stream, (off_t)offset, whence); -+#elif defined(HAVE__FSEEKI64) -+ return _fseeki64(stream, (__int64)offset, whence); -+#else -+ if(offset > LONG_MAX) -+ return -1; -+ return fseek(stream, (long)offset, whence); -+#endif -+} -+ - /* - * Curl_getformdata() converts a linked list of "meta data" into a mime - * structure. The input list is in 'post', while the output is stored in -@@ -874,8 +888,7 @@ CURLcode Curl_getformdata(struct Curl_easy *data, - compatibility: use of "-" pseudo file name should be avoided. */ - result = curl_mime_data_cb(part, (curl_off_t) -1, - (curl_read_callback) fread, -- CURLX_FUNCTION_CAST(curl_seek_callback, -- fseek), -+ fseeko_wrapper, - NULL, (void *) stdin); - } - else diff --git a/system/db/APKBUILD b/system/db/APKBUILD index 587724143..1655d4556 100644 --- a/system/db/APKBUILD +++ b/system/db/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: pkgname=db pkgver=5.3.28 -pkgrel=2 +pkgrel=4 pkgdesc="The Berkeley DB embedded database system" url="https://www.oracle.com/technology/software/products/berkeley-db/index.html" arch="all" @@ -9,7 +9,8 @@ options="!check" # "check target not available" license="Sleepycat AND BSD-3-Clause" depends="" makedepends="" -subpackages="$pkgname-dev $pkgname-doc $pkgname-utils $pkgname-c++:cxx" +subpackages="$pkgname-dev $pkgname-doc $pkgname-utils $pkgname-c++:cxx + $pkgname-doc-pdf:pdf" source="https://download.oracle.com/berkeley-db/db-$pkgver.tar.gz atomics.patch time64.patch @@ -41,6 +42,11 @@ package() { mkdir -p "$pkgdir"/usr/share/doc mv "$pkgdir"/usr/docs "$pkgdir"/usr/share/doc/$pkgname + for _extraneous in api_reference/STL api_reference/TCL csharp java\ + gsg/JAVA gsg_db_rep/JAVA gsg_txn/JAVA installation; do + rm -r "$pkgdir"/usr/share/doc/$pkgname/$_extraneous + done + install -D -m644 "$builddir"/LICENSE \ "$pkgdir"/usr/share/licenses/$pkgname/LICENSE } @@ -58,6 +64,17 @@ cxx() { mv "$pkgdir"/usr/lib/libdb_cxx*.so "$subpkgdir"/usr/lib/ } +pdf() { + pkgdesc="$pkgdesc (PDF documentation)" + mkdir -p "$subpkgdir" + + cd "$subpkgdir"/../$pkgname-doc + for _pdf in $(find . -type f -name '*.pdf'); do + install -D -m644 "$_pdf" "$subpkgdir"/$_pdf + rm $_pdf + done +} + sha512sums="e91bbe550fc147a8be7e69ade86fdb7066453814971b2b0223f7d17712bd029a8eff5b2b6b238042ff6ec1ffa6879d44cb95c5645a922fee305c26c3eeaee090 db-5.3.28.tar.gz 8ba96cfc3e484a839b8651214f0769b35273c6235de7e53d5118eb0347f5a477f75e3336a12f1399b7748c6b6ab95aec39c8b813d7b227dd61f37ed4ab52f7d5 atomics.patch 5712bc36bd362820912bc899aff9738318b6f920e9fa71bef33c0d5c62dff7943827460b7b2194019738acfac2713954d01eab68c68ca02473f8d3f1a0950c48 time64.patch" diff --git a/system/easy-kernel/APKBUILD b/system/easy-kernel/APKBUILD index e328abef0..00f23330a 100644 --- a/system/easy-kernel/APKBUILD +++ b/system/easy-kernel/APKBUILD @@ -5,7 +5,7 @@ _kflavour="" _patchver=6 # must match 1000-version.patch _pkgname=easy-kernel$_kflavour pkgver=5.15.132 -pkgrel=0 +pkgrel=2 pkgname=$_pkgname-$pkgver-mc$_patchver pkgdesc="The Linux kernel, packaged for your convenience" url="https://kernel.org/" @@ -156,14 +156,14 @@ src() { } sha512sums="d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a linux-5.15.tar.xz -a83cf1c3747ada04836f10a1ec5d5afaccdcafb156d3380c39a021f70da59f19f2c747073e0e1ec5ec25b51d73446cf32a5621f35d3b749414b12bc8765fc43b config-aarch64 +d1d47dcf1c40df0e02422104961b73818de5635aa5e47c7ab332047aeee44a87f36fc2b1451079bfa787eb12cdebcb53806d17b6a010bc158db959642f151fb5 config-aarch64 8e216a2dafeafdf10ec0f3387b7ca13a3809ff83906573d77ab703c6970e6ac3666d863c54e67b70368f2a111d2e9f8d09d4ba9a684fca902f1193a8d3fc2ccc config-armv7 f42f9931a0a31bf65781ffd1acd44f28c2b3f4966808c2a07983f1ffccf96167a31280c4e6f0eed4ad91643d85bd267eed3dc0603d14d47b4eceacf04f2222df config-m68k -8ea6135c46d7d44217a0d615885cb7ff7adb738cf30e5b776c2c9c56934455b32a9374f4515bd5b0287ed514e3fb1bf9227954b7e8374716f2a923d6ea081165 config-pmmx -319a9e0c8c799066588aad0f94f4256207b30356b14c77c8ba5408e6ddbe12b332ab79dd5e0d38e9f99cc7bdd3d8c697f0b4852088c172ec7012fcf9361debe9 config-ppc -a60ddfc590d9a7a78c6b4d20900efce63bd8d7c6b91a56fdf91c10829ef120885f1f436813236db4158fc5da62fdbb0d4809ecbe3b328d8882c16bc90baab21e config-ppc64 +b440cbe7252aa55c2f80ad321d02371ecfdafc22e1e4f3fb72e1d398fb96fa90e2b811271b4d724d16696186000b8ee273b44f3446f763a89ed2c7e7f4b7703c config-pmmx +8f4b305cd8c81add318b88bb57c26d83dc1a6ed413dacc5b8c0bed7a11bc4149cba2a85085a96e8f61802dc210161f0cf87cee1826e64e4f224a7fd15fb3c326 config-ppc +9426c18b24889c18c051b3b88c68b958005e6c450047051fb25a8c0d2dd5ab5937e514b59da91a16ae9672e2ccc3b9ea62bd7d1fa0741732d52475f60fecbb9e config-ppc64 8401646537ff98382988b8e84b21d5ecf80b97587fd595c0dbb8848f7d0fe64fbaab4c8a949e12ef29a9b3d84be219d3eb3422848158c58f0797f2c4dfff352e config-sparc64 -85d0cc0303e84db7435e9b7c0214c00f67dbf30ea3d19941d19a7a0fb6653f3ce296d2a2a42d680fb4d00e4e7c8aa1e7b0f933ecfefc573e3c193c6d5428c761 config-x86_64 +a4661978273a65f181fb5583393b82be9b3412378e24a3bcf2c391165fad331ca63c78350555d2d0b3e61e48df49e820aaf3a36453f029fc8910da6c6c0c232b config-x86_64 1ca1bc094a8106b33176ab6cfb55c9514e7d69f1ed30c580eee419a3c422a2e6625d71c4581702e911f36c4bbac175010f46b7123bb81fda3303d4decdc57287 kernel.h a30efb8c4890d8be90c892cd73cf06e1701148888dcd729b1860b6bf519bca44690233197e6a8126fe51c522b9c0cb36030ff9dfe3ade7caf25d685e99333a7f 0100-linux-5.15.132.patch 3ed100909f9aed72836a3c712e45e0116cd3c4331961a76a27b867a7098d0df9458387b656c9ea01385c3c37585436e48168ac35666b0e46dca7da05e5e38a61 0120-XATTR_USER_PREFIX.patch diff --git a/system/easy-kernel/config-aarch64 b/system/easy-kernel/config-aarch64 index 439728ab4..fdbb2a124 100644 --- a/system/easy-kernel/config-aarch64 +++ b/system/easy-kernel/config-aarch64 @@ -7,9 +7,9 @@ CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80500 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23200 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23200 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -290,7 +290,6 @@ CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_BROKEN_GAS_INST=y # # Platform selection @@ -352,6 +351,7 @@ CONFIG_ARM64_ERRATUM_834220=y CONFIG_ARM64_ERRATUM_1742098=y CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_ERRATUM_1418040=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y @@ -439,6 +439,9 @@ CONFIG_CP15_BARRIER_EMULATION=y # CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_PAN=y +CONFIG_AS_HAS_LDAPR=y +CONFIG_AS_HAS_LSE_ATOMICS=y +CONFIG_ARM64_LSE_ATOMICS=y CONFIG_ARM64_USE_LSE_ATOMICS=y # end of ARMv8.1 architectural features @@ -454,20 +457,28 @@ CONFIG_ARM64_CNP=y # ARMv8.3 architectural features # # CONFIG_ARM64_PTR_AUTH is not set +CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y +CONFIG_AS_HAS_PAC=y +CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y # end of ARMv8.3 architectural features # # ARMv8.4 architectural features # CONFIG_ARM64_AMU_EXTN=y +CONFIG_AS_HAS_ARMV8_4=y +CONFIG_ARM64_TLB_RANGE=y # end of ARMv8.4 architectural features # # ARMv8.5 architectural features # +CONFIG_AS_HAS_ARMV8_5=y CONFIG_ARM64_BTI=y CONFIG_ARM64_E0PD=y CONFIG_ARCH_RANDOM=y +CONFIG_ARM64_AS_HAS_MTE=y +CONFIG_ARM64_MTE=y # end of ARMv8.5 architectural features # @@ -1010,6 +1021,7 @@ CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set # CONFIG_READ_ONLY_THP_FOR_FS is not set @@ -3645,7 +3657,7 @@ CONFIG_I2C_ALGOBIT=y # # ACPI drivers # -# CONFIG_I2C_SCMI is not set +CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) @@ -3698,7 +3710,7 @@ CONFIG_I2C_UNIPHIER_F=y # CONFIG_I2C_CROS_EC_TUNNEL=y # CONFIG_I2C_XGENE_SLIMPRO is not set -# CONFIG_I2C_VIRTIO is not set +CONFIG_I2C_VIRTIO=m # end of I2C Hardware Bus support # CONFIG_I2C_STUB is not set @@ -6650,57 +6662,60 @@ CONFIG_RTC_INTF_DEV=y # # I2C RTC drivers # -# CONFIG_RTC_DRV_ABB5ZES3 is not set -# CONFIG_RTC_DRV_ABEOZ9 is not set -# CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_HYM8563 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_ABB5ZES3=m +CONFIG_RTC_DRV_ABEOZ9=m +CONFIG_RTC_DRV_ABX80X=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1307_CENTURY=y +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1374_WDT=y +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_HYM8563=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_MAX77686=m CONFIG_RTC_DRV_RK808=m -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_ISL12026 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3028 is not set -# CONFIG_RTC_DRV_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -CONFIG_RTC_DRV_S5M=y -# CONFIG_RTC_DRV_SD3078 is not set +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_ISL12026=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF85063=m +CONFIG_RTC_DRV_PCF85363=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8010=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3028=m +CONFIG_RTC_DRV_RV3032=m +CONFIG_RTC_DRV_RV8803=m +CONFIG_RTC_DRV_S5M=m +CONFIG_RTC_DRV_SD3078=m # # SPI RTC drivers # -# CONFIG_RTC_DRV_M41T93 is not set -# CONFIG_RTC_DRV_M41T94 is not set -# CONFIG_RTC_DRV_DS1302 is not set -# CONFIG_RTC_DRV_DS1305 is not set -# CONFIG_RTC_DRV_DS1343 is not set -# CONFIG_RTC_DRV_DS1347 is not set -# CONFIG_RTC_DRV_DS1390 is not set -# CONFIG_RTC_DRV_MAX6916 is not set -# CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RX4581 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_PCF2123 is not set -# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1302=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1343=m +CONFIG_RTC_DRV_DS1347=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_MAX6916=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_MCP795=m CONFIG_RTC_I2C_AND_SPI=y # @@ -6708,60 +6723,66 @@ CONFIG_RTC_I2C_AND_SPI=y # CONFIG_RTC_DRV_DS3232=y CONFIG_RTC_DRV_DS3232_HWMON=y -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RX6110 is not set +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RV3029_HWMON=y +CONFIG_RTC_DRV_RX6110=m # # Platform RTC drivers # -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_EFI is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_BQ4802 is not set -# CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_V3020 is not set -# CONFIG_RTC_DRV_ZYNQMP is not set -# CONFIG_RTC_DRV_CROS_EC is not set +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1685_FAMILY=m +CONFIG_RTC_DRV_DS1685=y +# CONFIG_RTC_DRV_DS1689 is not set +# CONFIG_RTC_DRV_DS17285 is not set +# CONFIG_RTC_DRV_DS17485 is not set +# CONFIG_RTC_DRV_DS17885 is not set +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS2404=m +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_ZYNQMP=m +CONFIG_RTC_DRV_CROS_EC=m # # on-CPU RTC drivers # -# CONFIG_RTC_DRV_IMXDI is not set -CONFIG_RTC_DRV_FSL_FTM_ALARM=y +CONFIG_RTC_DRV_IMXDI=m +CONFIG_RTC_DRV_FSL_FTM_ALARM=m CONFIG_RTC_DRV_MESON_VRTC=m CONFIG_HAVE_S3C_RTC=y CONFIG_RTC_DRV_S3C=y -# CONFIG_RTC_DRV_PL030 is not set +CONFIG_RTC_DRV_PL030=m CONFIG_RTC_DRV_PL031=y CONFIG_RTC_DRV_SUN6I=y -# CONFIG_RTC_DRV_MV is not set -# CONFIG_RTC_DRV_ARMADA38X is not set -# CONFIG_RTC_DRV_CADENCE is not set -# CONFIG_RTC_DRV_FTRTC010 is not set -CONFIG_RTC_DRV_TEGRA=y -# CONFIG_RTC_DRV_MXC is not set -# CONFIG_RTC_DRV_MXC_V2 is not set -# CONFIG_RTC_DRV_SNVS is not set -# CONFIG_RTC_DRV_MT2712 is not set -# CONFIG_RTC_DRV_MT7622 is not set +CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_ARMADA38X=m +CONFIG_RTC_DRV_CADENCE=m +CONFIG_RTC_DRV_FTRTC010=m +CONFIG_RTC_DRV_TEGRA=m +CONFIG_RTC_DRV_MXC=m +CONFIG_RTC_DRV_MXC_V2=m +CONFIG_RTC_DRV_SNVS=m +CONFIG_RTC_DRV_MT2712=m +CONFIG_RTC_DRV_MT7622=m CONFIG_RTC_DRV_XGENE=y -# CONFIG_RTC_DRV_R7301 is not set +CONFIG_RTC_DRV_R7301=m CONFIG_RTC_DRV_RTD119X=y # # HID Sensor RTC drivers # -# CONFIG_RTC_DRV_GOLDFISH is not set +CONFIG_RTC_DRV_GOLDFISH=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -8983,6 +9004,7 @@ CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y +CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y diff --git a/system/easy-kernel/config-pmmx b/system/easy-kernel/config-pmmx index 803db2445..02b2961a6 100644 --- a/system/easy-kernel/config-pmmx +++ b/system/easy-kernel/config-pmmx @@ -7,9 +7,9 @@ CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80500 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23200 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23200 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y @@ -303,6 +303,7 @@ CONFIG_X86_32_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=2 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features @@ -505,8 +506,10 @@ CONFIG_HOTPLUG_CPU=y CONFIG_MODIFY_LDT_SYSCALL=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y CONFIG_SPECULATION_MITIGATIONS=y CONFIG_RETPOLINE=y +# CONFIG_RETHUNK is not set # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -712,6 +715,10 @@ CONFIG_KVM=y CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m # CONFIG_KVM_XEN is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y # # General architecture-dependent options @@ -775,6 +782,9 @@ CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y # CONFIG_SECCOMP_CACHE_DEBUG is not set CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y diff --git a/system/easy-kernel/config-ppc b/system/easy-kernel/config-ppc index da8c36e3b..fd17f343d 100644 --- a/system/easy-kernel/config-ppc +++ b/system/easy-kernel/config-ppc @@ -7,9 +7,9 @@ CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80500 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23200 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23200 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y @@ -277,7 +277,6 @@ CONFIG_TARGET_CPU="powerpc" CONFIG_PPC_BOOK3S=y CONFIG_PPC_FPU_REGS=y CONFIG_PPC_FPU=y -# CONFIG_FSL_EMB_PERFMON is not set CONFIG_ALTIVEC=y CONFIG_PPC_HAVE_KUEP=y CONFIG_PPC_KUEP=y @@ -289,7 +288,6 @@ CONFIG_PPC_HAVE_PMU_SUPPORT=y CONFIG_PPC_PERF_CTRS=y CONFIG_SMP=y CONFIG_NR_CPUS=4 -CONFIG_NOT_COHERENT_CACHE=y # end of Processor support CONFIG_VDSO32=y @@ -330,10 +328,7 @@ CONFIG_GE_FPGA=y # # CONFIG_SCOM_DEBUGFS is not set CONFIG_PPC_CHRP=y -CONFIG_PPC_MPC512x=y -CONFIG_MPC5121_ADS=y -CONFIG_MPC512x_GENERIC=y -CONFIG_PDM360NG=y +# CONFIG_PPC_MPC512x is not set CONFIG_PPC_MPC52xx=y CONFIG_PPC_MPC5200_SIMPLE=y CONFIG_PPC_EFIKA=y @@ -351,23 +346,7 @@ CONFIG_PQ2ADS=y CONFIG_8260=y CONFIG_8272=y CONFIG_PQ2_ADS_PCI_PIC=y -CONFIG_PPC_83xx=y -CONFIG_MPC830x_RDB=y -CONFIG_MPC831x_RDB=y -CONFIG_MPC832x_MDS=y -CONFIG_MPC832x_RDB=y -CONFIG_MPC834x_MDS=y -CONFIG_MPC834x_ITX=y -CONFIG_MPC836x_MDS=y -CONFIG_MPC836x_RDK=y -CONFIG_MPC837x_MDS=y -CONFIG_MPC837x_RDB=y -CONFIG_ASP834x=y -CONFIG_KMETER1=y -CONFIG_PPC_MPC831x=y -CONFIG_PPC_MPC832x=y -CONFIG_PPC_MPC834x=y -CONFIG_PPC_MPC837x=y +# CONFIG_PPC_83xx is not set CONFIG_PPC_86xx=y CONFIG_MPC8641_HPCN=y CONFIG_MPC8610_HPCD=y @@ -383,7 +362,6 @@ CONFIG_PPC_NATIVE=y CONFIG_PPC_OF_BOOT_TRAMPOLINE=y # CONFIG_UDBG_RTAS_CONSOLE is not set CONFIG_PPC_SMP_MUXED_IPI=y -CONFIG_IPIC=y CONFIG_MPIC=y # CONFIG_MPIC_TIMER is not set CONFIG_MPIC_MSGR=y @@ -450,7 +428,6 @@ CONFIG_CPM2=y CONFIG_FSL_ULI1575=y CONFIG_CPM=y CONFIG_GEN_RTC=y -CONFIG_MCU_MPC8349EMITX=y # end of Platform support # @@ -463,7 +440,6 @@ CONFIG_HZ_100=y # CONFIG_HZ_1000 is not set CONFIG_HZ=100 CONFIG_SCHED_HRTICK=y -# CONFIG_MATH_EMULATION is not set CONFIG_HOTPLUG_CPU=y # CONFIG_PPC_QUEUED_SPINLOCKS is not set CONFIG_ARCH_CPU_PROBE_RELEASE=y @@ -515,7 +491,6 @@ CONFIG_FSL_SOC=y CONFIG_FSL_PCI=y CONFIG_FSL_PMC=y CONFIG_FSL_LBC=y -CONFIG_FSL_GTM=y CONFIG_PCI_8260=y # end of Bus options @@ -1771,6 +1746,7 @@ CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_RESERVED_MEM=y # CONFIG_OF_OVERLAY is not set +CONFIG_OF_DMA_DEFAULT_COHERENT=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m @@ -3690,10 +3666,9 @@ CONFIG_VIDEO_V4L2_I2C=y CONFIG_VIDEO_TUNER=m CONFIG_V4L2_FWNODE=m CONFIG_V4L2_ASYNC=m -CONFIG_VIDEOBUF_GEN=y +CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DMA_CONTIG=y # end of Video4Linux options # @@ -3909,7 +3884,6 @@ CONFIG_V4L_PLATFORM_DRIVERS=y # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_VIDEO_CADENCE is not set # CONFIG_VIDEO_ASPEED is not set -CONFIG_VIDEO_VIU=y # CONFIG_VIDEO_MUX is not set # CONFIG_VIDEO_XILINX is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set @@ -4981,8 +4955,6 @@ CONFIG_USB_HID=y CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y -CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y # CONFIG_USB_LED_TRIG is not set @@ -5210,7 +5182,6 @@ CONFIG_MMC_SDHCI_CADENCE=m CONFIG_MMC_SDHCI_F_SDH30=m # CONFIG_MMC_SDHCI_MILBEAUT is not set # CONFIG_MMC_WBSD is not set -# CONFIG_MMC_MXC is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m @@ -6272,15 +6243,8 @@ CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_HAS_DMA_SET_MASK=y CONFIG_DMA_DECLARE_COHERENT=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y -CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y CONFIG_SWIOTLB=y # CONFIG_DMA_RESTRICTED_POOL is not set -CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_COHERENT_POOL=y -CONFIG_DMA_REMAP=y -CONFIG_DMA_DIRECT_REMAP=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_SGL_ALLOC=y diff --git a/system/easy-kernel/config-ppc64 b/system/easy-kernel/config-ppc64 index f6510c274..825946664 100644 --- a/system/easy-kernel/config-ppc64 +++ b/system/easy-kernel/config-ppc64 @@ -7,9 +7,9 @@ CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80500 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23200 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23200 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -1595,6 +1595,8 @@ CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_NET_SELFTESTS=m CONFIG_NET_SOCK_MSG=y +CONFIG_NET_DEVLINK=y +CONFIG_PAGE_POOL=y CONFIG_FAILOVER=m CONFIG_ETHTOOL_NETLINK=y @@ -1690,6 +1692,7 @@ CONFIG_HOTPLUG_PCI_RPA=m # # Generic Driver Options # +CONFIG_AUXILIARY_BUS=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y @@ -1717,6 +1720,7 @@ CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m +CONFIG_REGMAP_MMIO=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set # end of Generic Driver Options @@ -2071,6 +2075,7 @@ CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_ISCSI=m +# CONFIG_QEDI is not set CONFIG_SCSI_DC395x=m CONFIG_SCSI_AM53C974=m CONFIG_SCSI_WD719X=m @@ -2287,42 +2292,50 @@ CONFIG_VIRTIO_NET=m CONFIG_SUNGEM_PHY=m # CONFIG_ARCNET is not set CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y -# CONFIG_VORTEX is not set -# CONFIG_TYPHOON is not set +CONFIG_VORTEX=m +CONFIG_TYPHOON=m CONFIG_NET_VENDOR_ADAPTEC=y -# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_ADAPTEC_STARFIRE=m CONFIG_NET_VENDOR_AGERE=y -# CONFIG_ET131X is not set +CONFIG_ET131X=m CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set +CONFIG_SLICOSS=m CONFIG_NET_VENDOR_ALTEON=y CONFIG_ACENIC=m CONFIG_ACENIC_OMIT_TIGON_I=y -# CONFIG_ALTERA_TSE is not set +CONFIG_ALTERA_TSE=m CONFIG_NET_VENDOR_AMAZON=y CONFIG_NET_VENDOR_AMD=y -# CONFIG_AMD8111_ETH is not set -# CONFIG_PCNET32 is not set +CONFIG_AMD8111_ETH=m +CONFIG_PCNET32=m CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set +CONFIG_AQTION=m CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_ATL2 is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL1C is not set -# CONFIG_ALX is not set +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m CONFIG_NET_VENDOR_BROADCOM=y -# CONFIG_B44 is not set -# CONFIG_BCMGENET is not set -# CONFIG_BNX2 is not set -# CONFIG_CNIC is not set +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BCMGENET=m +CONFIG_BNX2=m +CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_TIGON3_HWMON=y -# CONFIG_BNX2X is not set -# CONFIG_SYSTEMPORT is not set -# CONFIG_BNXT is not set +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +CONFIG_SYSTEMPORT=m +CONFIG_BNXT=m +CONFIG_BNXT_SRIOV=y +CONFIG_BNXT_FLOWER_OFFLOAD=y +CONFIG_BNXT_HWMON=y CONFIG_NET_VENDOR_CADENCE=y CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set @@ -2333,160 +2346,224 @@ CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set CONFIG_NET_VENDOR_CHELSIO=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_INLINE_CRYPTO=y +CONFIG_CHELSIO_IPSEC_INLINE=m CONFIG_NET_VENDOR_CISCO=y -# CONFIG_ENIC is not set +CONFIG_ENIC=m CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_GEMINI_ETHERNET is not set +CONFIG_GEMINI_ETHERNET=m # CONFIG_DNET is not set CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y -# CONFIG_DE2104X is not set +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 CONFIG_TULIP=m # CONFIG_TULIP_MWI is not set # CONFIG_TULIP_MMIO is not set # CONFIG_TULIP_NAPI is not set -# CONFIG_DE4X5 is not set -# CONFIG_WINBOND_840 is not set -# CONFIG_DM9102 is not set -# CONFIG_ULI526X is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m CONFIG_NET_VENDOR_DLINK=y -# CONFIG_DL2K is not set -# CONFIG_SUNDANCE is not set +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_BE2NET is not set +CONFIG_BE2NET=m +CONFIG_BE2NET_HWMON=y +CONFIG_BE2NET_BE2=y +CONFIG_BE2NET_BE3=y +CONFIG_BE2NET_LANCER=y +CONFIG_BE2NET_SKYHAWK=y CONFIG_NET_VENDOR_EZCHIP=y -# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set +CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=m CONFIG_NET_VENDOR_GOOGLE=y CONFIG_NET_VENDOR_HUAWEI=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_IBM=y CONFIG_IBMVETH=m -# CONFIG_IBM_EMAC is not set -# CONFIG_EHEA is not set +CONFIG_IBM_EMAC=m +CONFIG_IBM_EMAC_RXB=128 +CONFIG_IBM_EMAC_TXB=64 +CONFIG_IBM_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 +# CONFIG_IBM_EMAC_DEBUG is not set +CONFIG_IBM_EMAC_ZMII=y +CONFIG_IBM_EMAC_RGMII=y +CONFIG_IBM_EMAC_TAH=y +CONFIG_IBM_EMAC_EMAC4=y +CONFIG_EHEA=m CONFIG_IBMVNIC=m CONFIG_NET_VENDOR_INTEL=y -# CONFIG_E100 is not set +CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m CONFIG_IGB_HWMON=y -# CONFIG_IGBVF is not set +CONFIG_IGBVF=m CONFIG_IXGB=m -# CONFIG_IXGBE is not set -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -# CONFIG_JME is not set +CONFIG_IXGBE=m +CONFIG_IXGBE_HWMON=y +CONFIG_IXGBE_IPSEC=y +CONFIG_IXGBEVF=m +CONFIG_IXGBEVF_IPSEC=y +CONFIG_I40E=m +CONFIG_IAVF=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_FM10K=m +CONFIG_IGC=m +CONFIG_JME=m CONFIG_NET_VENDOR_LITEX=y CONFIG_LITEX_LITEETH=m CONFIG_NET_VENDOR_MARVELL=y -# CONFIG_MVMDIO is not set -# CONFIG_SKGE is not set -# CONFIG_SKY2 is not set +CONFIG_MVMDIO=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +# CONFIG_SKGE_GENESIS is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_NET_VENDOR_MELLANOX=y -# CONFIG_MLX4_EN is not set -# CONFIG_MLX5_CORE is not set +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_CORE_GEN2=y +CONFIG_MLX5_CORE=m +CONFIG_MLX5_ACCEL=y +CONFIG_MLX5_FPGA=y +CONFIG_MLX5_CORE_EN=y +CONFIG_MLX5_EN_ARFS=y +CONFIG_MLX5_EN_RXNFC=y +CONFIG_MLX5_MPFS=y +# CONFIG_MLX5_CORE_IPOIB is not set +# CONFIG_MLX5_FPGA_IPSEC is not set +# CONFIG_MLX5_IPSEC is not set +# CONFIG_MLX5_SF is not set # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set CONFIG_NET_VENDOR_MICREL=y -# CONFIG_KS8851_MLL is not set -# CONFIG_KSZ884X_PCI is not set +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m CONFIG_NET_VENDOR_MICROCHIP=y -# CONFIG_LAN743X is not set +CONFIG_LAN743X=m CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_NET_VENDOR_MYRI=y -# CONFIG_MYRI10GE is not set -# CONFIG_FEALNX is not set +CONFIG_MYRI10GE=m +CONFIG_FEALNX=m CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set +CONFIG_NI_XGE_MANAGEMENT_ENET=m CONFIG_NET_VENDOR_NATSEMI=y -# CONFIG_NATSEMI is not set -# CONFIG_NS83820 is not set +CONFIG_NATSEMI=m +CONFIG_NS83820=m CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -# CONFIG_VXGE is not set +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set +CONFIG_NFP=m +# CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y -# CONFIG_NE2K_PCI is not set +CONFIG_NE2K_PCI=m CONFIG_NET_VENDOR_NVIDIA=y -# CONFIG_FORCEDETH is not set +CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y -# CONFIG_ETHOC is not set +CONFIG_ETHOC=m CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set +CONFIG_IONIC=m CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_QED is not set +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLCNIC_HWMON=y +CONFIG_NETXEN_NIC=m +CONFIG_QED=m +CONFIG_QED_SRIOV=y +CONFIG_QEDE=m CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set +CONFIG_BNA=m CONFIG_NET_VENDOR_QUALCOMM=y -# CONFIG_QCOM_EMAC is not set +CONFIG_QCOM_EMAC=m # CONFIG_RMNET is not set CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set +CONFIG_R6040=m CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_8139CP is not set -# CONFIG_8139TOO is not set -# CONFIG_R8169 is not set +CONFIG_8139CP=m +CONFIG_8139TOO=m +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y -# CONFIG_SXGBE_ETH is not set +CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y CONFIG_NET_VENDOR_SILAN=y -# CONFIG_SC92031 is not set +CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y -# CONFIG_SIS900 is not set -# CONFIG_SIS190 is not set +CONFIG_SIS900=m +CONFIG_SIS190=m CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y +CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_FALCON=m +CONFIG_SFC_FALCON_MTD=y CONFIG_NET_VENDOR_SMSC=y -# CONFIG_EPIC100 is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set +CONFIG_EPIC100=m +CONFIG_SMSC911X=m +CONFIG_SMSC9420=m CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y -# CONFIG_STMMAC_ETH is not set +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_STMMAC_PLATFORM=m +# CONFIG_DWMAC_DWC_QOS_ETH is not set +CONFIG_DWMAC_GENERIC=m CONFIG_NET_VENDOR_SUN=y -# CONFIG_HAPPYMEAL is not set +CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m -# CONFIG_CASSINI is not set -# CONFIG_NIU is not set +CONFIG_CASSINI=m +CONFIG_NIU=m CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set +CONFIG_DWC_XLGMAC=m +CONFIG_DWC_XLGMAC_PCI=m CONFIG_NET_VENDOR_TEHUTI=y -# CONFIG_TEHUTI is not set +CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TLAN is not set +CONFIG_TLAN=m CONFIG_NET_VENDOR_TOSHIBA=y -# CONFIG_GELIC_NET is not set -# CONFIG_SPIDER_NET is not set +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_SPIDER_NET=m CONFIG_NET_VENDOR_VIA=y -# CONFIG_VIA_RHINE is not set -# CONFIG_VIA_VELOCITY is not set +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=m CONFIG_XILINX_AXI_EMAC=m -# CONFIG_XILINX_LL_TEMAC is not set +CONFIG_XILINX_LL_TEMAC=m # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PHYLINK=m @@ -2505,7 +2582,7 @@ CONFIG_FIXED_PHY=m # CONFIG_AX88796B_PHY is not set # CONFIG_BROADCOM_PHY is not set CONFIG_BCM54140_PHY=m -# CONFIG_BCM7XXX_PHY is not set +CONFIG_BCM7XXX_PHY=m CONFIG_BCM84881_PHY=m # CONFIG_BCM87XX_PHY is not set CONFIG_BCM_NET_PHYLIB=m @@ -2521,7 +2598,7 @@ CONFIG_BCM_NET_PHYLIB=m CONFIG_MARVELL_88X2222_PHY=m CONFIG_MAXLINEAR_GPHY=m CONFIG_MEDIATEK_GE_PHY=m -# CONFIG_MICREL_PHY is not set +CONFIG_MICREL_PHY=m # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set @@ -2530,10 +2607,10 @@ CONFIG_MOTORCOMM_PHY=m CONFIG_NXP_C45_TJA11XX_PHY=m # CONFIG_NXP_TJA11XX_PHY is not set # CONFIG_QSEMI_PHY is not set -# CONFIG_REALTEK_PHY is not set +CONFIG_REALTEK_PHY=m # CONFIG_RENESAS_PHY is not set # CONFIG_ROCKCHIP_PHY is not set -# CONFIG_SMSC_PHY is not set +CONFIG_SMSC_PHY=m # CONFIG_STE10XP is not set # CONFIG_TERANETICS_PHY is not set # CONFIG_DP83822_PHY is not set @@ -2549,11 +2626,12 @@ CONFIG_FWNODE_MDIO=m CONFIG_OF_MDIO=m CONFIG_MDIO_DEVRES=m # CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BCM_UNIMAC is not set +CONFIG_MDIO_BCM_UNIMAC=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_IPQ8064 is not set # CONFIG_MDIO_THUNDER is not set # @@ -2565,7 +2643,7 @@ CONFIG_MDIO_MVUSB=m # # PCS device drivers # -# CONFIG_PCS_XPCS is not set +CONFIG_PCS_XPCS=m # end of PCS device drivers CONFIG_PPP=m @@ -2662,6 +2740,7 @@ CONFIG_WIL6210_DEBUGFS=y CONFIG_ATH10K=m CONFIG_ATH10K_CE=y CONFIG_ATH10K_PCI=m +# CONFIG_ATH10K_AHB is not set CONFIG_ATH10K_SDIO=m CONFIG_ATH10K_USB=m # CONFIG_ATH10K_DEBUG is not set @@ -3461,7 +3540,7 @@ CONFIG_BCMA_DRIVER_PCI=y # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_STMPE is not set -# CONFIG_MFD_SYSCON is not set +CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set @@ -4197,6 +4276,7 @@ CONFIG_DRM_PANEL=y # # Display Panels # +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set @@ -4951,6 +5031,7 @@ CONFIG_LEDS_CLASS=y # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_POWERNV is not set +# CONFIG_LEDS_SYSCON is not set # CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_TI_LMU_COMMON is not set @@ -5109,7 +5190,16 @@ CONFIG_SYNC_FILE=y # end of DMABUF options # CONFIG_AUXDISPLAY is not set -# CONFIG_UIO is not set +CONFIG_UIO=m +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +# CONFIG_UIO_AEC is not set +# CONFIG_UIO_SERCOS3 is not set +# CONFIG_UIO_PCI_GENERIC is not set +# CONFIG_UIO_NETX is not set +# CONFIG_UIO_PRUSS is not set +# CONFIG_UIO_MF624 is not set CONFIG_VFIO=m CONFIG_VFIO_IOMMU_SPAPR_TCE=m CONFIG_VFIO_SPAPR_EEH=m @@ -5262,7 +5352,8 @@ CONFIG_IRQCHIP=y # end of IRQ chip support # CONFIG_IPACK_BUS is not set -# CONFIG_RESET_CONTROLLER is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_TI_SYSCON is not set # # PHY Subsystem @@ -5276,6 +5367,7 @@ CONFIG_IRQCHIP=y # CONFIG_PHY_MIXEL_MIPI_DPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_OCELOT_SERDES is not set # end of PHY Subsystem # CONFIG_POWERCAP is not set @@ -5899,7 +5991,7 @@ CONFIG_CRC64=m # CONFIG_CRC4 is not set CONFIG_CRC7=m CONFIG_LIBCRC32C=y -# CONFIG_CRC8 is not set +CONFIG_CRC8=m CONFIG_XXHASH=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y @@ -5958,6 +6050,7 @@ CONFIG_NLATTR=y CONFIG_CLZ_TAB=y CONFIG_IRQ_POLL=y CONFIG_MPILIB=y +CONFIG_DIMLIB=y CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y @@ -5976,6 +6069,8 @@ CONFIG_ARCH_STACKWALK=y CONFIG_SBITMAP=y # end of Library routines +CONFIG_PLDMFW=y + # # Kernel hacking # diff --git a/system/easy-kernel/config-x86_64 b/system/easy-kernel/config-x86_64 index f3b185b5b..e297591bc 100644 --- a/system/easy-kernel/config-x86_64 +++ b/system/easy-kernel/config-x86_64 @@ -1,15 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.15.132-mc6 Kernel Configuration +# Linux/x86_64 5.15.132-mc6 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Adelie 8.5.0) 8.5.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=80500 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23200 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23200 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -318,6 +318,7 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features @@ -520,11 +521,15 @@ CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y CONFIG_SPECULATION_MITIGATIONS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y CONFIG_CPU_IBPB_ENTRY=y CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -716,6 +721,10 @@ CONFIG_KVM=y CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m # CONFIG_KVM_XEN is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y # # General architecture-dependent options @@ -779,6 +788,9 @@ CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y # CONFIG_SECCOMP_CACHE_DEBUG is not set CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y @@ -2600,7 +2612,8 @@ CONFIG_MII=m CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m -# CONFIG_WIREGUARD is not set +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set # CONFIG_EQUALIZER is not set # CONFIG_NET_FC is not set # CONFIG_IFB is not set @@ -7772,7 +7785,7 @@ CONFIG_CRYPTO_ECDH=m # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set -# CONFIG_CRYPTO_CURVE25519_X86 is not set +CONFIG_CRYPTO_CURVE25519_X86=m # # Authenticated Encryption with Associated Data @@ -7820,7 +7833,7 @@ CONFIG_CRYPTO_CRC32=m # CONFIG_CRYPTO_CRC32_PCLMUL is not set CONFIG_CRYPTO_XXHASH=y CONFIG_CRYPTO_BLAKE2B=y -# CONFIG_CRYPTO_BLAKE2S_X86 is not set +CONFIG_CRYPTO_BLAKE2S_X86=y CONFIG_CRYPTO_CRCT10DIF=y # CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set CONFIG_CRYPTO_GHASH=m @@ -7958,17 +7971,20 @@ CONFIG_ARCH_USE_SYM_ANNOTATIONS=y # CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m CONFIG_CRYPTO_LIB_DES=m CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m CONFIG_CRYPTO_LIB_SHA256=y # end of Crypto library routines diff --git a/system/execline/APKBUILD b/system/execline/APKBUILD index 9746c2a6b..d4d136a2e 100644 --- a/system/execline/APKBUILD +++ b/system/execline/APKBUILD @@ -1,16 +1,17 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=execline -pkgver=2.9.2.1 +pkgver=2.9.6.0 pkgrel=0 pkgdesc="A small scripting language for non-interactive scripts" -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/execline/" arch="all" options="!check" # No test suite. license="ISC" -_skalibs_version=2.13 -makedepends="skalibs-dev>=$_skalibs_version" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +_skalibs_version=2.14 +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev" +subpackages="$pkgname-libs $pkgname-dev $pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" build() { @@ -27,39 +28,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr" - mv "$pkgdir/usr/lib" "$pkgdir/usr/include" "$subpkgdir/usr/" -} - - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="6dbe37fd73ec0bba89e1fc539e27f34fdbcf6028a4053e762cd21036e1a131e0156022bf84467ecba3cdbb4dfba7ee30574283d31e7e228e175775e8e16c1000 execline-2.9.2.1.tar.gz" +sha512sums="1c5233b0f17b4c92ab2e9e8700b47c8429ad97962bcb7c83190d0b3251b26584e591d77418eca77e8112cdecd24eec50aaca7da1dbb506120931bbda39f2b7cb execline-2.9.6.0.tar.gz" diff --git a/system/file/APKBUILD b/system/file/APKBUILD index 39c1da51e..47e781590 100644 --- a/system/file/APKBUILD +++ b/system/file/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=file -pkgver=5.44 +pkgver=5.45 pkgrel=0 pkgdesc="File type identification utility" url="http://www.darwinsys.com/file/" @@ -41,4 +41,4 @@ libmagic() { mv "$pkgdir"/usr/lib "$pkgdir"/usr/share "$subpkgdir"/usr } -sha512sums="547429f30105a1c96604b67440cbd1c52f684d8ce6b26e2413dd54ede8aadb2ffb489b52e67bfab9ff5a48133f0aa0589873e58dc7c6c0a10a59571cf9850b95 file-5.44.tar.gz" +sha512sums="fdd4c5d13d5ea1d25686c76d8ebc3252c54040c4871e3f0f623c4548b3841795d4e36050292a9453eedf0fbf932573890e9d6ac9fa63ccf577215598ae84b9ea file-5.45.tar.gz" diff --git a/system/gcc/0008-s390x-muslldso.patch b/system/gcc/0008-s390x-muslldso.patch deleted file mode 100644 index 64833f308..000000000 --- a/system/gcc/0008-s390x-muslldso.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b693804c8dba92fea7beee98f0aa520853a0532b Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Thu, 22 Dec 2016 11:22:28 +0000 -Subject: [PATCH 08/12] s390x muslldso - ---- - gcc/config/s390/linux.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h -index 525c17c2c9f..2d4f4a0654e 100644 ---- a/gcc/config/s390/linux.h -+++ b/gcc/config/s390/linux.h -@@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" - #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" - -+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" -+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" -+ - #undef LINK_SPEC - #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ --- -2.17.1 - diff --git a/system/gcc/0009-microblaze-pr65649.patch b/system/gcc/0009-microblaze-pr65649.patch deleted file mode 100644 index 35bf88d69..000000000 --- a/system/gcc/0009-microblaze-pr65649.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a0934d40a8ed3b6e82abb31d2f8d7c60548d4a05 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Fri, 26 Jan 2018 20:25:11 +0000 -Subject: [PATCH 09/12] microblaze-pr65649 - ---- - gcc/config/microblaze/microblaze.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index 9a4a287be23..60aadaf51f7 100644 ---- a/gcc/config/microblaze/microblaze.c -+++ b/gcc/config/microblaze/microblaze.c -@@ -2399,7 +2399,7 @@ print_operand (FILE * file, rtx op, int letter) - unsigned long value_long; - REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), - value_long); -- fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); -+ fprintf (file, "0x%lx", value_long); - } - else - { -@@ -2458,7 +2458,7 @@ print_operand (FILE * file, rtx op, int letter) - print_operand_address (file, XEXP (op, 0)); - } - else if (letter == 'm') -- fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); -+ fprintf (file, "%ld", (1L << INTVAL (op))); - else - output_addr_const (file, op); - } --- -2.17.1 - diff --git a/system/gcc/0010-ldbl128-config.patch b/system/gcc/0010-ldbl128-config.patch deleted file mode 100644 index b5a101052..000000000 --- a/system/gcc/0010-ldbl128-config.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Wed, 28 Feb 2018 00:54:05 +0000 -Subject: [PATCH 10/12] ldbl128 config - ---- - gcc/configure | 13 +++++++++++++ - gcc/configure.ac | 16 ++++++++++++++-- - 2 files changed, 27 insertions(+), 2 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..07ff8597d48 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then : - withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128" - else - -+ case "$target" in -+ s390*-*-linux-musl*) -+ gcc_cv_target_ldbl128=yes -+ ;; -+ powerpc*-*-linux-musl*) -+ gcc_cv_target_ldbl128=no -+ ;; -+ *) -+ - if test $glibc_version_major -gt 2 \ - || ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then : - gcc_cv_target_ldbl128=yes -@@ -29320,6 +29329,10 @@ else - && gcc_cv_target_ldbl128=yes - - fi -+ -+ ;; -+ esac -+ - fi - - ;; -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..6c15ed898c0 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5971,13 +5971,25 @@ case "$target" in - AC_ARG_WITH(long-double-128, - [AS_HELP_STRING([--with-long-double-128], - [use 128-bit long double by default])], -- gcc_cv_target_ldbl128="$with_long_double_128", -+ gcc_cv_target_ldbl128="$with_long_double_128", [ -+ case "$target" in -+ s390*-*-linux-musl*) -+ gcc_cv_target_ldbl128=yes -+ ;; -+ powerpc*-*-linux-musl*) -+ gcc_cv_target_ldbl128=no -+ ;; -+ *)] - [GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [ - [gcc_cv_target_ldbl128=no - grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ - $target_header_dir/bits/wordsize.h > /dev/null 2>&1 \ - && gcc_cv_target_ldbl128=yes -- ]])]) -+ ]])] -+ [ -+ ;; -+ esac -+ ]) - ;; - esac - if test x$gcc_cv_target_ldbl128 = xyes; then --- -2.17.1 - diff --git a/system/gcc/0011-m68k.patch b/system/gcc/0011-m68k.patch deleted file mode 100644 index 74a5a98da..000000000 --- a/system/gcc/0011-m68k.patch +++ /dev/null @@ -1,40 +0,0 @@ -From cc44e95053140efe41212746882d410052b480a3 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sun, 1 Jul 2018 18:34:01 +0000 -Subject: [PATCH 11/12] m68k - ---- - gcc/config/m68k/linux.h | 3 +++ - libgcc/config/m68k/linux-unwind.h | 2 +- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h -index f584d19e179..a3c215550fe 100644 ---- a/gcc/config/m68k/linux.h -+++ b/gcc/config/m68k/linux.h -@@ -73,6 +73,9 @@ along with GCC; see the file COPYING3. If not see - - #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" - -+#undef MUSL_DYNAMIC_LINKER -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" -+ - #undef LINK_SPEC - #define LINK_SPEC "-m m68kelf %{shared} \ - %{!shared: \ -diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h -index 395e4b3212a..432b757541c 100644 ---- a/libgcc/config/m68k/linux-unwind.h -+++ b/libgcc/config/m68k/linux-unwind.h -@@ -37,7 +37,7 @@ struct uw_ucontext { - stack_t uc_stack; - mcontext_t uc_mcontext; - unsigned long uc_filler[80]; -- __sigset_t uc_sigmask; -+ sigset_t uc_sigmask; - }; - - #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state --- -2.17.1 - diff --git a/system/gcc/0012-static-pie.patch b/system/gcc/0012-static-pie.patch index 0600c791e..5c7a1b519 100644 --- a/system/gcc/0012-static-pie.patch +++ b/system/gcc/0012-static-pie.patch @@ -13,14 +13,14 @@ an alias to -static -pie. gcc/common.opt | 4 ++-- gcc/config/gnu-user.h | 12 +++++------- gcc/config/rs6000/sysv4.h | 11 +++++------ - gcc/gcc.c | 6 +++--- + gcc/gcc.cc | 6 +++--- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt index b52ef0b38c8..0ce5857e01d 100644 --- a/gcc/common.opt +++ b/gcc/common.opt -@@ -3197,11 +3197,11 @@ Driver +@@ -3669,11 +3669,11 @@ Driver no-pie Driver RejectNegative Negative(shared) @@ -38,7 +38,7 @@ diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h index 8620de3e42d..235328a2642 100644 --- a/gcc/config/gnu-user.h +++ b/gcc/config/gnu-user.h -@@ -52,13 +52,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +@@ -51,13 +51,12 @@ #define GNU_USER_TARGET_STARTFILE_SPEC \ "%{shared:; \ pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \ @@ -46,8 +46,8 @@ index 8620de3e42d..235328a2642 100644 - static-pie:rcrt1.o%s; \ + static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \ " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - crti.o%s \ + :crt1.o%s} " \ + GNU_USER_TARGET_CRTI " \ - %{static:crtbeginT.o%s; \ - shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \ + %{shared|" PIE_SPEC ":crtbeginS.o%s; \ @@ -55,7 +55,7 @@ index 8620de3e42d..235328a2642 100644 :crtbegin.o%s} \ %{fvtable-verify=none:%s; \ fvtable-verify=preinit:vtv_start_preinit.o%s; \ -@@ -92,8 +91,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +@@ -76,8 +75,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see "%{fvtable-verify=none:%s; \ fvtable-verify=preinit:vtv_end_preinit.o%s; \ fvtable-verify=std:vtv_end.o%s} \ @@ -63,9 +63,9 @@ index 8620de3e42d..235328a2642 100644 - shared|static-pie|" PIE_SPEC ":crtendS.o%s; \ + %{shared|" PIE_SPEC ":crtendS.o%s; \ :crtend.o%s} \ - crtn.o%s \ - " CRTOFFLOADEND -@@ -133,7 +131,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + GNU_USER_TARGET_CRTN " " \ + CRTOFFLOADEND +@@ -106,7 +104,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC #if defined(HAVE_LD_EH_FRAME_HDR) @@ -73,43 +73,12 @@ index 8620de3e42d..235328a2642 100644 +#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} " #endif - #undef LINK_GCC_C_SEQUENCE_SPEC -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h -index bb19d0dcd41..bb2a2324eb0 100644 ---- a/gcc/config/rs6000/sysv4.h -+++ b/gcc/config/rs6000/sysv4.h -@@ -763,12 +763,12 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) - #define STARTFILE_LINUX_SPEC \ - "%{shared:; \ - pg|p|profile:gcrt1.o%s; \ -- static:crt1.o%s; \ -- static-pie|" PIE_SPEC ":Scrt1.o%s; \ -+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \ -+ " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - %{mnewlib:ecrti.o%s;:crti.o%s} \ -- %{static:crtbeginT.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \ -+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \ -+ static:crtbeginT.o%s; \ - :crtbegin.o%s} \ - %{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_start_preinit.o%s; \ -@@ -781,8 +781,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) - "%{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_end_preinit.o%s; \ - fvtable-verify=std:vtv_end.o%s} \ -- %{static:crtend.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \ -+ %{shared|" PIE_SPEC ":crtendS.o%s; \ - :crtend.o%s} \ - %{mnewlib:ecrtn.o%s;:crtn.o%s} \ - " CRTOFFLOADEND -diff --git a/gcc/gcc.c b/gcc/gcc.c + #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \ +diff --git a/gcc/gcc.cc b/gcc/gcc.cc index eb1610ba8b0..87560afb03c 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -900,7 +900,7 @@ proper position among the other output files. */ +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -1003,7 +1003,7 @@ proper position among the other output files. */ #define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC #define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;" #else @@ -118,7 +87,7 @@ index eb1610ba8b0..87560afb03c 100644 #define FPIE1_SPEC "fpie" #define NO_FPIE1_SPEC FPIE1_SPEC ":;" #define FPIE2_SPEC "fPIE" -@@ -924,12 +924,12 @@ proper position among the other output files. */ +@@ -1027,12 +1027,12 @@ proper position among the other output files. */ #ifndef LINK_PIE_SPEC #ifdef HAVE_LD_PIE #ifndef LD_PIE_SPEC @@ -135,4 +104,3 @@ index eb1610ba8b0..87560afb03c 100644 #ifndef LINK_BUILDID_SPEC -- 2.17.1 - diff --git a/system/gcc/0016-invalid-tls-model.patch b/system/gcc/0016-invalid-tls-model.patch deleted file mode 100644 index d3b2b8ea0..000000000 --- a/system/gcc/0016-invalid-tls-model.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- gcc-7.3.0/libgomp/configure.tgt.orig 2018-09-25 13:44:16.654561098 -0400 -+++ gcc-7.3.0/libgomp/configure.tgt 2018-09-25 13:44:50.452688100 -0400 -@@ -10,23 +10,6 @@ - # XCFLAGS Add extra compile flags to use. - # XLDFLAGS Add extra link flags to use. - --# Optimize TLS usage by avoiding the overhead of dynamic allocation. --if test $gcc_cv_have_tls = yes ; then -- case "${target}" in -- -- *-*-k*bsd*-gnu*) -- ;; -- -- *-*-linux* | *-*-gnu*) -- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" -- ;; -- -- *-*-rtems*) -- XCFLAGS="${XCFLAGS} -ftls-model=local-exec" -- ;; -- esac --fi -- - # Since we require POSIX threads, assume a POSIX system by default. - config_path="posix" - ---- gcc-7.3.0/libitm/configure.tgt.orig 2018-09-25 13:47:31.019296903 -0400 -+++ gcc-7.3.0/libitm/configure.tgt 2018-09-25 13:47:37.676322335 -0400 -@@ -27,22 +27,6 @@ - # XCFLAGS Add extra compile flags to use. - # XLDFLAGS Add extra link flags to use. - --# Optimize TLS usage by avoiding the overhead of dynamic allocation. --if test "$gcc_cv_have_tls" = yes ; then -- case "${target}" in -- -- # For x86, we use slots in the TCB head for most of our TLS. -- # The setup of those slots in beginTransaction can afford to -- # use the global-dynamic model. -- i[456]86-*-linux* | x86_64-*-linux*) -- ;; -- -- *-*-linux*) -- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" -- ;; -- esac --fi -- - # Map the target cpu to an ARCH sub-directory. At the same time, - # work out any special compilation flags as necessary. - case "${target_cpu}" in diff --git a/system/gcc/002_all_default-relro.patch b/system/gcc/002_all_default-relro.patch index 284deef1a..6fbf7684d 100644 --- a/system/gcc/002_all_default-relro.patch +++ b/system/gcc/002_all_default-relro.patch @@ -19,11 +19,11 @@ Index: b/gcc/doc/invoke.texi @item -u @var{symbol} @opindex u Pretend the symbol @var{symbol} is undefined, to force linking of -Index: b/gcc/gcc.c +Index: b/gcc/gcc.cc =================================================================== ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -890,6 +890,7 @@ proper position among the other output f +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -1144,6 +1144,7 @@ proper position among the other output f "%{flto|flto=*:%<fcompare-debug*} \ %{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \ "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ diff --git a/system/gcc/005_all_default-as-needed.patch b/system/gcc/005_all_default-as-needed.patch index 00852197f..b02382c54 100644 --- a/system/gcc/005_all_default-as-needed.patch +++ b/system/gcc/005_all_default-as-needed.patch @@ -1,63 +1,77 @@ # DP: On linux targets pass --as-needed by default to the linker, but always # DP: link the sanitizer libraries with --no-as-needed. -Index: b/gcc/gcc.c +Index: b/gcc/gcc.cc =================================================================== ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -692,8 +692,11 @@ proper position among the other output f +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -754,8 +754,11 @@ proper position among the other output f #ifdef LIBASAN_EARLY_SPEC #define LIBASAN_SPEC STATIC_LIBASAN_LIBS #elif defined(HAVE_LD_STATIC_DYNAMIC) -#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ - "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ +#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libasan:--push-state --no-as-needed}" \ + " -lasan " \ + " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libasan:--pop-state}" \ STATIC_LIBASAN_LIBS #else #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS -@@ -710,8 +713,11 @@ proper position among the other output f +@@ -772,8 +775,11 @@ + #ifdef LIBHWASAN_EARLY_SPEC + #define LIBHWASAN_SPEC STATIC_LIBHWASAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBHWASAN_SPEC "%{static-libhwasan:" LD_STATIC_OPTION \ +- "} -lhwasan %{static-libhwasan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBHWASAN_SPEC "%{static-libhwasan:" LD_STATIC_OPTION \ ++ " %{!static-libhwasan:--push-state --no-as-needed}" \ ++ " -lhwasan " \ ++ " %{static-libhwasan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libhwasan:--pop-state}" \ + STATIC_LIBHWASAN_LIBS + #else + #define LIBHWASAN_SPEC "-lhwasan" STATIC_LIBHWASAN_LIBS +@@ -790,8 +797,11 @@ proper position among the other output f #ifdef LIBTSAN_EARLY_SPEC #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS #elif defined(HAVE_LD_STATIC_DYNAMIC) -#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ - "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ +#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libtsan:--push-state --no-as-needed}" \ + " -ltsan " \ + " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libtsan:--pop-state}" \ STATIC_LIBTSAN_LIBS #else #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS -@@ -728,8 +734,11 @@ proper position among the other output f +@@ -808,8 +817,11 @@ proper position among the other output f #ifdef LIBLSAN_EARLY_SPEC #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS #elif defined(HAVE_LD_STATIC_DYNAMIC) -#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \ - "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ +#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-liblsan:--push-state --no-as-needed}" \ + " -llsan " \ + " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-liblsan:--pop-state}" \ STATIC_LIBLSAN_LIBS #else #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS -@@ -744,8 +753,11 @@ proper position among the other output f +@@ -824,8 +833,11 @@ proper position among the other output f #define STATIC_LIBUBSAN_LIBS \ " %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}" #ifdef HAVE_LD_STATIC_DYNAMIC -#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \ - "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ +#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libubsan:--push-state --no-as-needed}" \ + " -lubsan " \ + " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libubsan:--pop-state}" \ STATIC_LIBUBSAN_LIBS #else #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS @@ -65,24 +79,30 @@ Index: b/gcc/config/gnu-user.h =================================================================== --- a/gcc/config/gnu-user.h +++ b/gcc/config/gnu-user.h -@@ -161,15 +161,15 @@ see the files COPYING3 and COPYING.RUNTI +@@ -135,20 +135,20 @@ see the files COPYING3 and COPYING.RUNTI #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ "%{static-libasan:%{!shared:" \ LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ - LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}" -+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}" ++ LD_DYNAMIC_OPTION "}}%{!static-libasan:--push-state --no-as-needed -lasan --pop-state}" + #undef LIBHWASAN_EARLY_SPEC + #define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \ + "%{static-libhwasan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -lhwasan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libhwasan:-lhwasan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libhwasan:--push-state --no-as-needed -lhwasan --pop-state}" #undef LIBTSAN_EARLY_SPEC #define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \ "%{static-libtsan:%{!shared:" \ LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \ - LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}" -+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}" ++ LD_DYNAMIC_OPTION "}}%{!static-libtsan:--push-state --no-as-needed -ltsan --pop-state}" #undef LIBLSAN_EARLY_SPEC #define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \ "%{static-liblsan:%{!shared:" \ LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \ - LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}" -+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}" ++ LD_DYNAMIC_OPTION "}}%{!static-liblsan:--push-state --no-as-needed -llsan --pop-state}" #endif Index: b/gcc/config/aarch64/aarch64-linux.h =================================================================== @@ -113,7 +133,7 @@ Index: b/gcc/config/sparc/linux.h =================================================================== --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h -@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu +@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" #undef LINK_SPEC @@ -126,7 +146,7 @@ Index: b/gcc/config/s390/linux.h =================================================================== --- a/gcc/config/s390/linux.h +++ b/gcc/config/s390/linux.h -@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3. +@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. #undef LINK_SPEC #define LINK_SPEC \ @@ -139,7 +159,7 @@ Index: b/gcc/config/rs6000/linux64.h =================================================================== --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h -@@ -490,13 +490,13 @@ extern int dot_symbols; +@@ -377,13 +377,13 @@ extern int dot_symbols; " -m elf64ppc") #endif @@ -159,7 +179,7 @@ Index: b/gcc/config/rs6000/sysv4.h =================================================================== --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h -@@ -811,7 +811,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF +@@ -780,7 +780,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ MUSL_DYNAMIC_LINKER) @@ -184,7 +204,7 @@ Index: b/gcc/config/i386/gnu-user.h =================================================================== --- a/gcc/config/i386/gnu-user.h +++ b/gcc/config/i386/gnu-user.h -@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. +@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. { "link_emulation", GNU_USER_LINK_EMULATION },\ { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } diff --git a/system/gcc/006_as-needed-gold.patch b/system/gcc/006_as-needed-gold.patch deleted file mode 100644 index 3dc0aee7a..000000000 --- a/system/gcc/006_as-needed-gold.patch +++ /dev/null @@ -1,58 +0,0 @@ -# DP: Use --push-state/--pop-state for gold as well when linking libtsan. - -Index: src/gcc/gcc.c -=================================================================== ---- src/gcc/gcc.c -+++ src/gcc/gcc.c -@@ -686,10 +686,10 @@ proper position among the other output f - #define LIBASAN_SPEC STATIC_LIBASAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) - #define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ -- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " %{!static-libasan:--push-state --no-as-needed}" \ - " -lasan " \ - " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ -- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ -+ " %{!static-libasan:--pop-state}" \ - STATIC_LIBASAN_LIBS - #else - #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS -@@ -707,10 +707,10 @@ proper position among the other output f - #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) - #define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ -- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " %{!static-libtsan:--push-state --no-as-needed}" \ - " -ltsan " \ - " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ -- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ -+ " %{!static-libtsan:--pop-state}" \ - STATIC_LIBTSAN_LIBS - #else - #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS -@@ -728,10 +728,10 @@ proper position among the other output f - #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) - #define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ -- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " %{!static-liblsan:--push-state --no-as-needed}" \ - " -llsan " \ - " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ -- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ -+ " %{!static-liblsan:--pop-state}" \ - STATIC_LIBLSAN_LIBS - #else - #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS -@@ -747,10 +747,10 @@ proper position among the other output f - " %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}" - #ifdef HAVE_LD_STATIC_DYNAMIC - #define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ -- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " %{!static-libubsan:--push-state --no-as-needed}" \ - " -lubsan " \ - " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ -- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ -+ " %{!static-libubsan:--pop-state}" \ - STATIC_LIBUBSAN_LIBS - #else - #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS diff --git a/system/gcc/007_all_alpha-mieee-default.patch b/system/gcc/007_all_alpha-mieee-default.patch new file mode 100644 index 000000000..560c2cc45 --- /dev/null +++ b/system/gcc/007_all_alpha-mieee-default.patch @@ -0,0 +1,48 @@ +Since we have interest in an eventual Alpha port, it seems good to add this +patch to our patchset now. The original patch comes from Gentoo, and like +them, we would like to see packages behave consistently across our various +architectures. + +Original Gentoo patch content follows. + +-- + +Set the default behavior on alpha to use -mieee since the large majority of +time we want this (bad/weird things can happen with packages built without +it). + +To satisfy those people who may not want -mieee forced on them all the time, +we also provide -mno-ieee. + +Patch by Mike Frysinger <vapier@gentoo.org> + +Note: upstream doesn't want to take this due to long standing behavior, and +because it'd make behavior across OS's inconsistent: + https://gcc.gnu.org/ml/gcc-patches/2003-07/msg02144.html + +This makes sense for upstream, but Gentoo is more concerned about packages +behaving the same across arches under Linux. + +--- a/gcc/config/alpha/alpha.h ++++ b/gcc/config/alpha/alpha.h +@@ -94,6 +94,8 @@ along with GCC; see the file COPYING3. If not see + while (0) + #endif + ++#define CPP_SPEC "%{!no-ieee:-mieee}" ++ + /* Run-time compilation parameters selecting different hardware subsets. */ + + /* Which processor to schedule for. The cpu attribute defines a list that +--- a/gcc/config/alpha/alpha.opt ++++ b/gcc/config/alpha/alpha.opt +@@ -35,7 +35,7 @@ + Request IEEE-conformant math library routines (OSF/1). + + mieee +-Target RejectNegative Mask(IEEE) ++Target Mask(IEEE) + Emit IEEE-conformant code, without inexact exceptions. + + mieee-with-inexact + diff --git a/system/gcc/011_all_default-warn-format-security.patch b/system/gcc/011_all_default-warn-format-security.patch index 1f400d026..6b62fdecf 100644 --- a/system/gcc/011_all_default-warn-format-security.patch +++ b/system/gcc/011_all_default-warn-format-security.patch @@ -1,10 +1,9 @@ Enable -Wformat and -Wformat-security by default. - --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt -@@ -459,7 +459,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ O - Warn about format strings that are not literals. +@@ -704,7 +704,7 @@ Warn about function calls with format strings that write past the end + of the destination region. Same as -Wformat-overflow=1. Wformat-security -C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) @@ -12,7 +11,7 @@ Enable -Wformat and -Wformat-security by default. Warn about possible security problems with format functions. Wformat-signedness -@@ -475,7 +475,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ +@@ -725,7 +725,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ Warn about zero-length formats. Wformat= @@ -20,4 +19,4 @@ Enable -Wformat and -Wformat-security by default. +C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2) Warn about printf/scanf/strftime/strfmon format string anomalies. - Wignored-qualifiers + Wformat-overflow= diff --git a/system/gcc/012_all_default-warn-trampolines.patch b/system/gcc/012_all_default-warn-trampolines.patch index 89ebfaccd..0bb1bd6d8 100644 --- a/system/gcc/012_all_default-warn-trampolines.patch +++ b/system/gcc/012_all_default-warn-trampolines.patch @@ -3,7 +3,7 @@ Enable -Wtrampolines by default. --- a/gcc/common.opt +++ b/gcc/common.opt -@@ -648,7 +648,7 @@ Common Var(warn_system_headers) Warning +@@ -799,7 +799,7 @@ Common Var(warn_system_headers) Warning Do not suppress warnings from system headers Wtrampolines @@ -14,7 +14,7 @@ Enable -Wtrampolines by default. Wtype-limits --- a/gcc/doc/gcc.info +++ b/gcc/doc/gcc.info -@@ -4021,6 +4021,8 @@ compiler warns that an unrecognized option is present. +@@ -7744,6 +7744,8 @@ compiler warns that an unrecognized option is present. and thus requires the stack to be made executable in order for the program to work properly. diff --git a/system/gcc/020_all_msgfmt-libstdc++-link.patch b/system/gcc/020_all_msgfmt-libstdc++-link.patch index a70ea50a0..753b70302 100644 --- a/system/gcc/020_all_msgfmt-libstdc++-link.patch +++ b/system/gcc/020_all_msgfmt-libstdc++-link.patch @@ -19,7 +19,7 @@ https://bugs.gentoo.org/295480 --- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.am +++ gcc-4.1.2/libstdc++-v3/po/Makefile.am -@@ -39,6 +39,7 @@ MSGFMT = msgfmt +@@ -38,6 +38,7 @@ MSGFMT = msgfmt EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN) .po.mo: @@ -29,7 +29,7 @@ https://bugs.gentoo.org/295480 all-local: all-local-$(USE_NLS) --- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.in +++ gcc-4.1.2/libstdc++-v3/po/Makefile.in -@@ -419,6 +419,7 @@ uninstall-am: uninstall-info-am +@@ -561,6 +561,7 @@ uninstall-am: uninstall-info-am .po.mo: diff --git a/system/gcc/050_all_sanitizer-lfs.patch b/system/gcc/050_all_sanitizer-lfs.patch new file mode 100644 index 000000000..65baea289 --- /dev/null +++ b/system/gcc/050_all_sanitizer-lfs.patch @@ -0,0 +1,197 @@ +https://bugs.gentoo.org/900871 +https://reviews.llvm.org/D141186 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109533 +https://github.com/llvm/llvm-project/commit/a5519b99bc73d50f362d6fb306411e9fcb758b53 +--- a/libsanitizer/interception/interception_type_test.cpp ++++ b/libsanitizer/interception/interception_type_test.cpp +@@ -24,9 +24,9 @@ COMPILER_CHECK(sizeof(::SSIZE_T) == sizeof(ssize_t)); + COMPILER_CHECK(sizeof(::PTRDIFF_T) == sizeof(ptrdiff_t)); + COMPILER_CHECK(sizeof(::INTMAX_T) == sizeof(intmax_t)); + +-#if !SANITIZER_APPLE ++# if SANITIZER_GLIBC || SANITIZER_ANDROID + COMPILER_CHECK(sizeof(::OFF64_T) == sizeof(off64_t)); +-#endif ++# endif + + // The following are the cases when pread (and friends) is used instead of + // pread64. In those cases we need OFF_T to match off_t. We don't care about the +--- a/libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_syscalls.inc +@@ -910,24 +910,26 @@ POST_SYSCALL(statfs)(long res, const void *path, void *buf) { + } + } + +-PRE_SYSCALL(statfs64)(const void *path, long sz, void *buf) { +- if (path) +- PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); +-} ++PRE_SYSCALL(fstatfs)(long fd, void *buf) {} + +-POST_SYSCALL(statfs64)(long res, const void *path, long sz, void *buf) { ++POST_SYSCALL(fstatfs)(long res, long fd, void *buf) { + if (res >= 0) { + if (buf) +- POST_WRITE(buf, struct_statfs64_sz); ++ POST_WRITE(buf, struct_statfs_sz); + } + } ++# endif // !SANITIZER_ANDROID + +-PRE_SYSCALL(fstatfs)(long fd, void *buf) {} ++# if SANITIZER_GLIBC ++PRE_SYSCALL(statfs64)(const void *path, long sz, void *buf) { ++ if (path) ++ PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); ++} + +-POST_SYSCALL(fstatfs)(long res, long fd, void *buf) { ++POST_SYSCALL(statfs64)(long res, const void *path, long sz, void *buf) { + if (res >= 0) { + if (buf) +- POST_WRITE(buf, struct_statfs_sz); ++ POST_WRITE(buf, struct_statfs64_sz); + } + } + +@@ -939,7 +941,7 @@ POST_SYSCALL(fstatfs64)(long res, long fd, long sz, void *buf) { + POST_WRITE(buf, struct_statfs64_sz); + } + } +-# endif // !SANITIZER_ANDROID ++# endif // SANITIZER_GLIBC + + PRE_SYSCALL(lstat)(const void *filename, void *statbuf) { + if (filename) +@@ -998,7 +1000,7 @@ POST_SYSCALL(newfstat)(long res, long fd, void *statbuf) { + } + } + +-# if !SANITIZER_ANDROID ++# if SANITIZER_GLIBC + PRE_SYSCALL(ustat)(long dev, void *ubuf) {} + + POST_SYSCALL(ustat)(long res, long dev, void *ubuf) { +@@ -1007,7 +1009,7 @@ POST_SYSCALL(ustat)(long res, long dev, void *ubuf) { + POST_WRITE(ubuf, struct_ustat_sz); + } + } +-# endif // !SANITIZER_ANDROID ++# endif // SANITIZER_GLIBC + + PRE_SYSCALL(stat64)(const void *filename, void *statbuf) { + if (filename) +@@ -2228,7 +2230,7 @@ POST_SYSCALL(setrlimit)(long res, long resource, void *rlim) { + } + } + +-# if !SANITIZER_ANDROID ++# if SANITIZER_GLIBC + PRE_SYSCALL(prlimit64) + (long pid, long resource, const void *new_rlim, void *old_rlim) { + if (new_rlim) +--- a/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h +@@ -269,7 +269,7 @@ + #define SANITIZER_INTERCEPT_INET_ATON SI_POSIX + #define SANITIZER_INTERCEPT_SYSINFO SI_LINUX + #define SANITIZER_INTERCEPT_READDIR SI_POSIX +-#define SANITIZER_INTERCEPT_READDIR64 SI_LINUX_NOT_ANDROID || SI_SOLARIS32 ++#define SANITIZER_INTERCEPT_READDIR64 SI_GLIBC || SI_SOLARIS32 + #if SI_LINUX_NOT_ANDROID && \ + (defined(__i386) || defined(__x86_64) || defined(__mips64) || \ + defined(__powerpc64__) || defined(__aarch64__) || defined(__arm__) || \ +@@ -308,7 +308,7 @@ + #define SANITIZER_INTERCEPT_XPG_STRERROR_R SI_LINUX_NOT_ANDROID + #define SANITIZER_INTERCEPT_SCANDIR \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_SOLARIS) +-#define SANITIZER_INTERCEPT_SCANDIR64 SI_LINUX_NOT_ANDROID || SI_SOLARIS32 ++#define SANITIZER_INTERCEPT_SCANDIR64 SI_GLIBC || SI_SOLARIS32 + #define SANITIZER_INTERCEPT_GETGROUPS SI_POSIX + #define SANITIZER_INTERCEPT_POLL SI_POSIX + #define SANITIZER_INTERCEPT_PPOLL SI_LINUX_NOT_ANDROID || SI_SOLARIS +@@ -330,10 +330,10 @@ + #define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID + #define SANITIZER_INTERCEPT_STATFS \ + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS) +-#define SANITIZER_INTERCEPT_STATFS64 SI_LINUX_NOT_ANDROID && SANITIZER_HAS_STATFS64 ++#define SANITIZER_INTERCEPT_STATFS64 SI_GLIBC && SANITIZER_HAS_STATFS64 + #define SANITIZER_INTERCEPT_STATVFS \ + (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID) +-#define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID ++#define SANITIZER_INTERCEPT_STATVFS64 SI_GLIBC + #define SANITIZER_INTERCEPT_INITGROUPS SI_POSIX + #define SANITIZER_INTERCEPT_ETHER_NTOA_ATON SI_POSIX + #define SANITIZER_INTERCEPT_ETHER_HOST \ +@@ -471,9 +471,9 @@ + #define SANITIZER_INTERCEPT_LSTAT (SI_NETBSD || SI_FREEBSD || SI_STAT_LINUX) + #define SANITIZER_INTERCEPT___XSTAT \ + ((!SANITIZER_INTERCEPT_STAT && SI_POSIX) || SI_STAT_LINUX) +-#define SANITIZER_INTERCEPT___XSTAT64 SI_LINUX_NOT_ANDROID ++#define SANITIZER_INTERCEPT___XSTAT64 SI_GLIBC + #define SANITIZER_INTERCEPT___LXSTAT SANITIZER_INTERCEPT___XSTAT +-#define SANITIZER_INTERCEPT___LXSTAT64 SI_LINUX_NOT_ANDROID ++#define SANITIZER_INTERCEPT___LXSTAT64 SI_GLIBC + + #define SANITIZER_INTERCEPT_UTMP \ + (SI_POSIX && !SI_MAC && !SI_FREEBSD && !SI_NETBSD) +@@ -484,7 +484,7 @@ + (SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD || SI_NETBSD) + + #define SANITIZER_INTERCEPT_MMAP SI_POSIX +-#define SANITIZER_INTERCEPT_MMAP64 SI_LINUX_NOT_ANDROID || SI_SOLARIS ++#define SANITIZER_INTERCEPT_MMAP64 SI_GLIBC || SI_SOLARIS + #define SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO (SI_GLIBC || SI_ANDROID) + #define SANITIZER_INTERCEPT_MEMALIGN (!SI_FREEBSD && !SI_MAC && !SI_NETBSD) + #define SANITIZER_INTERCEPT___LIBC_MEMALIGN SI_GLIBC +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -260,7 +260,7 @@ namespace __sanitizer { + unsigned struct_itimerspec_sz = sizeof(struct itimerspec); + #endif // SANITIZER_LINUX + +-#if SANITIZER_LINUX && !SANITIZER_ANDROID ++#if SANITIZER_GLIBC + // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which + // has been removed from glibc 2.28. + #if defined(__aarch64__) || defined(__s390x__) || defined(__mips64) || \ +@@ -281,7 +281,7 @@ namespace __sanitizer { + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); +-#endif // SANITIZER_LINUX && !SANITIZER_ANDROID ++#endif // SANITIZER_GLIBC + + #if SANITIZER_INTERCEPT_CRYPT_R + unsigned struct_crypt_data_sz = sizeof(struct crypt_data); +@@ -1089,7 +1089,7 @@ CHECK_SIZE_AND_OFFSET(dirent, d_off); + #endif + CHECK_SIZE_AND_OFFSET(dirent, d_reclen); + +-#if SANITIZER_LINUX && !SANITIZER_ANDROID ++#if SANITIZER_GLIBC + COMPILER_CHECK(sizeof(__sanitizer_dirent64) <= sizeof(dirent64)); + CHECK_SIZE_AND_OFFSET(dirent64, d_ino); + CHECK_SIZE_AND_OFFSET(dirent64, d_off); +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -28,8 +28,7 @@ + #define SANITIZER_HAS_STAT64 0 + #define SANITIZER_HAS_STATFS64 0 + #endif +-#else +-// Must be SANITIZER_LINUX then ++#elif SANITIZER_GLIBC || SANITIZER_ANDROID + #define SANITIZER_HAS_STAT64 1 + #define SANITIZER_HAS_STATFS64 1 + #endif +@@ -517,7 +516,7 @@ struct __sanitizer_dirent { + }; + # endif + +-# if SANITIZER_LINUX && !SANITIZER_ANDROID ++# if SANITIZER_GLIBC + struct __sanitizer_dirent64 { + unsigned long long d_ino; + unsigned long long d_off; + diff --git a/system/gcc/051_all_libiberty-pic.patch b/system/gcc/051_all_libiberty-pic.patch index b6160a730..3f0bae16b 100644 --- a/system/gcc/051_all_libiberty-pic.patch +++ b/system/gcc/051_all_libiberty-pic.patch @@ -1,6 +1,6 @@ --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in -@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) +@@ -265,6 +265,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(AR) $(AR_FLAGS) $(TARGETLIB) \ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ $(RANLIB) $(TARGETLIB); \ diff --git a/system/gcc/076_all_match.pd-don-t-emit-label-if-not-needed.patch b/system/gcc/076_all_match.pd-don-t-emit-label-if-not-needed.patch new file mode 100644 index 000000000..95da940fe --- /dev/null +++ b/system/gcc/076_all_match.pd-don-t-emit-label-if-not-needed.patch @@ -0,0 +1,114 @@ +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 + +From 6178fddd3e0957fbb8bcfc443fef172691b7640b Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Fri, 5 May 2023 13:35:17 +0100 +Subject: [PATCH 01/15] match.pd: don't emit label if not needed + +This is a small QoL codegen improvement for match.pd to not emit labels when +they are not needed. The codegen is nice and there is a small (but consistent) +improvement in compile time. + +gcc/ChangeLog: + + PR bootstrap/84402 + * genmatch.cc (dt_simplify::gen_1): Only emit labels if used. + +(cherry picked from commit 580cda3c2799b1f8323af770e52f1eb0fa204718) +--- + gcc/genmatch.cc | 30 ++++++++++++++++++++++-------- + 1 file changed, 22 insertions(+), 8 deletions(-) + +diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc +index c1023d921fca..9ecd0a462b4f 100644 +--- a/gcc/genmatch.cc ++++ b/gcc/genmatch.cc +@@ -3354,6 +3354,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + char local_fail_label[256]; + snprintf (local_fail_label, 256, "next_after_fail%u", ++fail_label_cnt); + fail_label = local_fail_label; ++ bool needs_label = false; + + /* Analyze captures and perform early-outs on the incoming arguments + that cover cases we cannot handle. */ +@@ -3368,6 +3369,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + fprintf_indent (f, indent, + "if (TREE_SIDE_EFFECTS (_p%d)) goto %s;\n", + i, fail_label); ++ needs_label = true; + if (verbose >= 1) + warning_at (as_a <expr *> (s->match)->ops[i]->location, + "forcing toplevel operand to have no " +@@ -3383,6 +3385,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + fprintf_indent (f, indent, + "if (TREE_SIDE_EFFECTS (captures[%d])) " + "goto %s;\n", i, fail_label); ++ needs_label = true; + if (verbose >= 1) + warning_at (cinfo.info[i].c->location, + "forcing captured operand to have no " +@@ -3425,7 +3428,10 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + } + + if (s->kind == simplify::SIMPLIFY) +- fprintf_indent (f, indent, "if (UNLIKELY (!dbg_cnt (match))) goto %s;\n", fail_label); ++ { ++ fprintf_indent (f, indent, "if (UNLIKELY (!dbg_cnt (match))) goto %s;\n", fail_label); ++ needs_label = true; ++ } + + fprintf_indent (f, indent, "if (UNLIKELY (dump_file && (dump_flags & TDF_FOLDING))) " + "fprintf (dump_file, \"%s ", +@@ -3498,9 +3504,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + "res_op->resimplify (%s, valueize);\n", + !e->force_leaf ? "lseq" : "NULL"); + if (e->force_leaf) +- fprintf_indent (f, indent, +- "if (!maybe_push_res_to_seq (res_op, NULL)) " +- "goto %s;\n", fail_label); ++ { ++ fprintf_indent (f, indent, ++ "if (!maybe_push_res_to_seq (res_op, NULL)) " ++ "goto %s;\n", fail_label); ++ needs_label = true; ++ } + } + } + else if (result->type == operand::OP_CAPTURE +@@ -3556,9 +3565,12 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + continue; + if (cinfo.info[i].result_use_count + > cinfo.info[i].match_use_count) +- fprintf_indent (f, indent, +- "if (! tree_invariant_p (captures[%d])) " +- "goto %s;\n", i, fail_label); ++ { ++ fprintf_indent (f, indent, ++ "if (! tree_invariant_p (captures[%d])) " ++ "goto %s;\n", i, fail_label); ++ needs_label = true; ++ } + } + for (unsigned j = 0; j < e->ops.length (); ++j) + { +@@ -3609,6 +3621,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + { + fprintf_indent (f, indent, "if (!_r)\n"); + fprintf_indent (f, indent, " goto %s;\n", fail_label); ++ needs_label = true; + } + } + } +@@ -3649,7 +3662,8 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + } + indent -= 2; + fprintf_indent (f, indent, "}\n"); +- fprintf (f, "%s:;\n", fail_label); ++ if (needs_label) ++ fprintf (f, "%s:;\n", fail_label); + fail_label = NULL; + } + +-- +2.44.0 + diff --git a/system/gcc/078_all_match.pd-CSE-the-dump-output-check.patch b/system/gcc/078_all_match.pd-CSE-the-dump-output-check.patch new file mode 100644 index 000000000..e084c4c77 --- /dev/null +++ b/system/gcc/078_all_match.pd-CSE-the-dump-output-check.patch @@ -0,0 +1,70 @@ +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 + +From 2d83fafb3f263544be09bf7dbde036e4a84f6d7c Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Fri, 5 May 2023 13:36:43 +0100 +Subject: [PATCH 03/15] match.pd: CSE the dump output check. + +This is a small improvement in QoL codegen for match.pd to save time not +re-evaluating the condition for printing debug information in every function. + +There is a small but consistent runtime and compile time win here. The runtime +win comes from not having to do the condition over again, and on Arm plaforms +we now use the new test-and-branch support for booleans to only have a single +instruction here. + +gcc/ChangeLog: + + PR bootstrap/84402 + * genmatch.cc (decision_tree::gen, write_predicate): Generate new + debug_dump var. + (dt_simplify::gen_1): Use it. + +(cherry picked from commit c0ce29bc1ce329001b6c02bb3d34bcbb086e1b72) +--- + gcc/genmatch.cc | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc +index 45e49c790b6d..a17ef8a23ed5 100644 +--- a/gcc/genmatch.cc ++++ b/gcc/genmatch.cc +@@ -3433,7 +3433,7 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result) + needs_label = true; + } + +- fprintf_indent (f, indent, "if (UNLIKELY (dump_file && (dump_flags & TDF_FOLDING))) " ++ fprintf_indent (f, indent, "if (UNLIKELY (debug_dump)) " + "fprintf (dump_file, \"%s ", + s->kind == simplify::SIMPLIFY + ? "Applying pattern" : "Matching expression"); +@@ -3894,6 +3894,8 @@ decision_tree::gen (FILE *f, bool gimple) + } + + fprintf (f, ")\n{\n"); ++ fprintf_indent (f, 2, "const bool debug_dump = " ++ "dump_file && (dump_flags & TDF_FOLDING);\n"); + s->s->gen_1 (f, 2, gimple, s->s->s->result); + if (gimple) + fprintf (f, " return false;\n"); +@@ -3939,6 +3941,8 @@ decision_tree::gen (FILE *f, bool gimple) + fprintf (f, ", tree _p%d", i); + fprintf (f, ")\n"); + fprintf (f, "{\n"); ++ fprintf_indent (f, 2, "const bool debug_dump = " ++ "dump_file && (dump_flags & TDF_FOLDING);\n"); + dop->gen_kids (f, 2, gimple, 0); + if (gimple) + fprintf (f, " return false;\n"); +@@ -4048,6 +4052,8 @@ write_predicate (FILE *f, predicate_id *p, decision_tree &dt, bool gimple) + gimple ? ", tree (*valueize)(tree) ATTRIBUTE_UNUSED" : ""); + /* Conveniently make 'type' available. */ + fprintf_indent (f, 2, "const tree type = TREE_TYPE (t);\n"); ++ fprintf_indent (f, 2, "const bool debug_dump = " ++ "dump_file && (dump_flags & TDF_FOLDING);\n"); + + if (!gimple) + fprintf_indent (f, 2, "if (TREE_SIDE_EFFECTS (t)) return false;\n"); +-- +2.44.0 + diff --git a/system/gcc/092_all_riscv_PR109760-gstreamer.patch b/system/gcc/092_all_riscv_PR109760-gstreamer.patch new file mode 100644 index 000000000..976f68915 --- /dev/null +++ b/system/gcc/092_all_riscv_PR109760-gstreamer.patch @@ -0,0 +1,337 @@ +https://bugs.gentoo.org/928234 +https://gcc.gnu.org/PR109760 +https://gcc.gnu.org/PR110095 +https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=55914b016de8c8514c58eb59822677a69e44135c + +From 55914b016de8c8514c58eb59822677a69e44135c Mon Sep 17 00:00:00 2001 +From: Die Li <lidie@eswincomputing.com> +Date: Fri, 19 May 2023 23:00:13 -0600 +Subject: [PATCH] Fix riscv_expand_conditional_move. + +Two issues have been observed in current riscv_expand_conditional_move +implementation. +1. Before introduction of TARGET_XTHEADCONDMOV, op0 of comparision expression +is used for mode comparision with word_mode, but after TARGET_XTHEADCONDMOV +megered with TARGET_SFB_ALU, dest of if-then-else is used for mode comparision with +word_mode, and from md file mode of dest is DI or SI which can be different with +word_mode in RV64. + +2. TARGET_XTHEADCONDMOV cannot be generated when the mode of the comparison is E_VOID. + +This patch solves the issues above. + +Provide an example from the newly added test case. + +Testcase: +int ConNmv_reg_reg_reg(int x, int y, int z, int n){ + if (x != y) return z; + return n; +} + +Cflags: +-O2 -march=rv64gc_xtheadcondmov -mabi=lp64d + +before patch: +ConNmv_reg_reg_reg: + bne a0,a1,.L23 + mv a2,a3 +.L23: + mv a0,a2 + ret + +after patch: +ConNmv_reg_reg_reg: + sub a1,a0,a1 + th.mveqz a2,zero,a1 + th.mvnez a3,zero,a1 + or a0,a2,a3 + ret + +Co-Authored by: Fei Gao <gaofei@eswincomputing.com> +Signed-off-by: Die Li <lidie@eswincomputing.com> + +gcc/ChangeLog: + + * config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode + checking. + +gcc/testsuite/ChangeLog: + + * gcc.target/riscv/xtheadcondmov-indirect-rv32.c: New test. + * gcc.target/riscv/xtheadcondmov-indirect-rv64.c: New test. +--- + gcc/config/riscv/riscv.cc | 4 +- + .../riscv/xtheadcondmov-indirect-rv32.c | 116 ++++++++++++++++++ + .../riscv/xtheadcondmov-indirect-rv64.c | 116 ++++++++++++++++++ + 3 files changed, 234 insertions(+), 2 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv32.c + create mode 100644 gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv64.c + +diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc +index 2a7b43849e5..7bb38978261 100644 +--- a/gcc/config/riscv/riscv.cc ++++ b/gcc/config/riscv/riscv.cc +@@ -3406,7 +3406,7 @@ riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt) + && GET_MODE_CLASS (mode) == MODE_INT + && reg_or_0_operand (cons, mode) + && reg_or_0_operand (alt, mode) +- && GET_MODE (op) == mode ++ && (GET_MODE (op) == mode || GET_MODE (op) == E_VOIDmode) + && GET_MODE (op0) == mode + && GET_MODE (op1) == mode + && (code == EQ || code == NE)) +@@ -3415,7 +3415,7 @@ riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt) + return true; + } + else if (TARGET_SFB_ALU +- && mode == word_mode) ++ && GET_MODE (op0) == word_mode) + { + riscv_emit_int_compare (&code, &op0, &op1); + rtx cond = gen_rtx_fmt_ee (code, GET_MODE (op0), op0, op1); +diff --git a/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv32.c b/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv32.c +new file mode 100644 +index 00000000000..9afdc2eabfd +--- /dev/null ++++ b/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv32.c +@@ -0,0 +1,116 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -march=rv32gc_xtheadcondmov -mabi=ilp32 -mriscv-attribute" } */ ++/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" } } */ ++/* { dg-final { check-function-bodies "**" "" } } */ ++ ++/* ++**ConEmv_imm_imm_reg: ++** addi a5,a0,-1000 ++** li a0,10 ++** th.mvnez a0,zero,a5 ++** th.mveqz a1,zero,a5 ++** or a0,a0,a1 ++** ret ++*/ ++int ConEmv_imm_imm_reg(int x, int y){ ++ if (x == 1000) return 10; ++ return y; ++} ++ ++/* ++**ConEmv_imm_reg_reg: ++** addi a5,a0,-1000 ++** th.mvnez a1,zero,a5 ++** th.mveqz a2,zero,a5 ++** or a0,a1,a2 ++** ret ++*/ ++int ConEmv_imm_reg_reg(int x, int y, int z){ ++ if (x == 1000) return y; ++ return z; ++} ++ ++/* ++**ConEmv_reg_imm_reg: ++** sub a1,a0,a1 ++** li a0,10 ++** th.mvnez a0,zero,a1 ++** th.mveqz a2,zero,a1 ++** or a0,a0,a2 ++** ret ++*/ ++int ConEmv_reg_imm_reg(int x, int y, int z){ ++ if (x == y) return 10; ++ return z; ++} ++ ++/* ++**ConEmv_reg_reg_reg: ++** sub a1,a0,a1 ++** th.mvnez a2,zero,a1 ++** th.mveqz a3,zero,a1 ++** or a0,a2,a3 ++** ret ++*/ ++int ConEmv_reg_reg_reg(int x, int y, int z, int n){ ++ if (x == y) return z; ++ return n; ++} ++ ++/* ++**ConNmv_imm_imm_reg: ++** li a5,9998336 ++** addi a4,a0,-1000 ++** addi a5,a5,1664 ++** th.mvnez a1,zero,a4 ++** th.mveqz a5,zero,a4 ++** or a0,a1,a5 ++** ret ++*/ ++int ConNmv_imm_imm_reg(int x, int y){ ++ if (x != 1000) return 10000000; ++ return y; ++} ++ ++/* ++**ConNmv_imm_reg_reg: ++** addi a5,a0,-1000 ++** th.mveqz a1,zero,a5 ++** th.mvnez a2,zero,a5 ++** or a0,a1,a2 ++** ret ++*/ ++int ConNmv_imm_reg_reg(int x, int y, int z){ ++ if (x != 1000) return y; ++ return z; ++} ++ ++/* ++**ConNmv_reg_imm_reg: ++** sub a1,a0,a1 ++** li a0,10 ++** th.mveqz a0,zero,a1 ++** th.mvnez a2,zero,a1 ++** or a0,a0,a2 ++** ret ++*/ ++int ConNmv_reg_imm_reg(int x, int y, int z){ ++ if (x != y) return 10; ++ return z; ++} ++ ++/* ++**ConNmv_reg_reg_reg: ++** sub a1,a0,a1 ++** th.mveqz a2,zero,a1 ++** th.mvnez a3,zero,a1 ++** or a0,a2,a3 ++** ret ++*/ ++int ConNmv_reg_reg_reg(int x, int y, int z, int n){ ++ if (x != y) return z; ++ return n; ++} ++ ++ ++/* { dg-final { scan-assembler ".attribute arch, \"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xtheadcondmov1p0\"" } } */ +diff --git a/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv64.c b/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv64.c +new file mode 100644 +index 00000000000..a1982fd90bd +--- /dev/null ++++ b/gcc/testsuite/gcc.target/riscv/xtheadcondmov-indirect-rv64.c +@@ -0,0 +1,116 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -march=rv64gc_xtheadcondmov -mabi=lp64d -mriscv-attribute" } */ ++/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" } } */ ++/* { dg-final { check-function-bodies "**" "" } } */ ++ ++/* ++**ConEmv_imm_imm_reg: ++** addi a5,a0,-1000 ++** li a0,10 ++** th.mvnez a0,zero,a5 ++** th.mveqz a1,zero,a5 ++** or a0,a0,a1 ++** ret ++*/ ++int ConEmv_imm_imm_reg(int x, int y){ ++ if (x == 1000) return 10; ++ return y; ++} ++ ++/* ++**ConEmv_imm_reg_reg: ++** addi a5,a0,-1000 ++** th.mvnez a1,zero,a5 ++** th.mveqz a2,zero,a5 ++** or a0,a1,a2 ++** ret ++*/ ++int ConEmv_imm_reg_reg(int x, int y, int z){ ++ if (x == 1000) return y; ++ return z; ++} ++ ++/* ++**ConEmv_reg_imm_reg: ++** sub a1,a0,a1 ++** li a0,10 ++** th.mvnez a0,zero,a1 ++** th.mveqz a2,zero,a1 ++** or a0,a0,a2 ++** ret ++*/ ++int ConEmv_reg_imm_reg(int x, int y, int z){ ++ if (x == y) return 10; ++ return z; ++} ++ ++/* ++**ConEmv_reg_reg_reg: ++** sub a1,a0,a1 ++** th.mvnez a2,zero,a1 ++** th.mveqz a3,zero,a1 ++** or a0,a2,a3 ++** ret ++*/ ++int ConEmv_reg_reg_reg(int x, int y, int z, int n){ ++ if (x == y) return z; ++ return n; ++} ++ ++/* ++**ConNmv_imm_imm_reg: ++** li a5,9998336 ++** addi a4,a0,-1000 ++** addi a5,a5,1664 ++** th.mvnez a1,zero,a4 ++** th.mveqz a5,zero,a4 ++** or a0,a1,a5 ++** ret ++*/ ++int ConNmv_imm_imm_reg(int x, int y){ ++ if (x != 1000) return 10000000; ++ return y; ++} ++ ++/* ++**ConNmv_imm_reg_reg: ++** addi a5,a0,-1000 ++** th.mveqz a1,zero,a5 ++** th.mvnez a2,zero,a5 ++** or a0,a1,a2 ++** ret ++*/ ++int ConNmv_imm_reg_reg(int x, int y, int z){ ++ if (x != 1000) return y; ++ return z; ++} ++ ++/* ++**ConNmv_reg_imm_reg: ++** sub a1,a0,a1 ++** li a0,10 ++** th.mveqz a0,zero,a1 ++** th.mvnez a2,zero,a1 ++** or a0,a0,a2 ++** ret ++*/ ++int ConNmv_reg_imm_reg(int x, int y, int z){ ++ if (x != y) return 10; ++ return z; ++} ++ ++/* ++**ConNmv_reg_reg_reg: ++** sub a1,a0,a1 ++** th.mveqz a2,zero,a1 ++** th.mvnez a3,zero,a1 ++** or a0,a2,a3 ++** ret ++*/ ++int ConNmv_reg_reg_reg(int x, int y, int z, int n){ ++ if (x != y) return z; ++ return n; ++} ++ ++ ++/* { dg-final { scan-assembler ".attribute arch, \"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xtheadcondmov1p0\"" } } */ +-- +2.39.3 diff --git a/system/gcc/101-pr115836.patch b/system/gcc/101-pr115836.patch new file mode 100644 index 000000000..72c78f925 --- /dev/null +++ b/system/gcc/101-pr115836.patch @@ -0,0 +1,50 @@ +From: Uros Bizjak <ubizjak@gmail.com> +Date: Wed, 10 Jul 2024 07:27:27 +0000 (+0200) +Subject: middle-end: Fix stalled swapped condition code value [PR115836] +X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=47a8b464d2dd9a586a9e15242c9825e39e1ecd4c;hp=efa30f619361b043616e624e57366a50982e11df + +middle-end: Fix stalled swapped condition code value [PR115836] + +emit_store_flag_1 calculates scode (swapped condition code) at the +beginning of the function from the value of code variable. However, +code variable may change before scode usage site, resulting in +invalid stalled scode value. + +Move calculation of scode value just before its only usage site to +avoid stalled scode value. + + PR middle-end/115836 + +gcc/ChangeLog: + + * expmed.cc (emit_store_flag_1): Move calculation of + scode just before its only usage site. + +(cherry picked from commit 44933fdeb338e00c972e42224b9a83d3f8f6a757) +--- + +diff --git a/gcc/expmed.cc b/gcc/expmed.cc +index 4ec035e4843b..19765311b954 100644 +--- a/gcc/expmed.cc ++++ b/gcc/expmed.cc +@@ -5607,11 +5607,9 @@ emit_store_flag_1 (rtx target, enum rtx_code code, rtx op0, rtx op1, + enum insn_code icode; + machine_mode compare_mode; + enum mode_class mclass; +- enum rtx_code scode; + + if (unsignedp) + code = unsigned_condition (code); +- scode = swap_condition (code); + + /* If one operand is constant, make it the second one. Only do this + if the other operand is not constant as well. */ +@@ -5726,6 +5724,8 @@ emit_store_flag_1 (rtx target, enum rtx_code code, rtx op0, rtx op1, + + if (GET_MODE_CLASS (mode) == MODE_FLOAT) + { ++ enum rtx_code scode = swap_condition (code); ++ + tem = emit_cstore (target, icode, scode, mode, compare_mode, + unsignedp, op1, op0, normalizep, target_mode); + if (tem) diff --git a/system/gcc/201-ada.patch b/system/gcc/201-ada.patch index acb1e1f1b..d16bbbbaa 100644 --- a/system/gcc/201-ada.patch +++ b/system/gcc/201-ada.patch @@ -1,29 +1,8 @@ -diff --git a/gcc/ada/adadecode.c b/gcc/ada/adadecode.c -index a63b7e7641b0..92155ef2025a 100644 ---- a/gcc/ada/adadecode.c -+++ b/gcc/ada/adadecode.c -@@ -29,6 +29,7 @@ - * * - ****************************************************************************/ - -+#include "adaint.h" /* for a macro version of xstrdup. */ - - #if defined(IN_RTS) - #include "tconfig.h" -@@ -42,8 +43,6 @@ - #include <stdio.h> - #include <ctype.h> - --#include "adaint.h" /* for a macro version of xstrdup. */ -- - #ifndef ISDIGIT - #define ISDIGIT(c) isdigit(c) - #endif diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 414346558654..2586a1368903 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c -@@ -85,6 +85,8 @@ +@@ -101,6 +101,8 @@ #define _LARGEFILE64_SOURCE 1 #endif @@ -32,7 +11,7 @@ index 414346558654..2586a1368903 100644 #ifdef IN_RTS #include "tconfig.h" #include "tsystem.h" -@@ -202,8 +204,6 @@ UINT __gnat_current_ccs_encoding; +@@ -243,8 +245,6 @@ UINT __gnat_current_ccs_encoding; #include <utime.h> #endif @@ -45,7 +24,7 @@ diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h index 0d12f7e90209..74182446d4ac 100644 --- a/gcc/ada/adaint.h +++ b/gcc/ada/adaint.h -@@ -316,6 +316,7 @@ extern void *__gnat_lwp_self (void); +@@ -319,6 +319,7 @@ extern void *__gnat_lwp_self (void); /* Routines for interface to required CPU set primitives */ @@ -64,8 +43,8 @@ index f62cf1eb37dc..0b6c5fe6f0df 100644 +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" + #include "runtime.h" + #include <stdlib.h> @@ -51,8 +53,6 @@ #include "system.h" #endif @@ -86,9 +65,9 @@ index ff97abe36ef1..56aa3477c8cd 100644 +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" -@@ -38,8 +40,6 @@ + #include "runtime.h" + #include <sys/stat.h> +@@ -37,8 +39,6 @@ #include "system.h" #endif @@ -101,38 +80,16 @@ diff --git a/gcc/ada/cstreams.c b/gcc/ada/cstreams.c index cdcb531e2b3f..dde6b9948089 100644 --- a/gcc/ada/cstreams.c +++ b/gcc/ada/cstreams.c -@@ -52,6 +52,8 @@ - #include "vxWorks.h" - #endif - -+#include "adaint.h" -+ - #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" -@@ -61,8 +63,6 @@ - #include "system.h" - #endif - --#include "adaint.h" -- - #ifdef __cplusplus - extern "C" { - #endif -diff --git a/gcc/ada/exit.c b/gcc/ada/exit.c -index 6274571c6f04..336b0f8f386b 100644 ---- a/gcc/ada/exit.c -+++ b/gcc/ada/exit.c -@@ -33,6 +33,8 @@ +@@ -58,6 +58,8 @@ #include "vxWorks.h" #endif +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" -@@ -42,8 +44,6 @@ + #include <string.h> + #else +@@ -65,8 +67,6 @@ #include "system.h" #endif @@ -141,11 +98,11 @@ index 6274571c6f04..336b0f8f386b 100644 #ifdef __cplusplus extern "C" { #endif -diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in +diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl index 0258f106d404..0416244ae428 100644 ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -1574,7 +1574,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),) +--- a/gcc/ada/Makefile.rtl ++++ b/gcc/ada/Makefile.rtl +@@ -2205,7 +2205,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),) endif # ARM linux, GNU eabi @@ -165,9 +122,9 @@ index 5088ecffc4f1..02a45b3ce7ca 100644 +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" -@@ -65,7 +67,6 @@ + + #ifdef STANDALONE +@@ -71,7 +73,6 @@ #include "system.h" #endif @@ -179,7 +136,7 @@ diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__l index 5bf4a5fe1d26..c52cc70dfbab 100644 --- a/gcc/ada/libgnarl/s-osinte__linux.ads +++ b/gcc/ada/libgnarl/s-osinte__linux.ads -@@ -394,12 +394,6 @@ package System.OS_Interface is +@@ -403,12 +403,6 @@ package System.OS_Interface is PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1; PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2; @@ -192,7 +149,7 @@ index 5bf4a5fe1d26..c52cc70dfbab 100644 function pthread_rwlock_init (mutex : access pthread_rwlock_t; attr : access pthread_rwlockattr_t) return int; -@@ -464,11 +458,6 @@ package System.OS_Interface is +@@ -470,11 +464,6 @@ package System.OS_Interface is protocol : int) return int; pragma Import (C, pthread_mutexattr_setprotocol); @@ -208,7 +165,7 @@ diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__l index e55cd65e54f6..32d72b3980a6 100644 --- a/gcc/ada/libgnarl/s-taprop__linux.adb +++ b/gcc/ada/libgnarl/s-taprop__linux.adb -@@ -202,9 +202,6 @@ package body System.Task_Primitives.Operations is +@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is pragma Import (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup"); @@ -218,7 +175,7 @@ index e55cd65e54f6..32d72b3980a6 100644 -- We do not have pragma Linker_Options ("-lcap"); here, because this -- library is not present on many Linux systems. 'libcap' is the Linux -- "capabilities" library, called by __gnat_has_cap_sys_nice. -@@ -214,38 +211,6 @@ package body System.Task_Primitives.Operations is +@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is -- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on -- GNU/Linux, so we map 0 .. 98 to 1 .. 99. @@ -251,13 +208,13 @@ index e55cd65e54f6..32d72b3980a6 100644 - return Ceiling_Support; - end Get_Ceiling_Support; - -- pragma Warnings (Off, "non-static call not allowed in preelaborated unit"); +- pragma Warnings (Off, "non-preelaborable call not allowed*"); - Ceiling_Support : constant Boolean := Get_Ceiling_Support; -- pragma Warnings (On, "non-static call not allowed in preelaborated unit"); +- pragma Warnings (On, "non-preelaborable call not allowed*"); -- True if the locking policy is Ceiling_Locking, and the current process -- has permission to use this policy. The process has permission if it is -- running as 'root', or if the capability was set by the setcap command, -@@ -348,7 +313,9 @@ package body System.Task_Primitives.Operations is +@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is -- Init_Mutex -- ---------------- @@ -267,7 +224,7 @@ index e55cd65e54f6..32d72b3980a6 100644 Mutex_Attr : aliased pthread_mutexattr_t; Result, Result_2 : C.int; -@@ -360,16 +327,7 @@ package body System.Task_Primitives.Operations is +@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is return Result; end if; @@ -285,7 +242,7 @@ index e55cd65e54f6..32d72b3980a6 100644 Result := pthread_mutexattr_setprotocol (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT); pragma Assert (Result = 0); -@@ -409,11 +367,6 @@ package body System.Task_Primitives.Operations is +@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is Result := pthread_rwlockattr_init (RWlock_Attr'Access); pragma Assert (Result = 0); @@ -301,91 +258,31 @@ diff --git a/gcc/ada/libgnat/s-dwalin.adb b/gcc/ada/libgnat/s-dwalin.adb index a857b67132af..1e2bb4c545ad 100644 --- a/gcc/ada/libgnat/s-dwalin.adb +++ b/gcc/ada/libgnat/s-dwalin.adb -@@ -382,7 +382,7 @@ package body System.Dwarf_Lines is - - function Low (C : Dwarf_Context) return Address is - begin -- return C.Low; -+ return To_Address (To_Integer (C.Low) + C.Load_Slide); - end Low; - - ---------- -@@ -1210,19 +1210,21 @@ package body System.Dwarf_Lines is - -- Discard symbols whose length is 0 - Sz := uint32 (Size (S)); - -- -- Try to filter symbols at the same address. This is a best -- -- effort as they might not be consecutive. -- Addr := uint32 (Value (S) - uint64 (C.Low)); -- if Sz > 0 and then Addr /= Prev_Addr then -- Nbr_Symbols := Nbr_Symbols + 1; -- Prev_Addr := Addr; -- -- if Phase = 2 then -- C.Cache (Nbr_Symbols) := -- (First => Addr, -- Size => Sz, -- Sym => uint32 (Off (S)), -- Line => 0); -+ if Sz > 0 then -+ -- Try to filter symbols at the same address. This is a best -+ -- effort as they might not be consecutive. -+ Addr := uint32 (Value (S) - uint64 (C.Low)); -+ if Addr /= Prev_Addr then -+ Nbr_Symbols := Nbr_Symbols + 1; -+ Prev_Addr := Addr; -+ -+ if Phase = 2 then -+ C.Cache (Nbr_Symbols) := -+ (First => Addr, -+ Size => Sz, -+ Sym => uint32 (Off (S)), -+ Line => 0); -+ end if; - end if; - end if; - -@@ -1267,6 +1269,10 @@ package body System.Dwarf_Lines is +@@ -1538,7 +1538,11 @@ package body System.Dwarf_Lines is -- Read table + loop - Read_Aranges_Entry (C, Ar_Start, Ar_Len); + Read_Aranges_Entry (C, Addr_Size, Ar_Start, Ar_Len); + -- Skip references to discarded sections + while Ar_Start = 0 and Ar_Len /= 0 loop -+ Read_Aranges_Entry (C, Ar_Start, Ar_Len); ++ Read_Aranges_Entry (C, Addr_Size, Ar_Start, Ar_Len); + end loop; - exit when Ar_Start = 0 and Ar_Len = 0; + exit when Ar_Start = Null_Address and Ar_Len = 0; Len := uint32 (Ar_Len); -diff --git a/gcc/ada/libgnat/s-trasym__dwarf.adb b/gcc/ada/libgnat/s-trasym__dwarf.adb -index db7c5eb4cdd8..3cd60ecbc37b 100644 ---- a/gcc/ada/libgnat/s-trasym__dwarf.adb -+++ b/gcc/ada/libgnat/s-trasym__dwarf.adb -@@ -123,7 +123,8 @@ package body System.Traceback.Symbolic is - -- Return the String contained in Item, up until the first NUL character - - pragma Warnings (Off, "*Add_Module_To_Cache*"); -- procedure Add_Module_To_Cache (Module_Name : String); -+ procedure Add_Module_To_Cache (Module_Name : String; -+ Load_Address : System.Address); - -- To be called by Build_Cache_For_All_Modules to add a new module to the - -- list. May not be referenced. - -@@ -217,12 +218,13 @@ package body System.Traceback.Symbolic is - -- Add_Module_To_Cache -- - ------------------------- - -- procedure Add_Module_To_Cache (Module_Name : String) is -+ procedure Add_Module_To_Cache (Module_Name : String; -+ Load_Address : System.Address) is - Module : Module_Cache_Acc; - Success : Boolean; - begin - Module := new Module_Cache; -- Init_Module (Module.all, Success, Module_Name); -+ Init_Module (Module.all, Success, Module_Name, Load_Address); - if not Success then - Free (Module); - return; +diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads +index 3d6e345a1ba9..cfe0b4d3ca6c 100644 +--- a/gcc/ada/libgnat/s-parame.ads ++++ b/gcc/ada/libgnat/s-parame.ads +@@ -102,7 +102,7 @@ package System.Parameters is + -- Characteristics of time_t type -- + ------------------------------------ + +- time_t_bits : constant := Long_Integer'Size; ++ time_t_bits : constant := Long_Long_Integer'Size; + -- Number of bits in type time_t + + ---------------------------------------------- diff --git a/gcc/ada/libgnat/s-tsmona__linux.adb b/gcc/ada/libgnat/s-tsmona__linux.adb index cbebd0652048..c882aa64a6e2 100644 --- a/gcc/ada/libgnat/s-tsmona__linux.adb @@ -468,7 +365,7 @@ index cbebd0652048..c882aa64a6e2 100644 - while lm /= null loop - if Big_String_Conv.To_Pointer (lm.l_name) (1) /= ASCII.NUL then - -- Discard non-file (like the executable itself or the gate). -- Add_Module_To_Cache (Value (lm.l_name)); +- Add_Module_To_Cache (Value (lm.l_name), lm.l_addr); - end if; - lm := lm.l_next; - end loop; @@ -487,8 +384,8 @@ index c101d968a851..43cdd51e8320 100644 +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" + #include "runtime.h" + #include <sys/stat.h> @@ -53,8 +55,6 @@ #endif #endif @@ -509,9 +406,9 @@ index 70ad6cd3282a..eb92de1b2137 100644 +#include "adaint.h" + #ifdef IN_RTS - #include "tconfig.h" - #include "tsystem.h" -@@ -40,7 +42,6 @@ + #include "runtime.h" + #else +@@ -39,7 +41,6 @@ #include "system.h" #endif @@ -531,8 +428,8 @@ index 98b3901cb16f..98db6a14c2d5 100644 + #ifdef IN_RTS #define POSIX - #include "tconfig.h" -@@ -72,8 +74,6 @@ + #include "runtime.h" +@@ -74,8 +76,6 @@ extern struct tm *localtime_r(const time_t *, struct tm *); #endif @@ -541,25 +438,34 @@ index 98b3901cb16f..98db6a14c2d5 100644 /* Don't use macros versions of this functions on VxWorks since they cause imcompatible changes in some VxWorks versions */ #ifdef __vxworks -diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c -index 7025f57d645e..074845584958 100644 ---- a/gcc/ada/terminals.c -+++ b/gcc/ada/terminals.c -@@ -1112,7 +1112,6 @@ __gnat_setup_winsize (void *desc, int rows, int columns) - (HP-UX) */ - #if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \ - && !defined (__rtems__) && !defined (__QNXNTO__) --# include <termio.h> - #endif - - #include <sys/ioctl.h> -@@ -1159,7 +1158,8 @@ __gnat_setup_winsize (void *desc, int rows, int columns) +--- a/gcc/ada/terminals.c 2019-01-08 10:54:04.000000000 +0100 ++++ b/gcc/ada/terminals.c 2019-05-15 13:14:09.935742526 +0200 +@@ -1136,7 +1136,7 @@ + /* POSIX does not specify how to open the master side of a terminal.Several + methods are available (system specific): + 1- using a cloning device (USE_CLONE_DEVICE) +- 2- getpt (USE_GETPT) ++ 2- posix_openpt (USE_POSIX_OPENPT) + 3- openpty (USE_OPENPTY) + + When using the cloning device method, the macro USE_CLONE_DEVICE should +@@ -1150,7 +1150,7 @@ #if defined (__APPLE__) || defined (BSD) #define USE_OPENPTY #elif defined (__linux__) -#define USE_GETPT -+#include <pty.h> -+#define USE_OPENPTY ++#define USE_POSIX_OPENPT #elif defined (__sun__) #define USE_CLONE_DEVICE "/dev/ptmx" #elif defined (_AIX) +@@ -1199,8 +1199,8 @@ + int master_fd = -1; + char *slave_name = NULL; + +-#ifdef USE_GETPT +- master_fd = getpt (); ++#if defined(USE_POSIX_OPENPT) ++ master_fd = posix_openpt(O_RDWR | O_NOCTTY); + #elif defined (USE_OPENPTY) + status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL); + #elif defined (USE_CLONE_DEVICE) diff --git a/system/gcc/202-ibm-ldbl.patch b/system/gcc/202-ibm-ldbl.patch index bdf5c75d9..d67cbbf46 100644 --- a/system/gcc/202-ibm-ldbl.patch +++ b/system/gcc/202-ibm-ldbl.patch @@ -32,7 +32,7 @@ index 4f6d4c4..fa93bb6 100644 @@ -1,3 +1,3 @@ SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver --HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc -+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc +-HOST_LIBGCC2_CFLAGS += -mlong-double-128 ++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -- 2.24.0 diff --git a/system/gcc/205-nopie.patch b/system/gcc/205-nopie.patch index e3da94d10..262749d62 100644 --- a/system/gcc/205-nopie.patch +++ b/system/gcc/205-nopie.patch @@ -12,7 +12,7 @@ diff --git a/gcc/configure b/gcc/configure index 1c6e340..7e8b5d6 100755 --- a/gcc/configure +++ b/gcc/configure -@@ -29390,6 +29390,33 @@ fi +@@ -32441,6 +32441,33 @@ fi $as_echo "$gcc_cv_no_pie" >&6; } if test "$gcc_cv_no_pie" = "yes"; then NO_PIE_FLAG="-no-pie" @@ -50,7 +50,7 @@ diff --git a/gcc/configure.ac b/gcc/configure.ac index 6c1dcd9..0ca7647 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -6098,6 +6098,19 @@ AC_CACHE_CHECK([for -no-pie option], +@@ -7621,6 +7621,19 @@ AC_CACHE_CHECK([for -no-pie option], LDFLAGS="$saved_LDFLAGS"]) if test "$gcc_cv_no_pie" = "yes"; then NO_PIE_FLAG="-no-pie" diff --git a/system/gcc/206-arm-unwind-functionise.patch b/system/gcc/206-arm-unwind-functionise.patch index 0cee39e54..a5cc9236e 100644 --- a/system/gcc/206-arm-unwind-functionise.patch +++ b/system/gcc/206-arm-unwind-functionise.patch @@ -1,6 +1,6 @@ --- gcc-8.5.0/libgcc/config/arm/unwind-arm.c.old 2021-05-14 03:42:10.000000000 -0500 +++ gcc-8.5.0/libgcc/config/arm/unwind-arm.c 2022-12-24 20:04:04.085095067 -0600 -@@ -510,22 +510,22 @@ +@@ -539,22 +539,22 @@ return __gnu_unwind_pr_common (state, ucbp, context, 2); } @@ -30,7 +30,7 @@ _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)); --- gcc-8.5.0/libgcc/config/arm/unwind-arm.h.old 2021-05-14 03:42:10.000000000 -0500 +++ gcc-8.5.0/libgcc/config/arm/unwind-arm.h 2022-12-24 20:03:41.415095129 -0600 -@@ -72,7 +72,7 @@ +@@ -97,7 +97,7 @@ { return _URC_FAILURE; } @@ -41,7 +41,7 @@ (_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1) --- gcc-8.5.0/gcc/ada/raise-gcc.c.old 2021-05-14 03:42:08.000000000 -0500 +++ gcc-8.5.0/gcc/ada/raise-gcc.c 2022-12-24 22:43:03.605084414 -0600 -@@ -91,7 +91,9 @@ +@@ -90,7 +90,9 @@ This is a hack ???, the real fix is to link gnat1/gnatbind with the runtime of the build compiler. */ # ifdef EH_MECHANISM_arm diff --git a/system/gcc/320-libffi-gnulinux.patch b/system/gcc/320-libffi-gnulinux.patch deleted file mode 100644 index b3b4fc931..000000000 --- a/system/gcc/320-libffi-gnulinux.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libffi/closures.c.orig b/libffi/closures.c -index 721ff00..22a699c 100644 ---- a/libffi/src/closures.c.orig -+++ b/libffi/src/closures.c -@@ -34,7 +34,7 @@ - #include <ffi_common.h> - - #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE --# if __gnu_linux__ && !defined(__ANDROID__) -+# if __linux__ && !defined(__ANDROID__) - /* This macro indicates it may be forbidden to map anonymous memory - with both write and execute permission. Code compiled when this - option is defined will attempt to map such pages once, but if it diff --git a/system/gcc/330-gccgo-link-to-ucontext.patch b/system/gcc/330-gccgo-link-to-ucontext.patch index 8aa60ca54..63446f23c 100644 --- a/system/gcc/330-gccgo-link-to-ucontext.patch +++ b/system/gcc/330-gccgo-link-to-ucontext.patch @@ -1,6 +1,6 @@ --- gcc-6.4.0/Makefile.in.old 2018-06-21 22:16:35.167781541 -0500 +++ gcc-6.4.0/Makefile.in 2018-06-22 00:36:13.849486086 -0500 -@@ -41332,7 +41332,7 @@ +@@ -52324,7 +52324,7 @@ esac; \ module_srcdir=libgo; \ rm -f no-such-file || : ; \ diff --git a/system/gcc/331-gccgo-use-real-off_t-type.patch b/system/gcc/331-gccgo-use-real-off_t-type.patch index 1c8c43e9e..c652dd448 100644 --- a/system/gcc/331-gccgo-use-real-off_t-type.patch +++ b/system/gcc/331-gccgo-use-real-off_t-type.patch @@ -1,30 +1,11 @@ ---- gcc-6.4.0/libgo/go/syscall/libcall_linux.go.old 2016-02-03 15:58:02.419872000 -0600 -+++ gcc-6.4.0/libgo/go/syscall/libcall_linux.go 2018-06-22 00:56:31.478280552 -0500 -@@ -355,19 +355,19 @@ - //sys Setxattr(path string, attr string, data []byte, flags int) (err error) - //setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int +--- gcc-13.3.0/libgo/sysinfo.c.old 2024-05-22 20:29:51.727156372 -0500 ++++ gcc-13.3.0/libgo/sysinfo.c 2024-05-22 20:35:39.499799256 -0500 +@@ -363,6 +363,8 @@ + // loff_t can be defined as a macro; for -fgo-dump-spec make sure we + // see a typedef. + typedef loff_t libgo_loff_t_type; ++#else ++typedef off_t libgo_loff_t_type; + #endif --//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error) --//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t -+//sys splice(rfd int, roff *_off_t, wfd int, woff *_off_t, len int, flags int) (n int64, err error) -+//splice(rfd _C_int, roff *_off_t, wfd _C_int, woff *_off_t, len Size_t, flags _C_uint) Ssize_t - func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { -- var lroff _loff_t -- var plroff *_loff_t -+ var lroff _off_t -+ var plroff *_off_t - if roff != nil { -- lroff = _loff_t(*roff) -+ lroff = _off_t(*roff) - plroff = &lroff - } -- var lwoff _loff_t -- var plwoff *_loff_t -+ var lwoff _off_t -+ var plwoff *_off_t - if woff != nil { -- lwoff = _loff_t(*woff) -+ lwoff = _off_t(*woff) - plwoff = &lwoff - } - n, err = splice(rfd, plroff, wfd, plwoff, len, flags) + #if defined(HAVE_OFF64_T) diff --git a/system/gcc/332-gccgo-sysinfo.patch b/system/gcc/332-gccgo-sysinfo.patch index 822bc53c9..8c02cb6e0 100644 --- a/system/gcc/332-gccgo-sysinfo.patch +++ b/system/gcc/332-gccgo-sysinfo.patch @@ -1,6 +1,6 @@ --- gcc-8.3.0/libgo/sysinfo.c.old 2018-06-22 14:25:34.000000000 +0000 +++ gcc-8.3.0/libgo/sysinfo.c 2019-02-27 20:18:38.740000000 +0000 -@@ -73,9 +73,6 @@ +@@ -78,9 +78,6 @@ #include <sys/times.h> #include <sys/wait.h> #include <sys/un.h> diff --git a/system/gcc/333-gccgo-signal-ppc64.patch b/system/gcc/333-gccgo-signal-ppc64.patch deleted file mode 100644 index 304b71733..000000000 --- a/system/gcc/333-gccgo-signal-ppc64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-8.3.0/libgo/runtime/go-signal.c.old 2017-08-18 20:17:26.000000000 +0000 -+++ gcc-8.3.0/libgo/runtime/go-signal.c 2019-02-27 20:25:02.560000000 +0000 -@@ -222,7 +222,7 @@ - #endif - #ifdef __PPC__ - #ifdef __linux__ -- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip; -+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32]; - #endif - #ifdef _AIX - ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar; diff --git a/system/gcc/334-gccgo-signal-shell.patch b/system/gcc/334-gccgo-signal-shell.patch index 5c7405c4f..68fa80bca 100644 --- a/system/gcc/334-gccgo-signal-shell.patch +++ b/system/gcc/334-gccgo-signal-shell.patch @@ -1,6 +1,6 @@ --- gcc-8.3.0/libgo/mksigtab.sh.old 2017-11-22 00:27:29.000000000 +0000 +++ gcc-8.3.0/libgo/mksigtab.sh 2019-03-02 22:01:17.530000000 +0000 -@@ -82,7 +82,7 @@ +@@ -86,7 +86,7 @@ checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}' checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}' checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}' @@ -9,17 +9,3 @@ checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}' checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}' checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}' -@@ -94,10 +94,12 @@ - - # Special handling of signals 32 and 33 on GNU/Linux systems, - # because they are special to glibc. -+# Signal 34 is additionally special to Linux systems with musl. - if test "${GOOS}" = "linux"; then -- SIGLIST=$SIGLIST"_32__33_" -+ SIGLIST=$SIGLIST"_32__33__34_" - echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */' - echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */' -+ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */' - fi - - if test "${GOOS}" = "aix"; then diff --git a/system/gcc/335-gccgo-signal-ppc32.patch b/system/gcc/335-gccgo-signal-ppc32.patch index f44444948..1e52b925e 100644 --- a/system/gcc/335-gccgo-signal-ppc32.patch +++ b/system/gcc/335-gccgo-signal-ppc32.patch @@ -1,6 +1,6 @@ --- gcc-8.3.0/libgo/runtime/go-signal.c.old 2019-03-02 22:02:02.250000000 +0000 +++ gcc-8.3.0/libgo/runtime/go-signal.c 2019-03-03 02:04:13.220000000 +0000 -@@ -222,7 +222,11 @@ +@@ -249,7 +249,11 @@ #endif #ifdef __PPC__ #ifdef __linux__ diff --git a/system/gcc/336-gccgo-mmap64.patch b/system/gcc/336-gccgo-mmap64.patch deleted file mode 100644 index 23b4cebc8..000000000 --- a/system/gcc/336-gccgo-mmap64.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- gcc-8.3.0/libgo/go/runtime/mem_gccgo.go.old 2018-01-09 01:23:08.000000000 +0000 -+++ gcc-8.3.0/libgo/go/runtime/mem_gccgo.go 2019-03-03 05:15:33.010000000 +0000 -@@ -16,7 +16,7 @@ - //go:linkname sysFree runtime.sysFree - - //extern mmap --func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer -+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer - - //extern munmap - func munmap(addr unsafe.Pointer, length uintptr) int32 -@@ -41,7 +41,7 @@ - } - } - --func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) { -+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) { - p := sysMmap(addr, n, prot, flags, fd, off) - if uintptr(p) == _MAP_FAILED { - return nil, errno() -@@ -84,7 +84,7 @@ - return true - } - --func mmap_fixed(v unsafe.Pointer, n uintptr, prot, flags, fd int32, offset uintptr) (unsafe.Pointer, int) { -+func mmap_fixed(v unsafe.Pointer, n uintptr, prot, flags, fd int32, offset int64) (unsafe.Pointer, int) { - p, err := mmap(v, n, prot, flags, fd, offset) - // On some systems, mmap ignores v without - // MAP_FIXED, so retry if the address space is free. diff --git a/system/gcc/337-gccgo-signal-sig34.patch b/system/gcc/337-gccgo-signal-sig34.patch deleted file mode 100644 index 757d2f216..000000000 --- a/system/gcc/337-gccgo-signal-sig34.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-8.3.0/libgo/go/runtime/signal_gccgo.go.old 2018-01-10 05:15:52.000000000 +0000 -+++ gcc-8.3.0/libgo/go/runtime/signal_gccgo.go 2019-03-03 05:19:28.000000000 +0000 -@@ -111,7 +111,7 @@ - if sigaction(i, nil, &sa) < 0 { - // On GNU/Linux glibc rejects attempts to call - // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID). -- if GOOS == "linux" && (i == 32 || i == 33) { -+ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) { - return _SIG_DFL - } - throw("sigaction read failure") diff --git a/system/gcc/338-gccgo-syscall.patch b/system/gcc/338-gccgo-syscall.patch deleted file mode 100644 index a4ecb5b6b..000000000 --- a/system/gcc/338-gccgo-syscall.patch +++ /dev/null @@ -1,115 +0,0 @@ -diff -Naur gcc-8.3.0-orig/libgo/go/runtime/stubs.go gcc-8.3.0/libgo/go/runtime/stubs.go ---- gcc-8.3.0-orig/libgo/go/runtime/stubs.go 2019-04-25 03:03:52.311215191 +0000 -+++ gcc-8.3.0/libgo/go/runtime/stubs.go 2019-04-25 03:03:27.973824045 +0000 -@@ -284,8 +284,7 @@ - // For gccgo this is in the C code. - func osyield() - --// For gccgo this can be called directly. --//extern syscall -+//extern __go_syscall6 - func syscall(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) uintptr - - // For gccgo, to communicate from the C code to the Go code. -diff -Naur gcc-8.3.0-orig/libgo/go/syscall/syscall_unix.go gcc-8.3.0/libgo/go/syscall/syscall_unix.go ---- gcc-8.3.0-orig/libgo/go/syscall/syscall_unix.go 2019-04-25 03:04:55.064488337 +0000 -+++ gcc-8.3.0/libgo/go/syscall/syscall_unix.go 2019-04-25 03:08:23.612133013 +0000 -@@ -19,11 +19,8 @@ - Stderr = 2 - ) - --//extern syscall --func c_syscall32(trap int32, a1, a2, a3, a4, a5, a6 int32) int32 -- --//extern syscall --func c_syscall64(trap int64, a1, a2, a3, a4, a5, a6 int64) int64 -+//extern __go_syscall6 -+func syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) uintptr - - const ( - darwin64Bit = runtime.GOOS == "darwin" && sizeofPtr == 8 -@@ -38,14 +35,7 @@ - func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) { - Entersyscall() - SetErrno(0) -- var r uintptr -- if unsafe.Sizeof(r) == 4 { -- r1 := c_syscall32(int32(trap), int32(a1), int32(a2), int32(a3), 0, 0, 0) -- r = uintptr(r1) -- } else { -- r1 := c_syscall64(int64(trap), int64(a1), int64(a2), int64(a3), 0, 0, 0) -- r = uintptr(r1) -- } -+ r := syscall6(trap, a1, a2, a3, 0, 0, 0) - err = GetErrno() - Exitsyscall() - return r, 0, err -@@ -54,47 +44,22 @@ - func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) { - Entersyscall() - SetErrno(0) -- var r uintptr -- if unsafe.Sizeof(r) == 4 { -- r1 := c_syscall32(int32(trap), int32(a1), int32(a2), int32(a3), -- int32(a4), int32(a5), int32(a6)) -- r = uintptr(r1) -- } else { -- r1 := c_syscall64(int64(trap), int64(a1), int64(a2), int64(a3), -- int64(a4), int64(a5), int64(a6)) -- r = uintptr(r1) -- } -+ r := syscall6(trap, a1, a2, a3, a4, a5, a6) - err = GetErrno() - Exitsyscall() - return r, 0, err - } - - func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) { -- var r uintptr - SetErrno(0) -- if unsafe.Sizeof(r) == 4 { -- r1 := c_syscall32(int32(trap), int32(a1), int32(a2), int32(a3), 0, 0, 0) -- r = uintptr(r1) -- } else { -- r1 := c_syscall64(int64(trap), int64(a1), int64(a2), int64(a3), 0, 0, 0) -- r = uintptr(r1) -- } -+ r := syscall6(trap, a1, a2, a3, 0, 0, 0) - err = GetErrno() - return r, 0, err - } - - func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) { -- var r uintptr - SetErrno(0) -- if unsafe.Sizeof(r) == 4 { -- r1 := c_syscall32(int32(trap), int32(a1), int32(a2), int32(a3), -- int32(a4), int32(a5), int32(a6)) -- r = uintptr(r1) -- } else { -- r1 := c_syscall64(int64(trap), int64(a1), int64(a2), int64(a3), -- int64(a4), int64(a5), int64(a6)) -- r = uintptr(r1) -- } -+ r := syscall6(trap, a1, a2, a3, a4, a5, a6) - err = GetErrno() - return r, 0, err - } -diff -Naur gcc-8.3.0-orig/libgo/runtime/go-varargs.c gcc-8.3.0/libgo/runtime/go-varargs.c ---- gcc-8.3.0-orig/libgo/runtime/go-varargs.c 2015-11-06 19:15:45.000000000 +0000 -+++ gcc-8.3.0/libgo/runtime/go-varargs.c 2019-04-25 03:14:11.404851275 +0000 -@@ -89,3 +89,14 @@ - } - - #endif -+ -+// __go_syscall6 is called by both the runtime and syscall packages. -+// We use uintptr_t to make sure that the types match, since the Go -+// and C "int" types are not the same. -+ -+uintptr_t -+__go_syscall6(uintptr_t flag, uintptr_t a1, uintptr_t a2, uintptr_t a3, -+ uintptr_t a4, uintptr_t a5, uintptr_t a6) -+{ -+ return syscall (flag, a1, a2, a3, a4, a5, a6); -+} diff --git a/system/gcc/339-gccgo-errstr.patch b/system/gcc/339-gccgo-errstr.patch deleted file mode 100644 index f78d18aa4..000000000 --- a/system/gcc/339-gccgo-errstr.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- gcc-8.3.0/libgo/go/syscall/errstr_linux.go 2016-08-06 00:36:33.000000000 +0000 -+++ /dev/null 2019-04-08 15:05:18.560000000 +0000 -@@ -1,31 +0,0 @@ --// errstr_linux.go -- GNU/Linux specific error strings. -- --// Copyright 2010 The Go Authors. All rights reserved. --// Use of this source code is governed by a BSD-style --// license that can be found in the LICENSE file. -- --// We use this rather than errstr.go because on GNU/Linux sterror_r --// returns a pointer to the error message, and may not use buf at all. -- --package syscall -- --import "unsafe" -- --//sysnb strerror_r(errnum int, b []byte) (errstr *byte) --//strerror_r(errnum _C_int, b *byte, len Size_t) *byte -- --func Errstr(errnum int) string { -- a := make([]byte, 128) -- p := strerror_r(errnum, a) -- b := (*[1000]byte)(unsafe.Pointer(p)) -- i := 0 -- for b[i] != 0 { -- i++ -- } -- // Lowercase first letter: Bad -> bad, but STREAM -> STREAM. -- if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' { -- c := b[0] + 'a' - 'A' -- return string(c) + string(b[1:i]) -- } -- return string(b[:i]) --} ---- gcc-8.3.0/libgo/go/syscall/errstr.go.old 2016-08-06 00:36:33.000000000 +0000 -+++ gcc-8.3.0/libgo/go/syscall/errstr.go 2019-04-25 05:41:27.915806277 +0000 -@@ -4,8 +4,6 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --// +build !linux -- - package syscall - - //sysnb strerror_r(errnum int, buf []byte) (err Errno) diff --git a/system/gcc/340-gccgo-time64-stat.patch b/system/gcc/340-gccgo-time64-stat.patch deleted file mode 100644 index 332712a13..000000000 --- a/system/gcc/340-gccgo-time64-stat.patch +++ /dev/null @@ -1,19 +0,0 @@ -There are more than one st_{a,m,c}tim fields in struct stat on time64 machines. - -Run the Go-isation on all of them. - ---- gcc-8.3.0/libgo/mksysinfo.sh.old 2018-11-09 15:29:52.000000000 +0000 -+++ gcc-8.3.0/libgo/mksysinfo.sh 2019-12-23 00:18:54.129911814 +0000 -@@ -468,9 +468,9 @@ - -e 's/st_size/Size/' \ - -e 's/st_blksize/Blksize/' \ - -e 's/st_blocks/Blocks/' \ -- -e 's/st_atim/Atim/' \ -- -e 's/st_mtim/Mtim/' \ -- -e 's/st_ctim/Ctim/' \ -+ -e 's/st_atim/Atim/g' \ -+ -e 's/st_mtim/Mtim/g' \ -+ -e 's/st_ctim/Ctim/g' \ - -e 's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g' \ - -e 's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g' \ - -e 's/\([^a-zA-Z0-9_]\)_st_timespec_t\([^a-zA-Z0-9_]\)/\1StTimespec\2/g' \ diff --git a/system/gcc/341-gccgo-libucontext-stack.patch b/system/gcc/341-gccgo-libucontext-stack.patch index 2befc5d32..cc88bda5a 100644 --- a/system/gcc/341-gccgo-libucontext-stack.patch +++ b/system/gcc/341-gccgo-libucontext-stack.patch @@ -4,15 +4,39 @@ This causes the Go frontend to sometimes go below the stack. On 32-bit Arm systems, this resulted in #832. It is likely, though not known, that this could have caused other issues we've seen in gccgo as well. ---- gcc-8.5.0/libgo/runtime/go-callers.c.old 2021-05-14 03:42:11.000000000 -0500 -+++ gcc-8.5.0/libgo/runtime/go-callers.c 2022-12-25 01:46:15.834110528 -0600 -@@ -117,7 +117,8 @@ - Solaris (http://gcc.gnu.org/PR52583 comment #21). */ +Additionally, since we strip libgo.so, filename is always NULL. This caused +the unwinder to continue through runtime_mstart which caused the same issue. +--- gcc-8.5.0/libgo/runtime/go-callers.c.old 2023-01-01 17:56:27.302982459 -0600 ++++ gcc-8.5.0/libgo/runtime/go-callers.c 2023-01-01 17:58:00.612903483 -0600 +@@ -165,26 +165,11 @@ if (function != NULL) { - if (__builtin_strcmp (function, "makecontext") == 0) + if (__builtin_strcmp (function, "makecontext") == 0 -+ || __builtin_strcmp (function, "libucontext_makecontext") == 0) ++ || __builtin_strcmp (function, "libucontext_makecontext") == 0 ++ || __builtin_strcmp (function, "runtime_mstart") == 0 ++ || __builtin_strcmp (function, "runtime.kickoff") == 0 ++ || __builtin_strcmp (function, "runtime.main") == 0) return 1; - if (filename != NULL) - { +- if (filename != NULL) +- { +- const char *p; +- +- p = strrchr (filename, '/'); +- if (p == NULL) +- p = filename; +- if (__builtin_strcmp (p, "/proc.c") == 0) +- { +- if (__builtin_strcmp (function, "runtime_mstart") == 0) +- return 1; +- } +- else if (__builtin_strcmp (p, "/proc.go") == 0) +- { +- if (__builtin_strcmp (function, "runtime.kickoff") == 0 +- || __builtin_strcmp (function, "runtime.main") == 0) +- return 1; +- } +- } + } + + return arg->index >= arg->max; diff --git a/system/gcc/342-gccgo-more-unwinding.patch b/system/gcc/342-gccgo-more-unwinding.patch deleted file mode 100644 index 7f059b4dc..000000000 --- a/system/gcc/342-gccgo-more-unwinding.patch +++ /dev/null @@ -1,37 +0,0 @@ -The fix for #832 was incomplete. Since we strip libgo.so, filename is -always NULL. This caused the unwinder to continue through -runtime_mstart which caused the same issue. ---- gcc-8.5.0/libgo/runtime/go-callers.c.old 2023-01-01 17:56:27.302982459 -0600 -+++ gcc-8.5.0/libgo/runtime/go-callers.c 2023-01-01 17:58:00.612903483 -0600 -@@ -118,27 +118,11 @@ - if (function != NULL) - { - if (__builtin_strcmp (function, "makecontext") == 0 -- || __builtin_strcmp (function, "libucontext_makecontext") == 0) -+ || __builtin_strcmp (function, "libucontext_makecontext") == 0 -+ || __builtin_strcmp (function, "runtime_mstart") == 0 -+ || __builtin_strcmp (function, "runtime.kickoff") == 0 -+ || __builtin_strcmp (function, "runtime.main") == 0) - return 1; -- if (filename != NULL) -- { -- const char *p; -- -- p = strrchr (filename, '/'); -- if (p == NULL) -- p = filename; -- if (__builtin_strcmp (p, "/proc.c") == 0) -- { -- if (__builtin_strcmp (function, "runtime_mstart") == 0) -- return 1; -- } -- else if (__builtin_strcmp (p, "/proc.go") == 0) -- { -- if (__builtin_strcmp (function, "runtime.kickoff") == 0 -- || __builtin_strcmp (function, "runtime.main") == 0) -- return 1; -- } -- } - } - - return arg->index >= arg->max; diff --git a/system/gcc/342-gccgo-reflect-underscore.patch b/system/gcc/342-gccgo-reflect-underscore.patch new file mode 100644 index 000000000..8edad0e39 --- /dev/null +++ b/system/gcc/342-gccgo-reflect-underscore.patch @@ -0,0 +1,28 @@ +See also: https://github.com/modern-go/reflect2/issues/21 + +--- gcc-13.3.0/libgo/go/runtime/malloc.go.old 2024-05-21 02:47:42.000000000 -0500 ++++ gcc-13.3.0/libgo/go/runtime/malloc.go 2024-06-03 19:25:48.497999687 -0500 +@@ -1297,6 +1297,11 @@ + return mallocgc(typ.size, typ, true) + } + ++//go:linkname reflect_unsafe_New_one_underscore reflect.unsafe_New ++func reflect_unsafe_New_one_underscore(typ *_type) unsafe.Pointer { ++ return mallocgc(typ.size, typ, true) ++} ++ + //go:linkname reflectlite_unsafe_New internal_1reflectlite.unsafe__New + func reflectlite_unsafe_New(typ *_type) unsafe.Pointer { + return mallocgc(typ.size, typ, true) +@@ -1319,6 +1324,11 @@ + return newarray(typ, n) + } + ++//go:linkname reflect_unsafe_NewArray_one_underscore reflect.unsafe_NewArray ++func reflect_unsafe_NewArray_one_underscore(typ *_type, n int) unsafe.Pointer { ++ return newarray(typ, n) ++} ++ + func profilealloc(mp *m, x unsafe.Pointer, size uintptr) { + c := getMCache(mp) + if c == nil { diff --git a/system/gcc/APKBUILD b/system/gcc/APKBUILD index b7dcfb592..ecdfeb48a 100644 --- a/system/gcc/APKBUILD +++ b/system/gcc/APKBUILD @@ -1,12 +1,12 @@ # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> pkgname=gcc -pkgver=8.5.0 +pkgver=13.3.0 [ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" [ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname="$pkgname$_target" -pkgrel=4 +pkgrel=0 pkgdesc="The GNU Compiler Collection" url="https://gcc.gnu.org" arch="all" @@ -32,6 +32,7 @@ LIBGOMP=true LIBGCC=true LIBATOMIC=true LIBITM=true +LIBSANITIZER=true if [ "$CHOST" != "$CTARGET" ]; then if [ "$BOOTSTRAP" = nolibc ]; then @@ -48,6 +49,7 @@ if [ "$CHOST" != "$CTARGET" ]; then LIBGOMP=false LIBATOMIC=false LIBITM=false + LIBSANITIZER=false # reset target flags (should be set in crosscreate abuild) # fixup flags. seems gcc treats CPPFLAGS as global without @@ -109,6 +111,7 @@ esac $LIBATOMIC && subpackages="$subpackages libatomic::$CTARGET_ARCH" $LIBGCC && subpackages="$subpackages libgcc::$CTARGET_ARCH" $LIBQUADMATH && subpackages="$subpackages libquadmath::$CTARGET_ARCH" +$LIBSANITIZER && subpackages="$subpackages libsanitizer::$CTARGET_ARCH" if $LIBGOMP; then depends="$depends libgomp=$_gccrel" subpackages="$subpackages libgomp::$CTARGET_ARCH" @@ -141,20 +144,21 @@ makedepends="$makedepends_build $makedepends_host" source="https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz 0002-posix_memalign.patch - 0008-s390x-muslldso.patch - 0009-microblaze-pr65649.patch - 0010-ldbl128-config.patch - 0011-m68k.patch 0012-static-pie.patch - 0016-invalid-tls-model.patch 002_all_default-relro.patch 005_all_default-as-needed.patch - 006_as-needed-gold.patch + 007_all_alpha-mieee-default.patch 011_all_default-warn-format-security.patch 012_all_default-warn-trampolines.patch 020_all_msgfmt-libstdc++-link.patch + 050_all_sanitizer-lfs.patch 051_all_libiberty-pic.patch + 076_all_match.pd-don-t-emit-label-if-not-needed.patch + 078_all_match.pd-CSE-the-dump-output-check.patch + 092_all_riscv_PR109760-gstreamer.patch + + 101-pr115836.patch 201-ada.patch 202-ibm-ldbl.patch @@ -169,27 +173,23 @@ source="https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz fix-cxxflags-passing.patch ada-shared.patch - 320-libffi-gnulinux.patch 330-gccgo-link-to-ucontext.patch 331-gccgo-use-real-off_t-type.patch 332-gccgo-sysinfo.patch - 333-gccgo-signal-ppc64.patch 334-gccgo-signal-shell.patch 335-gccgo-signal-ppc32.patch - 336-gccgo-mmap64.patch - 337-gccgo-signal-sig34.patch - 338-gccgo-syscall.patch - 339-gccgo-errstr.patch - 340-gccgo-time64-stat.patch 341-gccgo-libucontext-stack.patch - 342-gccgo-more-unwinding.patch + 342-gccgo-reflect-underscore.patch + libgo-musl-1.2.3.patch add-classic_table-support.patch gcc-5.4.0-locale.patch - backport-r267157-posix-conformant-snprintf.patch + sanitation.patch + risc-san.patch - libgo-musl-1.2.3.patch + match-split.patch + insn-split.patch " # we build out-of-tree @@ -232,7 +232,7 @@ build() { cd "$_gccdir" case "$CTARGET" in - aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64 --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419";; + aarch64*-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64";; armv5-*-*-*eabi) _arch_configure="--with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-abi=aapcs-linux";; armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6zk --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=hard --with-abi=aapcs-linux";; armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb";; @@ -241,8 +241,8 @@ build() { mips-*-*-*) _arch_configure="--with-arch=mips3 --with-mips-plt --with-abi=32"; _hash_style="sysv";; mips32el-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-abi=32"; _hash_style="sysv";; powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";; - powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no";; powerpc64le*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no";; + powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no";; i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";; i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=pentium2 --enable-cld --enable-mmx";; pentium3-*-*-*) _arch_configure="--with-arch=pentium3 --with-tune=pentium-m";; @@ -251,9 +251,6 @@ build() { case "$CTARGET_LIBC" in musl) - # musl does not support mudflap - # libmpx uses secure_getenv and struct _libc_fpstate not present in musl - _libc_configure="--disable-libmpx --disable-libmudflap --disable-libsanitizer" _symvers="--disable-symvers" export libat_cv_have_ifunc=no export ac_cv_type_off64_t=no @@ -271,6 +268,7 @@ build() { $LIBGOMP || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" $LIBATOMIC || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" $LIBITM || _bootstrap_configure="$_bootstrap_configure --disable-libitm" + $LIBSANITIZER || _bootstrap_configure="$_bootstrap_configure --disable-libsanitizer" $LIBQUADMATH || _arch_configure="$_arch_configure --disable-libquadmath" msg "Building the following:" @@ -312,13 +310,17 @@ build() { --enable-default-ssp \ --enable-cloog-backend \ --enable-languages=$_languages \ + --enable-linker-build-id \ $_arch_configure \ $_libc_configure \ $_cross_configure \ $_bootstrap_configure \ + --with-matchpd-partitions=32 \ --with-system-zlib \ --with-linker-hash-style=$_hash_style - make + make \ + STAGE1_CFLAGS="$CFLAGS" STAGE1_LDFLAGS="$LDFLAGS" \ + BOOT_CFLAGS="$CFLAGS" BOOT_LDFLAGS="$LDFLAGS" } check() { @@ -504,6 +506,29 @@ libquadmath() { mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/ } +libsanitizer() { + pkgdesc="Runtime code linting libraries for GCC" + depends= + + # https://github.com/google/sanitizers/issues/794 + # https://reviews.llvm.org/D28609 ("ported to GCC") + case $CTARGET_ARCH in + pmmx|x86|i528|armel|armhf|armv7|m68k|mips32|mips32el|ppc) + sanitizer_extras="";; + *) + sanitizer_extras="lsan tsan";; + esac + + mkdir -p "$subpkgdir"/usr/lib + for san in asan sanitizer ubsan ${sanitizer_extras}; do + mv "$pkgdir"/usr/lib/lib${san}* "$subpkgdir"/usr/lib/ + done + + mkdir -p "$subpkgdir"/$_gcclibdir/include + mv "$pkgdir"/$_gcclibdir/include/sanitizer \ + "$subpkgdir"/$_gcclibdir/include/ +} + gfortran() { pkgdesc="GNU Fortran Compiler" depends="gcc=$_gccrel libgfortran=$_gccrel" @@ -548,46 +573,42 @@ gnat() { mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ } -sha512sums="92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8 gcc-8.5.0.tar.xz +sha512sums="ed5f2f4c6ed2c796fcf2c93707159e9dbd3ddb1ba063d549804dd68cdabbb6d550985ae1c8465ae9a336cfe29274a6eb0f42e21924360574ebd8e5d5c7c9a801 gcc-13.3.0.tar.xz 6d84354e6df96d5ea244eb3bb5f044781796b88040b11c78fb6ee509e5aac19d46e0e92ca836e98e6495d9751f52439833b748efc419e4f5d5301fb549c4dcc9 0002-posix_memalign.patch -7f434a7350c9b06d0ae7cc18a569d813238483afa34b0801d112844a0dfe6164ae36b0416955fd4da7a8caa54672247f319a8ec7ce4b6a97a5f4e17ec083112a 0008-s390x-muslldso.patch -b8207c1be82b20fdad2596bb0a60469db52257456d0925bacf48b44899f4c6ece93c501347e1ffe92fd372c30f90d05a6d8d8078876abf4cf2deae3dbb1a1f58 0009-microblaze-pr65649.patch -66085c5555e6b91b6874d1782d5a1dc0ab1792889f9400f48cde9483f82b51b9e3a5de1efbba21a19fc5e664334f2188d0c2bc988d42335efa26118b3c85cc7f 0010-ldbl128-config.patch -cd3ba928121e8578ba9f73215e4d81ee3ebbab33e00b04cdfd62b46d21f9536297ae12dc021aad6e56f3b28d9d544727331bbe6db1e3438d7b9545b2c3250906 0011-m68k.patch -9fbfd2213b445a82ae00c72412a8f87a2d0afc8614168698a12dfc6ad874b525de7f15b3eb2d54b7737d0a9d90f18f134e7cdbf4259e32d9a631c3795b8d44be 0012-static-pie.patch -dfedf48829cff22ee836ece743de20ad467b40e86c8f4034326a4c32df35b10affd69d6b9ab3382df2871a99ad0c2e99d4342183b59f9bca7f15112eed58ec8d 0016-invalid-tls-model.patch -625c02e03c2f1db04da12cc6a086ec85790a031a13df36486243fd9569cd17f7c8ebeec91ac16cc1f87c3ec1ffe4c421153e98a9aeb5eea35943a6f015d81f50 002_all_default-relro.patch -02b725b220e540077efef741e9d457f9e004fe53ae642a138e214875d076a60f7c2f27de0ed9a4225db2030fc9c3d2c5b0414c895b9eec0f5f48fad70e2fb029 005_all_default-as-needed.patch -9073a5ae46e46a44a77adba183db301194a3666afca07a8444a4c10dc2c087dd41d6065a051b1024454bb37bee06fabf4361e5fae62dab8d4c9620520924f606 006_as-needed-gold.patch -622fdbcbbf2feb86bd839af627ec3613c6d2c77b14d37d31165b19f73f45b3663a203efff5d224f194edb15eb62d3d5885e32f85d1b584f071e580fea4e12664 011_all_default-warn-format-security.patch -03cddde56b2a355f08716c8efcd5616606d42946c87831d77d55570636c46e351e81a04c7dabd3466d9406c40476bead857cfe1eceaf7f0d86dd2757c8cf4a9e 012_all_default-warn-trampolines.patch -d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch -0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch -a3702c1f642412413d0ffc69f6439a3e101b2b56c16610f94c66556c88e52d01b0b6d1e57bfc5a972668f976c02fbf2fc22bcf707b000867e44744d9eb7b7566 201-ada.patch -152639228a189b211df660b5b7543e3744cf136e80fed7f1ac37a3bc1b692fba3431a0d62337e769ee8f323188acdf11092cb1b2ef5c75fafee9628d13bc4163 202-ibm-ldbl.patch -98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch -9fc745619d2628ec21eed1c8de78780ca8960a0ca41f725991202b212bdeb31eb803d9ea2ad18e0278620c2422a99f253f4d2a20d3a354bf88b87a55fc966d9d 206-arm-unwind-functionise.patch -d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch -600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch -dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch -fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch -35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch -3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch -f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch -8efd028febb962ae100be32f72f7450c4f77d67ad96a5f47072136cdf47043f9d54835a87c7ab5aaa0fa0108c4c7a97ba2d7732d5aaf2efce70fe1f7e1c39d6e 330-gccgo-link-to-ucontext.patch -24c8708f64b9b7945b3f07e9bbecf17ab8bcde2524f49cbd694ca2f6146ccc3f13bb027db282f326525ea79d50a2868fa3fa2b0d688a914b5ea77bbfd7e5cbe4 331-gccgo-use-real-off_t-type.patch -31f9d85faa8648d140834646fc2bc7733eb362bfb87d696c5f375f9c0a3e4c3df41708a9a37c49bc0757513a7704976b9a5e21aa5c2de4b380d47d7e2cbde214 332-gccgo-sysinfo.patch -ef6ff46d571814ce2f6db549bfb9b9f5cc55d46085b197c36627a72e4f355fcbeb41d04fabd3029f3bc536fc48155fe3feab58a7a6ece9dcd19409ea44c17b0b 333-gccgo-signal-ppc64.patch -ab7a19d2702d232c9c1242fbdf9bd782e195d94104c0278e3b9ce435060a169094525ca53b615b3a9e62786db77bba836ecd495d58b544df474b13348432c200 334-gccgo-signal-shell.patch -e755072a3c71ada6cde354dd258fae029919e1116048068368d38411ca28a6ad8856702498d6667b0dcbb1d09fcb3fd66669aa79739a5e574a9cd490bd92ce90 335-gccgo-signal-ppc32.patch -de0cc0f9356c9ee5ea7b0f954441b59115f4a8f8f63573d0c17b6537e6f37641cf137531b496fc192d38035c2c4ba8175d36cbd7da15cbfcf8dc18c049c0f111 336-gccgo-mmap64.patch -c2916948b028e1e990e1953875b884561c0f8dd105c1ec03073795df9a47ec2c627cbc95ca0ec98ab9177bf2b7c8458bf3fd09f780fa6c301995846f6317e366 337-gccgo-signal-sig34.patch -0bdf592ec8444c6e253f1a7626b4e618b2e18e6d0b5a4548f90903f9de80a7cf3ea536750c2743f436a05faa1e7b65e52a391da9732dce51c4b00e23853e5365 338-gccgo-syscall.patch -b32d496a3a04c2357200b75dbf7f667fb57bf5af4f0c68926bc58f6600e4f23caa48aad2eaf073f1408168cacf27e8f11a6062c65bf5bb67458eedef698871d4 339-gccgo-errstr.patch -4db4a00dff1d3cb3ecbc713659316782ac839478ff1fd7166cfa64a2c7cee0ba2a0d3fa23cb858af7d8f59a6ac2bdf40e63a45c307b89eefe2a4e888707f615b 340-gccgo-time64-stat.patch -71ee2ce239c62bedc90d0688a40e3e381e641ba9e322c6319c2f6a4362c17d60a232dcb32fd08f5ff9ed5c058c0a010362197839cb391d85bc4a6446943ad4b2 341-gccgo-libucontext-stack.patch -7bb23955ddd67319c2aaae10bb1545ea299b96e54f429423fa6db4ff9af119312f3c8a876b3912c8811403543fabb50e7c7b94b0d2145a4f4e6ef1959d456128 342-gccgo-more-unwinding.patch +f0bda72a54d2a81c4e7b27cc06347409d9e3be708d51e280ad1130c7e1d2db6e0c4e7b2dd3c606f6a4ec78c1eb293a26f76dda8210124d9f928f351d46be7d7e 0012-static-pie.patch +2cb8f3773897e34d2d194076396d7fc6413d28b5f0546d092f83c22f229936f7e329b3eaaf86a6d22e0f609ae2b66e82b656685e9e9a51ed2f89e9efaa5e9534 002_all_default-relro.patch +879c377122af10a4e444ab67cfe81927cc4e574c63d0a619c20f094e87218ab7961dcc96d93830891af688182a5feafeb787d79b58a5125cf20258baa13c94d0 005_all_default-as-needed.patch +b0a6117aad4f72d62777004fbb0a93cb0ae613d44846162556535f1751be998e6cde61329451026bc539d119ae2d54b42eaff54b92f2f68cb14c2b1384cbc928 007_all_alpha-mieee-default.patch +abf28cf8495ce63eeeb9704a83e889c9b7819cc0394807ba966fe57dadc5f1e04478edc6d28af293330286dc70af4b513376bf53ddf705810c3b721b5089c511 011_all_default-warn-format-security.patch +6fa1f7bb936f8c634579689aa5b36a23a89e1f065514b1c946a410cd0057744135db833bb5cbb86a15738ebac787b5803bba0a2d4d0da628dfbd23d9bcd577b4 012_all_default-warn-trampolines.patch +f20ba1e7a6febf099a79c4b4251e15331e6de13531b787c2e2d14c908e3ff1e0e34a79824e7f6470331adf9c01c3302813dfbd508fec021a7f86f833c806806b 020_all_msgfmt-libstdc++-link.patch +8cadf32d4f9e58ae174640be419478ee709702c1df3faffb2cfc4e48418260b8bbadf6c18fbaf43cc32aacb889f090045265c3f51e9366208837a46cbf68ab6e 050_all_sanitizer-lfs.patch +ec0a6613a21bd8352b73f693ee6055e81e4ef056b8b2b9916aa075649477b0c3f855fcfb37aa53301a559f05e5cfa41661c274f3a3c6cabb44a7adecf239473a 051_all_libiberty-pic.patch +0d505f08842bd75c686b18f50bc988078dce07b69ef8b6caa53e5e3a93e39527ab16f1d32a7f1f132279c3ac430a10b4e1aad7fc0bc2b6560fc33a1b65f6c109 076_all_match.pd-don-t-emit-label-if-not-needed.patch +b3cb3cad951c518b399f4fd0d4be07089ca1abf7a3271aaac4c25d8cd34a9b6d2bd6fa68164cf7f3967813f019db8dcf0ae8746f94ac6a4b85209c4012a8936f 078_all_match.pd-CSE-the-dump-output-check.patch +ce44d0bfa646394114c6e77f70da26ac4879cb2198a3bc4108ce080b7a247d6c0b0213c02b9bacbcd0b477a8e22a831a7dae3691f4f0462eaddecb457cd9eee6 092_all_riscv_PR109760-gstreamer.patch +eade22edbb70b57b06349bbf2f39def90bbe4e3eeb0d121dd2e07e1deaf73407e5247698d05660de67072672534461442b45e314d53daf691a10275f60fdc51c 101-pr115836.patch +ad971ebaa77907a26e4c268feb052d06b2df1530ed39b9c684a49bdf1024ad6b439bb8b28a957327635c83a97dcca3cee0875cfe9836f8fc3e06cdb137281e42 201-ada.patch +80748e1f6a287a0f645eecac54c5181156a20ab0facc826e5b1768fec87df9d4e9fd44362370dbbe5f78b25c3bba3a20a6acfbe6ce25ddd99bd6d085bfc6c112 202-ibm-ldbl.patch +ae30090390e3604e1e508edb36bc3a01283fe28657d63ae6d6238dd9f55cce587552c5a482425673aff0d0ccc9d99a649e24b552573e7b2ea29063fc5c0aa497 205-nopie.patch +ae2c2fe6abe678e34d60cb05e42c60d6b499f206d965066ee8bd26f9cabfbb69cab0f0061731d21b96a5f2ad67bebc4b49dbe39cbdd01dce8b61f829f4b3f708 206-arm-unwind-functionise.patch +3c66bbcde298cdc188bb68dfe16e074bda7355c2307b8263c75cb250e244dd604faf2e4bf782f8f39160892b5a433996615fd0597ce5bd20bd5c1b766bf12d2d libgcc-always-build-gcceh.a.patch +40322bba8b3bfc26f0cd92bc9849c59560a6736dd22941bde4b6a1d9846e798d5acfe4fdc3200aafabbf6168349b08070a9e31d41967a48e84dbc608723cdcf3 gcc-4.9-musl-fortify.patch +7800fd0e1bcb33779c673c2effa8a61c4288979fba7d9dd215777ebec4d2cce5fe42fe72dcbce078bbc2268db58a25b42fc1a7327c1156e2db6a694b9303dbec gcc-6.1-musl-libssp.patch +d8a184ff286516f49629fe97423b5584a7799069de2c3f0d45c2ff25be8e6e8706f9ca0e811f760cd3e0089bd82657091a2fa13139f4c3cc7d5d5dd25f82d5e8 gcc-pure64.patch +eb1d27d501e1c5099bbc476cda27738a13a3c27185d2e4f46c770dda30b7b0e774b58a62afad8ead44298296ce60b409fbab2da08bf114a66fa269f02d4132d7 fix-cxxflags-passing.patch +16d66b34de05a220d43ba0327bc75aabc107b36c629efa4b2f14662f6b1c805d8123aeb0a92e7e908c059b3d910acc2e7e1b50c7ac34a004d8a20b9a140427f4 ada-shared.patch +ce69e4cceb212e7b8e9af72a97b336dc3f38d7a30fc0c656a56ab3b431679a07efd746fd1cc39f913934f603c83085dd9e72a1b516636ba85f43b2cd96568404 330-gccgo-link-to-ucontext.patch +25223ce10dbeb6725834fbd2ea57752c9d7b96f9c1e0d1f46927c7b5236c1bed1361b28869e9830ad39818788e491609ef9a79e9255a565a2b6fb3c56c3bc48d 331-gccgo-use-real-off_t-type.patch +2b833b6bcba8eb8914499f3432679635eb1e186f0ab1b0cd2b0012edfe6c296f89c05097476817c9947a0f17ebe031cc1708335e6baa8d3d211116e10cbc7865 332-gccgo-sysinfo.patch +dc03c7b660f0142aa16e78e4e50581c883f6632f4794131f1131e0dc8fd500ba5d6a0046a36dc621c618a558b69e426a9bd1baea63faa5f64d7663915c062bbe 334-gccgo-signal-shell.patch +00f43d3d3f23c106ff020699397e82cf63ef30820e74ff3f7a82bcf55e5245011bb4a8ef84f0704287201ec8138692c548d4b6dae2d3e2aaf56e40d57ca2873d 335-gccgo-signal-ppc32.patch +3cbe5e879902a73121b22d903be605c7100e607864b0e305d6825a4083502fbe94be9a4166fb833b28e5d18cd7548f317719e28e3579194ea3e1b626450c943b 341-gccgo-libucontext-stack.patch +76d141a9e245595eab66cc4ddbfda57330790e04960de5d1c4e1e97efb52291d18087840f7494c0310afc3f093e1fad8c6070928f489c97201f32782f67559fd 342-gccgo-reflect-underscore.patch +fa59b0fb081d97f8f63506b8793699588a95c602b5d468140eb1e80456597e52e1cc45dc0b234ac8e60e2b0cd606d94d111c8b0ae64c0a2be1bc1b8a184ceb93 libgo-musl-1.2.3.patch 1860593584f629d24d5b6db14b0a3412e9f93449b663aaa4981301a0923db0159314905e694f27366fbfef72dce06636ab6df86862b7e9e9564847e03bee82c1 add-classic_table-support.patch -67a75a94fdba69de96b98dbc2978a50cb197857c464b81f7c956176da7066b3be937e40cb15e0870fc1e7382d662c5101bcd18cf457fc4112de41802042b51c4 gcc-5.4.0-locale.patch -65a4d8bf9cefcbc79e86015ef4376b2794492d6cae77065359b35bb4ed630dde6256982cd5e43ed837cbbdab366ea376da9f1c83f80ddf6dc53ab017b378c3cd backport-r267157-posix-conformant-snprintf.patch -fa59b0fb081d97f8f63506b8793699588a95c602b5d468140eb1e80456597e52e1cc45dc0b234ac8e60e2b0cd606d94d111c8b0ae64c0a2be1bc1b8a184ceb93 libgo-musl-1.2.3.patch" +a09b3181002798d1b17b8374eba6bec18e67d4d4f30677311c330b599e231e97cf02c1b9b79c0829952f5027016e01146743b665b19558ed2693c60a567823fb gcc-5.4.0-locale.patch +7fa3f66a9147e13091da7fdf15197aca85e0500756392e1c75eb2e2f77dce6d148277aea2a8cb463770f7b46424a94cb5f60514529a565b4ebb23236dcc7c366 sanitation.patch +f167da2df3c386dd2f4d39e1fef0964d0fbf7ba35b9432675ada61a7fe3213d4825b579ebb577f46b28c5556b2ada78ed6b7b8b6471b9d9a0684514a73650595 risc-san.patch +ff6159633f04d26eadc79895dc24ccb46671a04fdc728cbbac86964a14ce17e2e51cd7668947dfe06b9168bb9b8575a80955012e5f51295ea02f4f3169e07541 match-split.patch +ee626cbe4bdda5b868980c86ca066d33167d06517db676e43d0719c4ad7d11e99b3a0151927f15c93ab89f6c76dd12bd48d402d25771fa3fd175273248824eda insn-split.patch" diff --git a/system/gcc/ada-shared.patch b/system/gcc/ada-shared.patch index 6f1c16aff..22a7dc256 100644 --- a/system/gcc/ada-shared.patch +++ b/system/gcc/ada-shared.patch @@ -2,10 +2,10 @@ Index: b/gcc/ada/link.c =================================================================== --- a/gcc/ada/link.c +++ b/gcc/ada/link.c -@@ -105,9 +105,9 @@ - +@@ -107,9 +107,9 @@ #elif defined (__FreeBSD__) const char *__gnat_object_file_option = "-Wl,@"; + const char *__gnat_run_path_option = ""; -const char *__gnat_run_path_option = "-Wl,-rpath,"; -char __gnat_shared_libgnat_default = STATIC; -char __gnat_shared_libgcc_default = STATIC; @@ -15,10 +15,10 @@ Index: b/gcc/ada/link.c int __gnat_link_max = 8192; unsigned char __gnat_objlist_file_supported = 1; const char *__gnat_object_library_extension = ".a"; -@@ -127,9 +127,9 @@ - +@@ -129,9 +129,9 @@ #elif defined (linux) || defined(__GLIBC__) const char *__gnat_object_file_option = "-Wl,@"; + const char *__gnat_run_path_option = ""; -const char *__gnat_run_path_option = "-Wl,-rpath,"; -char __gnat_shared_libgnat_default = STATIC; -char __gnat_shared_libgcc_default = STATIC; diff --git a/system/gcc/backport-r267157-posix-conformant-snprintf.patch b/system/gcc/backport-r267157-posix-conformant-snprintf.patch deleted file mode 100644 index adedf0ce9..000000000 --- a/system/gcc/backport-r267157-posix-conformant-snprintf.patch +++ /dev/null @@ -1,80 +0,0 @@ -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87096 - -GCC's "optimised" snprintf is not POSIX conformant - ---- trunk/gcc/gimple-ssa-sprintf.c 2018/12/07 17:02:11 266897 -+++ trunk/gcc/gimple-ssa-sprintf.c 2018/12/14 22:38:08 267157 -@@ -3899,6 +3899,7 @@ - /* True when the destination size is constant as opposed to the lower - or upper bound of a range. */ - bool dstsize_cst_p = true; -+ bool posunder4k = true; - - if (idx_dstsize == HOST_WIDE_INT_M1U) - { -@@ -3931,11 +3932,20 @@ - "specified bound %wu exceeds maximum object size " - "%wu", - dstsize, target_size_max () / 2); -+ /* POSIX requires snprintf to fail if DSTSIZE is greater -+ than INT_MAX. Even though not all POSIX implementations -+ conform to the requirement, avoid folding in this case. */ -+ posunder4k = false; - } - else if (dstsize > target_int_max ()) -- warning_at (gimple_location (info.callstmt), info.warnopt (), -- "specified bound %wu exceeds %<INT_MAX%>", -- dstsize); -+ { -+ warning_at (gimple_location (info.callstmt), info.warnopt (), -+ "specified bound %wu exceeds %<INT_MAX%>", -+ dstsize); -+ /* POSIX requires snprintf to fail if DSTSIZE is greater -+ than INT_MAX. Avoid folding in that case. */ -+ posunder4k = false; -+ } - } - else if (TREE_CODE (size) == SSA_NAME) - { -@@ -3944,9 +3954,29 @@ - if (vr->type == VR_RANGE - && TREE_CODE (vr->min) == INTEGER_CST - && TREE_CODE (vr->max) == INTEGER_CST) -- dstsize = (warn_level < 2 -- ? TREE_INT_CST_LOW (vr->max) -- : TREE_INT_CST_LOW (vr->min)); -+ { -+ unsigned HOST_WIDE_INT minsize = TREE_INT_CST_LOW (vr->min); -+ unsigned HOST_WIDE_INT maxsize = TREE_INT_CST_LOW (vr->max); -+ dstsize = warn_level < 2 ? maxsize : minsize; -+ -+ if (minsize > target_int_max ()) -+ warning_at (gimple_location (info.callstmt), info.warnopt (), -+ "specified bound range [%wu, %wu] exceeds " -+ "%<INT_MAX%>", -+ minsize, maxsize); -+ -+ /* POSIX requires snprintf to fail if DSTSIZE is greater -+ than INT_MAX. Avoid folding if that's possible. */ -+ if (maxsize > target_int_max ()) -+ posunder4k = false; -+ } -+ else if (vr->type == VR_VARYING) -+ { -+ /* POSIX requires snprintf to fail if DSTSIZE is greater -+ than INT_MAX. Since SIZE's range is unknown, avoid -+ folding. */ -+ posunder4k = false; -+ } - - /* The destination size is not constant. If the function is - bounded (e.g., snprintf) a lower bound of zero doesn't -@@ -4033,7 +4073,7 @@ - the call. Avoid this optimization when -frounding-math is in effect - and the format string contains a floating point directive. */ - bool call_removed = false; -- if (success && optimize > 0) -+ if (!posunder4k && success && optimize > 0) - { - /* Save a copy of the iterator pointing at the call. The iterator - may change to point past the call in try_substitute_return_value diff --git a/system/gcc/fix-cxxflags-passing.patch b/system/gcc/fix-cxxflags-passing.patch index 8eb1de77d..ec98ba275 100644 --- a/system/gcc/fix-cxxflags-passing.patch +++ b/system/gcc/fix-cxxflags-passing.patch @@ -1,6 +1,6 @@ --- gcc-4.8.1/Makefile.in.orig +++ gcc-4.8.1/Makefile.in -@@ -169,6 +169,7 @@ +@@ -178,6 +178,7 @@ # built for the build system to override those in BASE_FLAGS_TO_PASSS. EXTRA_BUILD_FLAGS = \ CFLAGS="$(CFLAGS_FOR_BUILD)" \ diff --git a/system/gcc/gcc-4.9-musl-fortify.patch b/system/gcc/gcc-4.9-musl-fortify.patch index daae954c8..fba37f257 100644 --- a/system/gcc/gcc-4.9-musl-fortify.patch +++ b/system/gcc/gcc-4.9-musl-fortify.patch @@ -1,6 +1,6 @@ --- gcc-4.9.2/gcc/config/linux.h.orig 2015-03-09 13:27:13.289736710 +0000 +++ gcc-4.9.2/gcc/config/linux.h 2015-03-09 13:29:32.295625046 +0000 -@@ -146,6 +146,8 @@ +@@ -159,6 +159,8 @@ #ifdef NATIVE_SYSTEM_HEADER_DIR #define INCLUDE_DEFAULTS_MUSL_NATIVE \ diff --git a/system/gcc/gcc-5.4.0-locale.patch b/system/gcc/gcc-5.4.0-locale.patch index dca3ba9e8..e1b398b7f 100644 --- a/system/gcc/gcc-5.4.0-locale.patch +++ b/system/gcc/gcc-5.4.0-locale.patch @@ -1,7 +1,7 @@ diff --git gcc-5.4.0/libstdc++-v3/config/locale/generic/c_locale.cc.orig gcc-5.4.0/libstdc++-v3/config/locale/generic/c_locale.cc --- gcc-5.4.0/libstdc++-v3/config/locale/generic/c_locale.cc.orig +++ gcc-5.4.0/libstdc++-v3/config/locale/generic/c_locale.cc -@@ -213,9 +213,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Currently, the generic model only supports the "C" locale. // See http://gcc.gnu.org/ml/libstdc++/2003-02/msg00345.html __cloc = 0; diff --git a/system/gcc/gcc-6.1-musl-libssp.patch b/system/gcc/gcc-6.1-musl-libssp.patch index fe5c61434..05a9cf8bf 100644 --- a/system/gcc/gcc-6.1-musl-libssp.patch +++ b/system/gcc/gcc-6.1-musl-libssp.patch @@ -1,4 +1,5 @@ -Author: Timo Teräs <timo.teras@iki.fi> +Gentoo: https://bugs.gentoo.org/706210, https://bugs.gentoo.org/747346 +Alpine Author: Timo Teräs <timo.teras@iki.fi> Alpine musl package provides libssp_nonshared.a. We link to it unconditionally, as otherwise we get link failures if some objects are -fstack-protector built @@ -6,9 +7,11 @@ and final link happens with -fno-stack-protector. This seems to be the common case when bootstrapping gcc, the piepatches do not seem to fully fix the crosstoolchain and bootstrap sequence wrt. stack-protector flag usage. ---- gcc-6.1.0/gcc/gcc.c.orig -+++ gcc-6.1.0/gcc/gcc.c -@@ -870,8 +870,7 @@ +This is done by Gentoo and us (Adélie) as well. + +--- gcc-6.1.0/gcc/gcc.cc ++++ gcc-6.1.0/gcc/gcc.cc +@@ -988,8 +988,7 @@ #ifndef LINK_SSP_SPEC #ifdef TARGET_LIBC_PROVIDES_SSP diff --git a/system/gcc/gcc-pure64.patch b/system/gcc/gcc-pure64.patch index 2c350fe5a..d55c04c85 100644 --- a/system/gcc/gcc-pure64.patch +++ b/system/gcc/gcc-pure64.patch @@ -1,16 +1,8 @@ ---- ./gcc/config/i386/t-linux64.orig 2013-01-14 16:32:37.000000000 +0000 -+++ ./gcc/config/i386/t-linux64 2013-04-22 06:12:32.984439677 +0000 -@@ -34,6 +34,6 @@ - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) - MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) -+MULTILIB_OSDIRNAMES = m64=../lib -+MULTILIB_OSDIRNAMES+= m32=../lib32 - MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ---- ./gcc/config/aarch64/t-aarch64-linux.orig -+++ ./gcc/config/aarch64/t-aarch64-linux +https://bugs.gentoo.org/675954 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077 + +--- a/gcc/config/aarch64/t-aarch64-linux ++++ b/gcc/config/aarch64/t-aarch64-linux @@ -22,7 +22,7 @@ LIB1ASMFUNCS = _aarch64_sync_cache_range @@ -19,19 +11,21 @@ +MULTILIB_OSDIRNAMES = mabi.lp64=../lib MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) - MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 ---- ./gcc/config/s390/t-linux64.orig -+++ ./gcc/config/s390/t-linux64 -@@ -7,5 +7,5 @@ - MULTILIB_OPTIONS = m64/m31 - MULTILIB_DIRNAMES = 64 32 --MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) --MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) + MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) +--- a/gcc/config/i386/t-linux64 ++++ b/gcc/config/i386/t-linux64 +@@ -33,6 +33,6 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) +-MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) +MULTILIB_OSDIRNAMES = m64=../lib +MULTILIB_OSDIRNAMES+= m32=../lib32 - ---- ./gcc/config/rs6000/t-linux.orig -+++ ./gcc/config/rs6000/t-linux ++MULTILIB_OSDIRNAMES+= mx32=../libx32 +--- a/gcc/config/rs6000/t-linux ++++ b/gcc/config/rs6000/t-linux @@ -2,7 +2,8 @@ # or soft-float. ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))) @@ -40,9 +34,9 @@ +MULTILIB_OSDIRNAMES := m64=../lib +MULTILIB_OSDIRNAMES += m32=../lib32 else - ifneq (,$(findstring spe,$(target))) - MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1) -@@ -14,7 +15,8 @@ + MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu) + endif +@@ -10,7 +11,8 @@ MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME)) endif ifneq (,$(findstring powerpc64le,$(target))) @@ -52,8 +46,8 @@ endif endif ---- ./gcc/config/rs6000/t-linux64.orig -+++ ./gcc/config/rs6000/t-linux64 +--- a/gcc/config/rs6000/t-linux64 ++++ b/gcc/config/rs6000/t-linux64 @@ -28,8 +28,8 @@ MULTILIB_OPTIONS := m64/m32 MULTILIB_DIRNAMES := 64 32 @@ -65,8 +59,8 @@ rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c $(COMPILE) $< ---- ./gcc/config/rs6000/t-linux64bele.orig -+++ ./gcc/config/rs6000/t-linux64bele +--- a/gcc/config/rs6000/t-linux64bele ++++ b/gcc/config/rs6000/t-linux64bele @@ -2,6 +2,6 @@ MULTILIB_OPTIONS += mlittle @@ -76,8 +70,8 @@ +MULTILIB_OSDIRNAMES = m64=../lib +MULTILIB_OSDIRNAMES+= m32=../lib32 MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN} ---- ./gcc/config/rs6000/t-linux64lebe.orig -+++ ./gcc/config/rs6000/t-linux64lebe +--- a/gcc/config/rs6000/t-linux64lebe ++++ b/gcc/config/rs6000/t-linux64lebe @@ -2,6 +2,6 @@ MULTILIB_OPTIONS += mbig diff --git a/system/gcc/insn-split.patch b/system/gcc/insn-split.patch new file mode 100644 index 000000000..3b7ce8767 --- /dev/null +++ b/system/gcc/insn-split.patch @@ -0,0 +1,1404 @@ +https://gcc.gnu.org/PR54179 +https://inbox.sourceware.org/gcc-patches/de0f7bdc-d236-4f5b-9504-d5bfb215d023@gmail.com/ + +From d63f858f41e2bb0e159d15ed8ee41bf303325ee7 Mon Sep 17 00:00:00 2001 +From: Robin Dapp <rdapp.gcc@gmail.com> +Date: Fri, 27 Oct 2023 21:04:25 +0200 +Subject: [PATCH 13/15] genemit: Split insn-emit.cc into ten files. + +After working with Sam off-list (thanks) I managed to get hppa to +build. Initially it looked as if hppa just had a very small number of +instruction patterns so we wouldn't generate all 10 output files. +However, the actual issue (which we will only hit with a low +pattern count) was with counting all the patterns vs only counting +the patterns that will be output. A wrong pattern count lead to +prematurely stopping to write output files. + +With that corrected, hppa "just works" until I hit linker errors +due to relocations - most likely unrelated: + +bin/ld: unwind-dw2-fde-dip_s.o(.data.rel.ro+0): cannot handle +R_PARISC_FPTR64 for __pthread_key_create@@GLIBC_2.34 + +Attached is v3 that has been bootstrapped and tested on x86 and power10, +aarch64 bootstrap was ok, testsuite is still running. A riscv build and +testsuite run was successful as well. + +Regards + Robin + +>From 248744c328440bff9cc339d2bf622852cbaac343 Mon Sep 17 00:00:00 2001 +From: Robin Dapp <rdapp@ventanamicro.com> +Date: Thu, 12 Oct 2023 11:23:26 +0200 +Subject: [PATCH v3] genemit: Split insn-emit.cc into several partitions. + +On riscv insn-emit.cc has grown to over 1.2 mio lines of code and +compiling it takes considerable time. +Therefore, this patch adjust genemit to create several partitions +(insn-emit-1.cc to insn-emit-n.cc). The available patterns are +written to the given files in a sequential fashion. + +Similar to match.pd a configure option --with-emitinsn-partitions=num +is introduced that makes the number of partition configurable. + +gcc/ChangeLog: + + PR bootstrap/84402 + PR target/111600 + + * Makefile.in: Handle split insn-emit.cc. + * configure: Regenerate. + * configure.ac: Add --with-insnemit-partitions. + * genemit.cc (output_peephole2_scratches): Print to file instead + of stdout. + (print_code): Ditto. + (gen_rtx_scratch): Ditto. + (gen_exp): Ditto. + (gen_emit_seq): Ditto. + (emit_c_code): Ditto. + (gen_insn): Ditto. + (gen_expand): Ditto. + (gen_split): Ditto. + (output_add_clobbers): Ditto. + (output_added_clobbers_hard_reg_p): Ditto. + (print_overload_arguments): Ditto. + (print_overload_test): Ditto. + (handle_overloaded_code_for): Ditto. + (handle_overloaded_gen): Ditto. + (print_header): New function. + (handle_arg): New function. + (main): Split output into 10 files. + * gensupport.cc (count_patterns): New function. + * gensupport.h (count_patterns): Define. + * read-md.cc (md_reader::print_md_ptr_loc): Add file argument. + * read-md.h (class md_reader): Change definition. +--- + gcc/Makefile.in | 36 ++- + gcc/configure | 24 +- + gcc/configure.ac | 13 ++ + gcc/genemit.cc | 542 +++++++++++++++++++++++++--------------------- + gcc/gensupport.cc | 55 +++++ + gcc/gensupport.h | 1 + + gcc/read-md.cc | 4 +- + gcc/read-md.h | 2 +- + 8 files changed, 422 insertions(+), 255 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 2c16b14ad0f3..b0c118e6d189 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -232,6 +232,13 @@ GIMPLE_MATCH_PD_SEQ_O = $(patsubst %, gimple-match-%.o, $(MATCH_SPLITS_SEQ)) + GENERIC_MATCH_PD_SEQ_SRC = $(patsubst %, generic-match-%.cc, $(MATCH_SPLITS_SEQ)) + GENERIC_MATCH_PD_SEQ_O = $(patsubst %, generic-match-%.o, $(MATCH_SPLITS_SEQ)) + ++# The number of splits to be made for the insn-emit files. ++NUM_INSNEMIT_SPLITS = @DEFAULT_INSNEMIT_PARTITIONS@ ++INSNEMIT_SPLITS_SEQ = $(wordlist 1,$(NUM_INSNEMIT_SPLITS),$(one_to_9999)) ++INSNEMIT_SEQ_SRC = $(patsubst %, insn-emit-%.cc, $(INSNEMIT_SPLITS_SEQ)) ++INSNEMIT_SEQ_TMP = $(patsubst %, tmp-emit-%.cc, $(INSNEMIT_SPLITS_SEQ)) ++INSNEMIT_SEQ_O = $(patsubst %, insn-emit-%.o, $(INSNEMIT_SPLITS_SEQ)) ++ + # These files are to have specific diagnostics suppressed, or are not to + # be subject to -Werror: + # flex output may yield harmless "no previous prototype" warnings +@@ -1334,7 +1341,7 @@ OBJS = \ + insn-attrtab.o \ + insn-automata.o \ + insn-dfatab.o \ +- insn-emit.o \ ++ $(INSNEMIT_SEQ_O) \ + insn-extract.o \ + insn-latencytab.o \ + insn-modes.o \ +@@ -1820,7 +1827,8 @@ TREECHECKING = @TREECHECKING@ + FULL_DRIVER_NAME=$(target_noncanonical)-gcc-$(version)$(exeext) + + MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ +- insn-output.cc insn-recog.cc insn-emit.cc insn-extract.cc insn-peep.cc \ ++ insn-output.cc insn-recog.cc $(INSNEMIT_SEQ_SRC) \ ++ insn-extract.cc insn-peep.cc \ + insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ + insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \ + tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \ +@@ -2437,11 +2445,11 @@ $(common_out_object_file): $(common_out_file) + # and compile them. + + .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \ +- insn-emit.cc insn-recog.cc insn-extract.cc insn-output.cc insn-peep.cc \ +- insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ +- insn-latencytab.cc insn-preds.cc $(GIMPLE_MATCH_PD_SEQ_SRC) \ +- $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \ +- insn-target-def.h ++ $(INSNEMIT_SEQ_SRC) insn-recog.cc insn-extract.cc insn-output.cc \ ++ insn-peep.cc insn-attr.h insn-attr-common.h insn-attrtab.cc \ ++ insn-dfatab.cc insn-latencytab.cc insn-preds.cc \ ++ $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \ ++ gimple-match-auto.h generic-match-auto.h insn-target-def.h + + # Dependencies for the md file. The first time through, we just assume + # the md file itself and the generated dependency file (in order to get +@@ -2464,7 +2472,7 @@ s-mddeps: $(md_file) $(MD_INCLUDES) build/genmddeps$(build_exeext) + simple_rtl_generated_h = insn-attr.h insn-attr-common.h insn-codes.h \ + insn-config.h insn-flags.h insn-target-def.h + +-simple_rtl_generated_c = insn-automata.cc insn-emit.cc \ ++simple_rtl_generated_c = insn-automata.cc \ + insn-extract.cc insn-output.cc \ + insn-peep.cc insn-recog.cc + +@@ -2493,8 +2501,20 @@ $(simple_generated_c:insn-%.cc=s-%): s-%: build/gen%$(build_exeext) + $(SHELL) $(srcdir)/../move-if-change tmp-$*.cc insn-$*.cc + $(STAMP) s-$* + ++# genemit splits its output into different files and doesn't write to ++# stdout. (but rather to tmp-emit-01.cc..tmp-emit-10.cc) ++$(INSNEMIT_SEQ_SRC): s-tmp-emit; @true ++s-tmp-emit: build/genemit$(build_exeext) $(MD_DEPS) insn-conditions.md ++ $(RUN_GEN) build/genemit$(build_exeext) $(md_file) insn-conditions.md \ ++ $(addprefix -O,${INSNEMIT_SEQ_TMP}) ++ $(foreach id, $(INSNEMIT_SPLITS_SEQ), \ ++ $(SHELL) $(srcdir)/../move-if-change tmp-emit-$(id).cc \ ++ insn-emit-$(id).cc;) ++ $(STAMP) s-tmp-emit ++ + # gencheck doesn't read the machine description, and the file produced + # doesn't use the insn-* convention. ++ + tree-check.h: s-check ; @true + s-check : build/gencheck$(build_exeext) + $(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h +diff --git a/gcc/configure b/gcc/configure +index cc8247037569..c98088bea90d 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -838,6 +838,7 @@ enable_gcov + enable_shared + enable_fixed_point + enable_decimal_float ++DEFAULT_INSNEMIT_PARTITIONS + DEFAULT_MATCHPD_PARTITIONS + with_float + with_cpu +@@ -967,6 +968,7 @@ enable_multilib + enable_multiarch + with_stack_clash_protection_guard_size + with_matchpd_partitions ++with_insnemit_partitions + enable___cxa_atexit + enable_decimal_float + enable_fixed_point +@@ -1837,6 +1839,9 @@ Optional Packages: + --with-matchpd-partitions=num + Set the number of partitions to make for gimple and + generic when splitting match.pd. [default=10] ++ --with-insnemit-partitions=num ++ Set the number of partitions of insn-emit.cc for ++ genemit to create. [default=10] + --with-dwarf2 force the default debug format to be DWARF 2 (or + later) + --with-specs=SPECS add SPECS to driver command-line processing +@@ -7938,6 +7943,21 @@ fi + + + ++# Specify the number of splits of insn-emit.cc to generate. ++ ++# Check whether --with-insnemit-partitions was given. ++if test "${with_insnemit_partitions+set}" = set; then : ++ withval=$with_insnemit_partitions; DEFAULT_INSNEMIT_PARTITIONS="$with_insnemit_partitions" ++else ++ DEFAULT_INSNEMIT_PARTITIONS=10 ++fi ++ ++if (test $DEFAULT_INSNEMIT_PARTITIONS -lt 1); then ++ as_fn_error $? "Invalid value $DEFAULT_INSNEMIT_PARTITIONS for --with-insnemit-partitions. Cannot be negative." "$LINENO" 5 ++fi ++ ++ ++ + # Enable __cxa_atexit for C++. + # Check whether --enable-__cxa_atexit was given. + if test "${enable___cxa_atexit+set}" = set; then : +@@ -19891,7 +19911,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 19894 "configure" ++#line 19914 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -19997,7 +20017,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 20000 "configure" ++#line 20020 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +diff --git a/gcc/configure.ac b/gcc/configure.ac +index d02ffc22a3a3..7021f95da3ee 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -956,6 +956,19 @@ fi + + AC_SUBST(DEFAULT_MATCHPD_PARTITIONS) + ++# Specify the number of splits of insn-emit.cc to generate. ++AC_ARG_WITH(insnemit-partitions, ++[AS_HELP_STRING([--with-insnemit-partitions=num], ++[Set the number of partitions of insn-emit.cc for genemit to create. [default=10]])], ++[DEFAULT_INSNEMIT_PARTITIONS="$with_insnemit_partitions"], [DEFAULT_INSNEMIT_PARTITIONS=10]) ++if (test $DEFAULT_INSNEMIT_PARTITIONS -lt 1); then ++ AC_MSG_ERROR(m4_normalize([ ++ Invalid value $DEFAULT_INSNEMIT_PARTITIONS for --with-insnemit-partitions. \ ++ Cannot be negative.])) ++fi ++ ++AC_SUBST(DEFAULT_INSNEMIT_PARTITIONS) ++ + # Enable __cxa_atexit for C++. + AC_ARG_ENABLE(__cxa_atexit, + [AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])], +diff --git a/gcc/genemit.cc b/gcc/genemit.cc +index 33c9ec05d6fc..18c95e3f6412 100644 +--- a/gcc/genemit.cc ++++ b/gcc/genemit.cc +@@ -49,29 +49,29 @@ struct clobber_ent + struct clobber_ent *next; + }; + +-static void output_peephole2_scratches (rtx); ++static void output_peephole2_scratches (rtx, FILE*); + + /* True for <X>_optab if that optab isn't allowed to fail. */ + static bool nofail_optabs[NUM_OPTABS]; + + static void +-print_code (RTX_CODE code) ++print_code (RTX_CODE code, FILE *file) + { + const char *p1; + for (p1 = GET_RTX_NAME (code); *p1; p1++) +- putchar (TOUPPER (*p1)); ++ fprintf (file, "%c", TOUPPER (*p1)); + } + + static void +-gen_rtx_scratch (rtx x, enum rtx_code subroutine_type) ++gen_rtx_scratch (rtx x, enum rtx_code subroutine_type, FILE *file) + { + if (subroutine_type == DEFINE_PEEPHOLE2) + { +- printf ("operand%d", XINT (x, 0)); ++ fprintf (file, "operand%d", XINT (x, 0)); + } + else + { +- printf ("gen_rtx_SCRATCH (%smode)", GET_MODE_NAME (GET_MODE (x))); ++ fprintf (file, "gen_rtx_SCRATCH (%smode)", GET_MODE_NAME (GET_MODE (x))); + } + } + +@@ -79,7 +79,8 @@ gen_rtx_scratch (rtx x, enum rtx_code subroutine_type) + substituting any operand references appearing within. */ + + static void +-gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) ++gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info, ++ FILE *file) + { + RTX_CODE code; + int i; +@@ -89,7 +90,7 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + + if (x == 0) + { +- printf ("NULL_RTX"); ++ fprintf (file, "NULL_RTX"); + return; + } + +@@ -103,67 +104,67 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + { + if (used[XINT (x, 0)]) + { +- printf ("copy_rtx (operand%d)", XINT (x, 0)); ++ fprintf (file, "copy_rtx (operand%d)", XINT (x, 0)); + return; + } + used[XINT (x, 0)] = 1; + } +- printf ("operand%d", XINT (x, 0)); ++ fprintf (file, "operand%d", XINT (x, 0)); + return; + + case MATCH_OP_DUP: +- printf ("gen_rtx_fmt_"); ++ fprintf (file, "gen_rtx_fmt_"); + for (i = 0; i < XVECLEN (x, 1); i++) +- printf ("e"); +- printf (" (GET_CODE (operand%d), ", XINT (x, 0)); ++ fprintf (file, "e"); ++ fprintf (file, " (GET_CODE (operand%d), ", XINT (x, 0)); + if (GET_MODE (x) == VOIDmode) +- printf ("GET_MODE (operand%d)", XINT (x, 0)); ++ fprintf (file, "GET_MODE (operand%d)", XINT (x, 0)); + else +- printf ("%smode", GET_MODE_NAME (GET_MODE (x))); ++ fprintf (file, "%smode", GET_MODE_NAME (GET_MODE (x))); + for (i = 0; i < XVECLEN (x, 1); i++) + { +- printf (",\n\t\t"); +- gen_exp (XVECEXP (x, 1, i), subroutine_type, used, info); ++ fprintf (file, ",\n\t\t"); ++ gen_exp (XVECEXP (x, 1, i), subroutine_type, used, info, file); + } +- printf (")"); ++ fprintf (file, ")"); + return; + + case MATCH_OPERATOR: +- printf ("gen_rtx_fmt_"); ++ fprintf (file, "gen_rtx_fmt_"); + for (i = 0; i < XVECLEN (x, 2); i++) +- printf ("e"); +- printf (" (GET_CODE (operand%d)", XINT (x, 0)); +- printf (", %smode", GET_MODE_NAME (GET_MODE (x))); ++ fprintf (file, "e"); ++ fprintf (file, " (GET_CODE (operand%d)", XINT (x, 0)); ++ fprintf (file, ", %smode", GET_MODE_NAME (GET_MODE (x))); + for (i = 0; i < XVECLEN (x, 2); i++) + { +- printf (",\n\t\t"); +- gen_exp (XVECEXP (x, 2, i), subroutine_type, used, info); ++ fprintf (file, ",\n\t\t"); ++ gen_exp (XVECEXP (x, 2, i), subroutine_type, used, info, file); + } +- printf (")"); ++ fprintf (file, ")"); + return; + + case MATCH_PARALLEL: + case MATCH_PAR_DUP: +- printf ("operand%d", XINT (x, 0)); ++ fprintf (file, "operand%d", XINT (x, 0)); + return; + + case MATCH_SCRATCH: +- gen_rtx_scratch (x, subroutine_type); ++ gen_rtx_scratch (x, subroutine_type, file); + return; + + case PC: +- printf ("pc_rtx"); ++ fprintf (file, "pc_rtx"); + return; + case RETURN: +- printf ("ret_rtx"); ++ fprintf (file, "ret_rtx"); + return; + case SIMPLE_RETURN: +- printf ("simple_return_rtx"); ++ fprintf (file, "simple_return_rtx"); + return; + case CLOBBER: + if (REG_P (XEXP (x, 0))) + { +- printf ("gen_hard_reg_clobber (%smode, %i)", ++ fprintf (file, "gen_hard_reg_clobber (%smode, %i)", + GET_MODE_NAME (GET_MODE (XEXP (x, 0))), + REGNO (XEXP (x, 0))); + return; +@@ -172,22 +173,22 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + + case CONST_INT: + if (INTVAL (x) == 0) +- printf ("const0_rtx"); ++ fprintf (file, "const0_rtx"); + else if (INTVAL (x) == 1) +- printf ("const1_rtx"); ++ fprintf (file, "const1_rtx"); + else if (INTVAL (x) == -1) +- printf ("constm1_rtx"); ++ fprintf (file, "constm1_rtx"); + else if (-MAX_SAVED_CONST_INT <= INTVAL (x) + && INTVAL (x) <= MAX_SAVED_CONST_INT) +- printf ("const_int_rtx[MAX_SAVED_CONST_INT + (%d)]", ++ fprintf (file, "const_int_rtx[MAX_SAVED_CONST_INT + (%d)]", + (int) INTVAL (x)); + else if (INTVAL (x) == STORE_FLAG_VALUE) +- printf ("const_true_rtx"); ++ fprintf (file, "const_true_rtx"); + else + { +- printf ("GEN_INT ("); +- printf (HOST_WIDE_INT_PRINT_DEC_C, INTVAL (x)); +- printf (")"); ++ fprintf (file, "GEN_INT ("); ++ fprintf (file, HOST_WIDE_INT_PRINT_DEC_C, INTVAL (x)); ++ fprintf (file, ")"); + } + return; + +@@ -195,7 +196,7 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + /* Handle `const_double_zero' rtx. */ + if (CONST_DOUBLE_REAL_VALUE (x)->cl == rvc_zero) + { +- printf ("CONST_DOUBLE_ATOF (\"0\", %smode)", ++ fprintf (file, "CONST_DOUBLE_ATOF (\"0\", %smode)", + GET_MODE_NAME (GET_MODE (x))); + return; + } +@@ -210,12 +211,12 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + break; + } + +- printf ("gen_rtx_"); +- print_code (code); +- printf (" ("); ++ fprintf (file, "gen_rtx_"); ++ print_code (code, file); ++ fprintf (file, " ("); + if (!always_void_p (code)) + { +- printf ("%smode", GET_MODE_NAME (GET_MODE (x))); ++ fprintf (file, "%smode", GET_MODE_NAME (GET_MODE (x))); + sep = ",\n\t"; + } + +@@ -225,41 +226,41 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + { + if (fmt[i] == '0') + break; +- fputs (sep, stdout); ++ fputs (sep, file); + switch (fmt[i]) + { + case 'e': case 'u': +- gen_exp (XEXP (x, i), subroutine_type, used, info); ++ gen_exp (XEXP (x, i), subroutine_type, used, info, file); + break; + + case 'i': +- printf ("%u", XINT (x, i)); ++ fprintf (file, "%u", XINT (x, i)); + break; + + case 'r': +- printf ("%u", REGNO (x)); ++ fprintf (file, "%u", REGNO (x)); + break; + + case 'p': + /* We don't have a way of parsing polynomial offsets yet, + and hopefully never will. */ +- printf ("%d", SUBREG_BYTE (x).to_constant ()); ++ fprintf (file, "%d", SUBREG_BYTE (x).to_constant ()); + break; + + case 's': +- printf ("\"%s\"", XSTR (x, i)); ++ fprintf (file, "\"%s\"", XSTR (x, i)); + break; + + case 'E': + { + int j; +- printf ("gen_rtvec (%d", XVECLEN (x, i)); ++ fprintf (file, "gen_rtvec (%d", XVECLEN (x, i)); + for (j = 0; j < XVECLEN (x, i); j++) + { +- printf (",\n\t\t"); +- gen_exp (XVECEXP (x, i, j), subroutine_type, used, info); ++ fprintf (file, ",\n\t\t"); ++ gen_exp (XVECEXP (x, i, j), subroutine_type, used, info, file); + } +- printf (")"); ++ fprintf (file, ")"); + break; + } + +@@ -268,14 +269,14 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used, md_rtx_info *info) + } + sep = ",\n\t"; + } +- printf (")"); ++ fprintf (file, ")"); + } + + /* Output code to emit the instruction patterns in VEC, with each element + becoming a separate instruction. USED is as for gen_exp. */ + + static void +-gen_emit_seq (rtvec vec, char *used, md_rtx_info *info) ++gen_emit_seq (rtvec vec, char *used, md_rtx_info *info, FILE *file) + { + for (int i = 0, len = GET_NUM_ELEM (vec); i < len; ++i) + { +@@ -283,17 +284,17 @@ gen_emit_seq (rtvec vec, char *used, md_rtx_info *info) + rtx next = RTVEC_ELT (vec, i); + if (const char *name = get_emit_function (next)) + { +- printf (" %s (", name); +- gen_exp (next, DEFINE_EXPAND, used, info); +- printf (");\n"); ++ fprintf (file, " %s (", name); ++ gen_exp (next, DEFINE_EXPAND, used, info, file); ++ fprintf (file, ");\n"); + if (!last_p && needs_barrier_p (next)) +- printf (" emit_barrier ();"); ++ fprintf (file, " emit_barrier ();"); + } + else + { +- printf (" emit ("); +- gen_exp (next, DEFINE_EXPAND, used, info); +- printf (", %s);\n", last_p ? "false" : "true"); ++ fprintf (file, " emit ("); ++ gen_exp (next, DEFINE_EXPAND, used, info, file); ++ fprintf (file, ", %s);\n", last_p ? "false" : "true"); + } + } + } +@@ -303,27 +304,27 @@ gen_emit_seq (rtvec vec, char *used, md_rtx_info *info) + for use in error messages. */ + + static void +-emit_c_code (const char *code, bool can_fail_p, const char *name) ++emit_c_code (const char *code, bool can_fail_p, const char *name, FILE *file) + { + if (can_fail_p) +- printf ("#define FAIL return (end_sequence (), _val)\n"); ++ fprintf (file, "#define FAIL return (end_sequence (), _val)\n"); + else +- printf ("#define FAIL _Pragma (\"GCC error \\\"%s cannot FAIL\\\"\")" ++ fprintf (file, "#define FAIL _Pragma (\"GCC error \\\"%s cannot FAIL\\\"\")" + " (void)0\n", name); +- printf ("#define DONE return (_val = get_insns (), " ++ fprintf (file, "#define DONE return (_val = get_insns (), " + "end_sequence (), _val)\n"); + +- rtx_reader_ptr->print_md_ptr_loc (code); +- printf ("%s\n", code); ++ rtx_reader_ptr->print_md_ptr_loc (code, file); ++ fprintf (file, "%s\n", code); + +- printf ("#undef DONE\n"); +- printf ("#undef FAIL\n"); ++ fprintf (file, "#undef DONE\n"); ++ fprintf (file, "#undef FAIL\n"); + } + + /* Generate the `gen_...' function for a DEFINE_INSN. */ + + static void +-gen_insn (md_rtx_info *info) ++gen_insn (md_rtx_info *info, FILE *file) + { + struct pattern_stats stats; + int i; +@@ -409,7 +410,7 @@ gen_insn (md_rtx_info *info) + if (XSTR (insn, 0)[0] == 0 || XSTR (insn, 0)[0] == '*') + return; + +- printf ("/* %s:%d */\n", info->loc.filename, info->loc.lineno); ++ fprintf (file, "/* %s:%d */\n", info->loc.filename, info->loc.lineno); + + /* Find out how many operands this function has. */ + get_pattern_stats (&stats, XVEC (insn, 1)); +@@ -417,17 +418,17 @@ gen_insn (md_rtx_info *info) + fatal_at (info->loc, "match_dup operand number has no match_operand"); + + /* Output the function name and argument declarations. */ +- printf ("rtx\ngen_%s (", XSTR (insn, 0)); ++ fprintf (file, "rtx\ngen_%s (", XSTR (insn, 0)); + if (stats.num_generator_args) + for (i = 0; i < stats.num_generator_args; i++) + if (i) +- printf (",\n\trtx operand%d ATTRIBUTE_UNUSED", i); ++ fprintf (file, ",\n\trtx operand%d ATTRIBUTE_UNUSED", i); + else +- printf ("rtx operand%d ATTRIBUTE_UNUSED", i); ++ fprintf (file, "rtx operand%d ATTRIBUTE_UNUSED", i); + else +- printf ("void"); +- printf (")\n"); +- printf ("{\n"); ++ fprintf (file, "void"); ++ fprintf (file, ")\n"); ++ fprintf (file, "{\n"); + + /* Output code to construct and return the rtl for the instruction body. */ + +@@ -436,16 +437,16 @@ gen_insn (md_rtx_info *info) + char *used = (XVECLEN (insn, 1) == 1 + ? NULL + : XCNEWVEC (char, stats.num_generator_args)); +- printf (" return "); +- gen_exp (pattern, DEFINE_INSN, used, info); +- printf (";\n}\n\n"); ++ fprintf (file, " return "); ++ gen_exp (pattern, DEFINE_INSN, used, info, file); ++ fprintf (file, ";\n}\n\n"); + XDELETEVEC (used); + } + + /* Generate the `gen_...' function for a DEFINE_EXPAND. */ + + static void +-gen_expand (md_rtx_info *info) ++gen_expand (md_rtx_info *info, FILE *file) + { + struct pattern_stats stats; + int i; +@@ -466,17 +467,17 @@ gen_expand (md_rtx_info *info) + "numbers above all other operands", XSTR (expand, 0)); + + /* Output the function name and argument declarations. */ +- printf ("rtx\ngen_%s (", XSTR (expand, 0)); ++ fprintf (file, "rtx\ngen_%s (", XSTR (expand, 0)); + if (stats.num_generator_args) + for (i = 0; i < stats.num_generator_args; i++) + if (i) +- printf (",\n\trtx operand%d", i); ++ fprintf (file, ",\n\trtx operand%d", i); + else +- printf ("rtx operand%d", i); ++ fprintf (file, "rtx operand%d", i); + else +- printf ("void"); +- printf (")\n"); +- printf ("{\n"); ++ fprintf (file, "void"); ++ fprintf (file, ")\n"); ++ fprintf (file, "{\n"); + + /* If we don't have any C code to write, only one insn is being written, + and no MATCH_DUPs are present, we can just return the desired insn +@@ -485,18 +486,18 @@ gen_expand (md_rtx_info *info) + && stats.max_opno >= stats.max_dup_opno + && XVECLEN (expand, 1) == 1) + { +- printf (" return "); +- gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL, info); +- printf (";\n}\n\n"); ++ fprintf (file, " return "); ++ gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL, info, file); ++ fprintf (file, ";\n}\n\n"); + return; + } + + /* For each operand referred to only with MATCH_DUPs, + make a local variable. */ + for (i = stats.num_generator_args; i <= stats.max_dup_opno; i++) +- printf (" rtx operand%d;\n", i); +- printf (" rtx_insn *_val = 0;\n"); +- printf (" start_sequence ();\n"); ++ fprintf (file, " rtx operand%d;\n", i); ++ fprintf (file, " rtx_insn *_val = 0;\n"); ++ fprintf (file, " start_sequence ();\n"); + + /* The fourth operand of DEFINE_EXPAND is some code to be executed + before the actual construction. +@@ -506,13 +507,13 @@ gen_expand (md_rtx_info *info) + So copy the operand values there before executing it. */ + if (XSTR (expand, 3) && *XSTR (expand, 3)) + { +- printf (" {\n"); ++ fprintf (file, " {\n"); + if (stats.num_operand_vars > 0) +- printf (" rtx operands[%d];\n", stats.num_operand_vars); ++ fprintf (file, " rtx operands[%d];\n", stats.num_operand_vars); + + /* Output code to copy the arguments into `operands'. */ + for (i = 0; i < stats.num_generator_args; i++) +- printf (" operands[%d] = operand%d;\n", i, i); ++ fprintf (file, " operands[%d] = operand%d;\n", i, i); + + /* Output the special code to be executed before the sequence + is generated. */ +@@ -524,7 +525,7 @@ gen_expand (md_rtx_info *info) + if (nofail_optabs[p.op]) + can_fail_p = false; + } +- emit_c_code (XSTR (expand, 3), can_fail_p, XSTR (expand, 0)); ++ emit_c_code (XSTR (expand, 3), can_fail_p, XSTR (expand, 0), file); + + /* Output code to copy the arguments back out of `operands' + (unless we aren't going to use them at all). */ +@@ -532,29 +533,29 @@ gen_expand (md_rtx_info *info) + { + for (i = 0; i <= MAX (stats.max_opno, stats.max_dup_opno); i++) + { +- printf (" operand%d = operands[%d];\n", i, i); +- printf (" (void) operand%d;\n", i); ++ fprintf (file, " operand%d = operands[%d];\n", i, i); ++ fprintf (file, " (void) operand%d;\n", i); + } + } +- printf (" }\n"); ++ fprintf (file, " }\n"); + } + + used = XCNEWVEC (char, stats.num_operand_vars); +- gen_emit_seq (XVEC (expand, 1), used, info); ++ gen_emit_seq (XVEC (expand, 1), used, info, file); + XDELETEVEC (used); + + /* Call `get_insns' to extract the list of all the + insns emitted within this gen_... function. */ + +- printf (" _val = get_insns ();\n"); +- printf (" end_sequence ();\n"); +- printf (" return _val;\n}\n\n"); ++ fprintf (file, " _val = get_insns ();\n"); ++ fprintf (file, " end_sequence ();\n"); ++ fprintf (file, " return _val;\n}\n\n"); + } + + /* Like gen_expand, but generates insns resulting from splitting SPLIT. */ + + static void +-gen_split (md_rtx_info *info) ++gen_split (md_rtx_info *info, FILE *file) + { + struct pattern_stats stats; + int i; +@@ -580,62 +581,62 @@ gen_split (md_rtx_info *info) + /* Output the prototype, function name and argument declarations. */ + if (GET_CODE (split) == DEFINE_PEEPHOLE2) + { +- printf ("extern rtx_insn *gen_%s_%d (rtx_insn *, rtx *);\n", ++ fprintf (file, "extern rtx_insn *gen_%s_%d (rtx_insn *, rtx *);\n", + name, info->index); +- printf ("rtx_insn *\ngen_%s_%d (rtx_insn *curr_insn ATTRIBUTE_UNUSED," ++ fprintf (file, "rtx_insn *\ngen_%s_%d (rtx_insn *curr_insn ATTRIBUTE_UNUSED," + " rtx *operands%s)\n", + name, info->index, unused); + } + else + { +- printf ("extern rtx_insn *gen_split_%d (rtx_insn *, rtx *);\n", ++ fprintf (file, "extern rtx_insn *gen_split_%d (rtx_insn *, rtx *);\n", + info->index); +- printf ("rtx_insn *\ngen_split_%d " ++ fprintf (file, "rtx_insn *\ngen_split_%d " + "(rtx_insn *curr_insn ATTRIBUTE_UNUSED, rtx *operands%s)\n", + info->index, unused); + } +- printf ("{\n"); ++ fprintf (file, "{\n"); + + /* Declare all local variables. */ + for (i = 0; i < stats.num_operand_vars; i++) +- printf (" rtx operand%d;\n", i); +- printf (" rtx_insn *_val = NULL;\n"); ++ fprintf (file, " rtx operand%d;\n", i); ++ fprintf (file, " rtx_insn *_val = NULL;\n"); + + if (GET_CODE (split) == DEFINE_PEEPHOLE2) +- output_peephole2_scratches (split); ++ output_peephole2_scratches (split, file); + + const char *fn = info->loc.filename; + for (const char *p = fn; *p; p++) + if (*p == '/') + fn = p + 1; + +- printf (" if (dump_file)\n"); +- printf (" fprintf (dump_file, \"Splitting with gen_%s_%d (%s:%d)\\n\");\n", ++ fprintf (file, " if (dump_file)\n"); ++ fprintf (file, " fprintf (dump_file, \"Splitting with gen_%s_%d (%s:%d)\\n\");\n", + name, info->index, fn, info->loc.lineno); + +- printf (" start_sequence ();\n"); ++ fprintf (file, " start_sequence ();\n"); + + /* The fourth operand of DEFINE_SPLIT is some code to be executed + before the actual construction. */ + + if (XSTR (split, 3)) +- emit_c_code (XSTR (split, 3), true, name); ++ emit_c_code (XSTR (split, 3), true, name, file); + + /* Output code to copy the arguments back out of `operands' */ + for (i = 0; i < stats.num_operand_vars; i++) + { +- printf (" operand%d = operands[%d];\n", i, i); +- printf (" (void) operand%d;\n", i); ++ fprintf (file, " operand%d = operands[%d];\n", i, i); ++ fprintf (file, " (void) operand%d;\n", i); + } + +- gen_emit_seq (XVEC (split, 2), used, info); ++ gen_emit_seq (XVEC (split, 2), used, info, file); + + /* Call `get_insns' to make a list of all the + insns emitted within this gen_... function. */ + +- printf (" _val = get_insns ();\n"); +- printf (" end_sequence ();\n"); +- printf (" return _val;\n}\n\n"); ++ fprintf (file, " _val = get_insns ();\n"); ++ fprintf (file, " end_sequence ();\n"); ++ fprintf (file, " return _val;\n}\n\n"); + + free (used); + } +@@ -645,37 +646,37 @@ gen_split (md_rtx_info *info) + the end of the vector. */ + + static void +-output_add_clobbers (md_rtx_info *info) ++output_add_clobbers (md_rtx_info *info, FILE *file) + { + struct clobber_pat *clobber; + struct clobber_ent *ent; + int i; + +- printf ("\n\nvoid\nadd_clobbers (rtx pattern ATTRIBUTE_UNUSED, int insn_code_number)\n"); +- printf ("{\n"); +- printf (" switch (insn_code_number)\n"); +- printf (" {\n"); ++ fprintf (file, "\n\nvoid\nadd_clobbers (rtx pattern ATTRIBUTE_UNUSED, int insn_code_number)\n"); ++ fprintf (file, "{\n"); ++ fprintf (file, " switch (insn_code_number)\n"); ++ fprintf (file, " {\n"); + + for (clobber = clobber_list; clobber; clobber = clobber->next) + { + for (ent = clobber->insns; ent; ent = ent->next) +- printf (" case %d:\n", ent->code_number); ++ fprintf (file, " case %d:\n", ent->code_number); + + for (i = clobber->first_clobber; i < XVECLEN (clobber->pattern, 1); i++) + { +- printf (" XVECEXP (pattern, 0, %d) = ", i); ++ fprintf (file, " XVECEXP (pattern, 0, %d) = ", i); + gen_exp (XVECEXP (clobber->pattern, 1, i), +- GET_CODE (clobber->pattern), NULL, info); +- printf (";\n"); ++ GET_CODE (clobber->pattern), NULL, info, file); ++ fprintf (file, ";\n"); + } + +- printf (" break;\n\n"); ++ fprintf (file, " break;\n\n"); + } + +- printf (" default:\n"); +- printf (" gcc_unreachable ();\n"); +- printf (" }\n"); +- printf ("}\n"); ++ fprintf (file, " default:\n"); ++ fprintf (file, " gcc_unreachable ();\n"); ++ fprintf (file, " }\n"); ++ fprintf (file, "}\n"); + } + + /* Write a function, `added_clobbers_hard_reg_p' that is given an insn_code +@@ -684,16 +685,16 @@ output_add_clobbers (md_rtx_info *info) + SCRATCH. */ + + static void +-output_added_clobbers_hard_reg_p (void) ++output_added_clobbers_hard_reg_p (FILE *file) + { + struct clobber_pat *clobber; + struct clobber_ent *ent; + int clobber_p, used; + +- printf ("\n\nint\nadded_clobbers_hard_reg_p (int insn_code_number)\n"); +- printf ("{\n"); +- printf (" switch (insn_code_number)\n"); +- printf (" {\n"); ++ fprintf (file, "\n\nint\nadded_clobbers_hard_reg_p (int insn_code_number)\n"); ++ fprintf (file, "{\n"); ++ fprintf (file, " switch (insn_code_number)\n"); ++ fprintf (file, " {\n"); + + for (clobber_p = 0; clobber_p <= 1; clobber_p++) + { +@@ -702,25 +703,25 @@ output_added_clobbers_hard_reg_p (void) + if (clobber->has_hard_reg == clobber_p) + for (ent = clobber->insns; ent; ent = ent->next) + { +- printf (" case %d:\n", ent->code_number); ++ fprintf (file, " case %d:\n", ent->code_number); + used++; + } + + if (used) +- printf (" return %d;\n\n", clobber_p); ++ fprintf (file, " return %d;\n\n", clobber_p); + } + +- printf (" default:\n"); +- printf (" gcc_unreachable ();\n"); +- printf (" }\n"); +- printf ("}\n"); ++ fprintf (file, " default:\n"); ++ fprintf (file, " gcc_unreachable ();\n"); ++ fprintf (file, " }\n"); ++ fprintf (file, "}\n"); + } + + /* Generate code to invoke find_free_register () as needed for the + scratch registers used by the peephole2 pattern in SPLIT. */ + + static void +-output_peephole2_scratches (rtx split) ++output_peephole2_scratches (rtx split, FILE *file) + { + int i; + int insn_nr = 0; +@@ -745,12 +746,12 @@ output_peephole2_scratches (rtx split) + + if (first) + { +- printf (" HARD_REG_SET _regs_allocated;\n"); +- printf (" CLEAR_HARD_REG_SET (_regs_allocated);\n"); ++ fprintf (file, " HARD_REG_SET _regs_allocated;\n"); ++ fprintf (file, " CLEAR_HARD_REG_SET (_regs_allocated);\n"); + first = false; + } + +- printf (" if ((operands[%d] = peep2_find_free_register (%d, %d, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\ ++ fprintf (file, " if ((operands[%d] = peep2_find_free_register (%d, %d, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\ + return NULL;\n", + XINT (elt, 0), + insn_nr, last_insn_nr, +@@ -766,50 +767,50 @@ output_peephole2_scratches (rtx split) + /* Print "arg<N>" parameter declarations for each argument N of ONAME. */ + + static void +-print_overload_arguments (overloaded_name *oname) ++print_overload_arguments (overloaded_name *oname, FILE *file) + { + for (unsigned int i = 0; i < oname->arg_types.length (); ++i) +- printf ("%s%s arg%d", i == 0 ? "" : ", ", oname->arg_types[i], i); ++ fprintf (file, "%s%s arg%d", i == 0 ? "" : ", ", oname->arg_types[i], i); + } + + /* Print code to test whether INSTANCE should be chosen, given that + argument N of the overload is available as "arg<N>". */ + + static void +-print_overload_test (overloaded_instance *instance) ++print_overload_test (overloaded_instance *instance, FILE *file) + { + for (unsigned int i = 0; i < instance->arg_values.length (); ++i) +- printf ("%sarg%d == %s", i == 0 ? " if (" : "\n && ", ++ fprintf (file, "%sarg%d == %s", i == 0 ? " if (" : "\n && ", + i, instance->arg_values[i]); +- printf (")\n"); ++ fprintf (file, ")\n"); + } + + /* Emit a maybe_code_for_* function for ONAME. */ + + static void +-handle_overloaded_code_for (overloaded_name *oname) ++handle_overloaded_code_for (overloaded_name *oname, FILE *file) + { + /* Print the function prototype. */ +- printf ("\ninsn_code\nmaybe_code_for_%s (", oname->name); +- print_overload_arguments (oname); +- printf (")\n{\n"); ++ fprintf (file, "\ninsn_code\nmaybe_code_for_%s (", oname->name); ++ print_overload_arguments (oname, file); ++ fprintf (file, ")\n{\n"); + + /* Use a sequence of "if" statements for each instance. */ + for (overloaded_instance *instance = oname->first_instance; + instance; instance = instance->next) + { +- print_overload_test (instance); +- printf (" return CODE_FOR_%s;\n", instance->name); ++ print_overload_test (instance, file); ++ fprintf (file, " return CODE_FOR_%s;\n", instance->name); + } + + /* Return null if no match was found. */ +- printf (" return CODE_FOR_nothing;\n}\n"); ++ fprintf (file, " return CODE_FOR_nothing;\n}\n"); + } + + /* Emit a maybe_gen_* function for ONAME. */ + + static void +-handle_overloaded_gen (overloaded_name *oname) ++handle_overloaded_gen (overloaded_name *oname, FILE *file) + { + unsigned HOST_WIDE_INT seen = 0; + /* All patterns must have the same number of operands. */ +@@ -826,25 +827,25 @@ handle_overloaded_gen (overloaded_name *oname) + seen |= mask; + + /* Print the function prototype. */ +- printf ("\nrtx\nmaybe_gen_%s (", oname->name); +- print_overload_arguments (oname); ++ fprintf (file, "\nrtx\nmaybe_gen_%s (", oname->name); ++ print_overload_arguments (oname, file); + for (int i = 0; i < stats.num_generator_args; ++i) +- printf (", rtx x%d", i); +- printf (")\n{\n"); ++ fprintf (file, ", rtx x%d", i); ++ fprintf (file, ")\n{\n"); + + /* Use maybe_code_for_*, instead of duplicating the selection + logic here. */ +- printf (" insn_code code = maybe_code_for_%s (", oname->name); ++ fprintf (file, " insn_code code = maybe_code_for_%s (", oname->name); + for (unsigned int i = 0; i < oname->arg_types.length (); ++i) +- printf ("%sarg%d", i == 0 ? "" : ", ", i); +- printf (");\n" ++ fprintf (file, "%sarg%d", i == 0 ? "" : ", ", i); ++ fprintf (file, ");\n" + " if (code != CODE_FOR_nothing)\n" + " {\n" + " gcc_assert (insn_data[code].n_generator_args == %d);\n" + " return GEN_FCN (code) (", stats.num_generator_args); + for (int i = 0; i < stats.num_generator_args; ++i) +- printf ("%sx%d", i == 0 ? "" : ", ", i); +- printf (");\n" ++ fprintf (file, "%sx%d", i == 0 ? "" : ", ", i); ++ fprintf (file, ");\n" + " }\n" + " else\n" + " return NULL_RTX;\n" +@@ -852,12 +853,68 @@ handle_overloaded_gen (overloaded_name *oname) + } + } + ++void ++print_header (FILE *file) ++{ ++ fprintf (file, "/* Generated automatically by the program `genemit'\n\ ++from the machine description file `md'. */\n\n"); ++ ++ fprintf (file, "#define IN_TARGET_CODE 1\n"); ++ fprintf (file, "#include \"config.h\"\n"); ++ fprintf (file, "#include \"system.h\"\n"); ++ fprintf (file, "#include \"coretypes.h\"\n"); ++ fprintf (file, "#include \"backend.h\"\n"); ++ fprintf (file, "#include \"predict.h\"\n"); ++ fprintf (file, "#include \"tree.h\"\n"); ++ fprintf (file, "#include \"rtl.h\"\n"); ++ fprintf (file, "#include \"alias.h\"\n"); ++ fprintf (file, "#include \"varasm.h\"\n"); ++ fprintf (file, "#include \"stor-layout.h\"\n"); ++ fprintf (file, "#include \"calls.h\"\n"); ++ fprintf (file, "#include \"memmodel.h\"\n"); ++ fprintf (file, "#include \"tm_p.h\"\n"); ++ fprintf (file, "#include \"flags.h\"\n"); ++ fprintf (file, "#include \"insn-config.h\"\n"); ++ fprintf (file, "#include \"expmed.h\"\n"); ++ fprintf (file, "#include \"dojump.h\"\n"); ++ fprintf (file, "#include \"explow.h\"\n"); ++ fprintf (file, "#include \"emit-rtl.h\"\n"); ++ fprintf (file, "#include \"stmt.h\"\n"); ++ fprintf (file, "#include \"expr.h\"\n"); ++ fprintf (file, "#include \"insn-codes.h\"\n"); ++ fprintf (file, "#include \"optabs.h\"\n"); ++ fprintf (file, "#include \"dfp.h\"\n"); ++ fprintf (file, "#include \"output.h\"\n"); ++ fprintf (file, "#include \"recog.h\"\n"); ++ fprintf (file, "#include \"df.h\"\n"); ++ fprintf (file, "#include \"resource.h\"\n"); ++ fprintf (file, "#include \"reload.h\"\n"); ++ fprintf (file, "#include \"diagnostic-core.h\"\n"); ++ fprintf (file, "#include \"regs.h\"\n"); ++ fprintf (file, "#include \"tm-constrs.h\"\n"); ++ fprintf (file, "#include \"ggc.h\"\n"); ++ fprintf (file, "#include \"target.h\"\n\n"); ++} ++ ++auto_vec<const char *, 10> output_files; ++ ++static bool ++handle_arg (const char *arg) ++{ ++ if (arg[1] == 'O') ++ { ++ output_files.safe_push (&arg[2]); ++ return true; ++ } ++ return false; ++} ++ + int + main (int argc, const char **argv) + { + progname = "genemit"; + +- if (!init_rtx_reader_args (argc, argv)) ++ if (!init_rtx_reader_args_cb (argc, argv, handle_arg)) + return (FATAL_EXIT_CODE); + + #define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \ +@@ -867,86 +924,87 @@ main (int argc, const char **argv) + /* Assign sequential codes to all entries in the machine description + in parallel with the tables in insn-output.cc. */ + +- printf ("/* Generated automatically by the program `genemit'\n\ +-from the machine description file `md'. */\n\n"); ++ int npatterns = count_patterns (); ++ md_rtx_info info; ++ ++ bool to_stdout = false; ++ int npatterns_per_file = npatterns; ++ if (!output_files.is_empty ()) ++ npatterns_per_file = npatterns / output_files.length () + 1; ++ else ++ to_stdout = true; + +- printf ("#define IN_TARGET_CODE 1\n"); +- printf ("#include \"config.h\"\n"); +- printf ("#include \"system.h\"\n"); +- printf ("#include \"coretypes.h\"\n"); +- printf ("#include \"backend.h\"\n"); +- printf ("#include \"predict.h\"\n"); +- printf ("#include \"tree.h\"\n"); +- printf ("#include \"rtl.h\"\n"); +- printf ("#include \"alias.h\"\n"); +- printf ("#include \"varasm.h\"\n"); +- printf ("#include \"stor-layout.h\"\n"); +- printf ("#include \"calls.h\"\n"); +- printf ("#include \"memmodel.h\"\n"); +- printf ("#include \"tm_p.h\"\n"); +- printf ("#include \"flags.h\"\n"); +- printf ("#include \"insn-config.h\"\n"); +- printf ("#include \"expmed.h\"\n"); +- printf ("#include \"dojump.h\"\n"); +- printf ("#include \"explow.h\"\n"); +- printf ("#include \"emit-rtl.h\"\n"); +- printf ("#include \"stmt.h\"\n"); +- printf ("#include \"expr.h\"\n"); +- printf ("#include \"insn-codes.h\"\n"); +- printf ("#include \"optabs.h\"\n"); +- printf ("#include \"dfp.h\"\n"); +- printf ("#include \"output.h\"\n"); +- printf ("#include \"recog.h\"\n"); +- printf ("#include \"df.h\"\n"); +- printf ("#include \"resource.h\"\n"); +- printf ("#include \"reload.h\"\n"); +- printf ("#include \"diagnostic-core.h\"\n"); +- printf ("#include \"regs.h\"\n"); +- printf ("#include \"tm-constrs.h\"\n"); +- printf ("#include \"ggc.h\"\n"); +- printf ("#include \"target.h\"\n\n"); ++ gcc_assert (npatterns_per_file > 1); + +- /* Read the machine description. */ ++ /* Reverse so we can pop the first-added element. */ ++ output_files.reverse (); + +- md_rtx_info info; ++ int count = 0; ++ FILE *file = NULL; ++ ++ /* Read the machine description. */ + while (read_md_rtx (&info)) +- switch (GET_CODE (info.def)) +- { +- case DEFINE_INSN: +- gen_insn (&info); +- break; ++ { ++ if (count == 0 || count == npatterns_per_file) ++ { ++ bool is_last = !to_stdout && output_files.is_empty (); ++ if (file && !is_last) ++ if (fclose (file) != 0) ++ return FATAL_EXIT_CODE; + +- case DEFINE_EXPAND: +- printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno); +- gen_expand (&info); +- break; ++ if (!output_files.is_empty ()) ++ { ++ const char *const filename = output_files.pop (); ++ file = fopen (filename, "w"); ++ } ++ else if (to_stdout) ++ file = stdout; ++ else ++ break; + +- case DEFINE_SPLIT: +- printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno); +- gen_split (&info); +- break; ++ print_header (file); ++ count = 0; ++ } + +- case DEFINE_PEEPHOLE2: +- printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno); +- gen_split (&info); +- break; ++ switch (GET_CODE (info.def)) ++ { ++ case DEFINE_INSN: ++ gen_insn (&info, file); ++ break; + +- default: +- break; +- } ++ case DEFINE_EXPAND: ++ fprintf (file, "/* %s:%d */\n", info.loc.filename, info.loc.lineno); ++ gen_expand (&info, file); ++ break; ++ ++ case DEFINE_SPLIT: ++ fprintf (file, "/* %s:%d */\n", info.loc.filename, info.loc.lineno); ++ gen_split (&info, file); ++ break; ++ ++ case DEFINE_PEEPHOLE2: ++ fprintf (file, "/* %s:%d */\n", info.loc.filename, info.loc.lineno); ++ gen_split (&info, file); ++ break; ++ ++ default: ++ break; ++ } ++ ++ count++; ++ } + + /* Write out the routines to add CLOBBERs to a pattern and say whether they + clobber a hard reg. */ +- output_add_clobbers (&info); +- output_added_clobbers_hard_reg_p (); ++ output_add_clobbers (&info, file); ++ output_added_clobbers_hard_reg_p (file); + + for (overloaded_name *oname = rtx_reader_ptr->get_overloads (); + oname; oname = oname->next) + { +- handle_overloaded_code_for (oname); +- handle_overloaded_gen (oname); ++ handle_overloaded_code_for (oname, file); ++ handle_overloaded_gen (oname, file); + } + +- fflush (stdout); +- return (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE); ++ return (fclose (file) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE); + } +diff --git a/gcc/gensupport.cc b/gcc/gensupport.cc +index f9efc6eb7572..f941f76a739f 100644 +--- a/gcc/gensupport.cc ++++ b/gcc/gensupport.cc +@@ -2631,6 +2631,61 @@ init_rtx_reader_args (int argc, const char **argv) + return init_rtx_reader_args_cb (argc, argv, 0); + } + ++/* Count the number of patterns in all queues and return the count. */ ++int ++count_patterns () ++{ ++ int count = 0, truth = 1; ++ rtx def; ++ class queue_elem *cur = define_attr_queue; ++ while (cur) ++ { ++ def = cur->data; ++ ++ truth = maybe_eval_c_test (get_c_test (def)); ++ if (truth || !insn_elision) ++ count++; ++ cur = cur->next; ++ } ++ ++ cur = define_pred_queue; ++ while (cur) ++ { ++ def = cur->data; ++ ++ truth = maybe_eval_c_test (get_c_test (def)); ++ if (truth || !insn_elision) ++ count++; ++ cur = cur->next; ++ } ++ ++ cur = define_insn_queue; ++ truth = 1; ++ while (cur) ++ { ++ def = cur->data; ++ ++ truth = maybe_eval_c_test (get_c_test (def)); ++ if (truth || !insn_elision) ++ count++; ++ cur = cur->next; ++ } ++ ++ cur = other_queue; ++ truth = 1; ++ while (cur) ++ { ++ def = cur->data; ++ ++ truth = maybe_eval_c_test (get_c_test (def)); ++ if (truth || !insn_elision) ++ count++; ++ cur = cur->next; ++ } ++ ++ return count; ++} ++ + /* Try to read a single rtx from the file. Return true on success, + describing it in *INFO. */ + +diff --git a/gcc/gensupport.h b/gcc/gensupport.h +index a1edfbd71908..510ba19405e4 100644 +--- a/gcc/gensupport.h ++++ b/gcc/gensupport.h +@@ -129,6 +129,7 @@ extern rtx add_implicit_parallel (rtvec); + extern rtx_reader *init_rtx_reader_args_cb (int, const char **, + bool (*)(const char *)); + extern rtx_reader *init_rtx_reader_args (int, const char **); ++extern int count_patterns (); + extern bool read_md_rtx (md_rtx_info *); + extern unsigned int get_num_insn_codes (); + +diff --git a/gcc/read-md.cc b/gcc/read-md.cc +index fd38818e3a3e..46ab9065e3e4 100644 +--- a/gcc/read-md.cc ++++ b/gcc/read-md.cc +@@ -132,9 +132,9 @@ md_reader::fprint_md_ptr_loc (FILE *outf, const void *ptr) + + /* Special fprint_md_ptr_loc for writing to STDOUT. */ + void +-md_reader::print_md_ptr_loc (const void *ptr) ++md_reader::print_md_ptr_loc (const void *ptr, FILE *file) + { +- fprint_md_ptr_loc (stdout, ptr); ++ fprint_md_ptr_loc (file, ptr); + } + + /* Return a condition that satisfies both COND1 and COND2. Either string +diff --git a/gcc/read-md.h b/gcc/read-md.h +index b309c9c3deb6..2adcb58478fe 100644 +--- a/gcc/read-md.h ++++ b/gcc/read-md.h +@@ -194,7 +194,7 @@ class md_reader + const struct ptr_loc *get_md_ptr_loc (const void *ptr); + void copy_md_ptr_loc (const void *new_ptr, const void *old_ptr); + void fprint_md_ptr_loc (FILE *outf, const void *ptr); +- void print_md_ptr_loc (const void *ptr); ++ void print_md_ptr_loc (const void *ptr, FILE * = stdout); + + struct enum_type *lookup_enum_type (const char *name); + void traverse_enum_types (htab_trav callback, void *info); +-- +2.44.0 + diff --git a/system/gcc/libgcc-always-build-gcceh.a.patch b/system/gcc/libgcc-always-build-gcceh.a.patch index 74ae89730..fd19fb350 100644 --- a/system/gcc/libgcc-always-build-gcceh.a.patch +++ b/system/gcc/libgcc-always-build-gcceh.a.patch @@ -4,7 +4,7 @@ Highly inspired by: diff -durN gcc-4.6.0.orig/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in --- gcc-4.6.0.orig/libgcc/Makefile.in 2011-01-26 05:19:58.000000000 +0100 +++ gcc-4.6.0/libgcc/Makefile.in 2011-09-12 18:17:12.743718974 +0200 -@@ -772,8 +772,9 @@ +@@ -960,8 +960,9 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) endif @@ -15,7 +15,7 @@ diff -durN gcc-4.6.0.orig/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in ifneq ($(LIBUNWIND),) all: libunwind$(SHLIB_EXT) endif -@@ -950,10 +951,6 @@ +@@ -1163,10 +1164,6 @@ install-shared: $(mkinstalldirs) $(DESTDIR)$(inst_libdir) @@ -26,7 +26,7 @@ diff -durN gcc-4.6.0.orig/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in $(subst @multilib_dir@,$(MULTIDIR),$(subst \ @shlib_base_name@,libgcc_s,$(subst \ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) -@@ -968,6 +965,10 @@ +@@ -1183,6 +1180,10 @@ chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a diff --git a/system/gcc/match-split.patch b/system/gcc/match-split.patch new file mode 100644 index 000000000..afb357b1d --- /dev/null +++ b/system/gcc/match-split.patch @@ -0,0 +1,3583 @@ +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 + +From 49ed8cead428b48bf46afbbb37a4d043d00702d6 Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Fri, 5 May 2023 13:37:49 +0100 +Subject: [PATCH 04/15] genmatch: split shared code to gimple-match-exports.cc + +In preparation for automatically splitting match.pd files I split off the +non-static helper functions that are shared between the match.pd functions off +to another file. + +This file can be compiled in parallel and also allows us to later avoid +duplicate symbols errors. + +gcc/ChangeLog: + + PR bootstrap/84402 + * Makefile.in (OBJS): Add gimple-match-exports.o. + * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers. + * gimple-match-head.cc (gimple_simplify, gimple_resimplify1, + gimple_resimplify2, gimple_resimplify3, gimple_resimplify4, + gimple_resimplify5, constant_for_folding, convert_conditional_op, + maybe_resimplify_conditional_op, gimple_match_op::resimplify, + maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq, + do_valueize, try_conditional_simplification, gimple_extract, + gimple_extract_op, canonicalize_code, commutative_binary_op_p, + commutative_ternary_op_p, first_commutative_argument, + associative_binary_op_p, directly_supported_p, + get_conditional_internal_fn): Moved to gimple-match-exports.cc + * gimple-match-exports.cc: New file. + +(cherry picked from commit 27fcf994c5515e1bbf2ff03d28fd2fa927c7e7b5) +--- + gcc/Makefile.in | 4 +- + gcc/genmatch.cc | 4 +- + gcc/gimple-match-exports.cc | 1253 +++++++++++++++++++++++++++++++++++ + gcc/gimple-match-head.cc | 1192 +-------------------------------- + 4 files changed, 1260 insertions(+), 1193 deletions(-) + create mode 100644 gcc/gimple-match-exports.cc + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 06d192fa9ed8..406856acde1c 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -223,6 +223,7 @@ libgcov-util.o-warn = -Wno-error + libgcov-driver-tool.o-warn = -Wno-error + libgcov-merge-tool.o-warn = -Wno-error + gimple-match.o-warn = -Wno-unused ++gimple-match-exports.o-warn = -Wno-unused + generic-match.o-warn = -Wno-unused + dfp.o-warn = -Wno-strict-aliasing + +@@ -1312,6 +1313,7 @@ ANALYZER_OBJS = \ + # the last objects to finish building. + OBJS = \ + gimple-match.o \ ++ gimple-match-exports.o \ + generic-match.o \ + insn-attrtab.o \ + insn-automata.o \ +@@ -2663,7 +2665,7 @@ s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in + false; \ + fi + +-gimple-match.cc: s-match gimple-match-head.cc ; @true ++gimple-match.cc: s-match gimple-match-head.cc gimple-match-exports.cc ; @true + generic-match.cc: s-match generic-match-head.cc ; @true + + s-match: build/genmatch$(build_exeext) $(srcdir)/match.pd cfn-operators.pd +diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc +index a17ef8a23ed5..665d7e2106ff 100644 +--- a/gcc/genmatch.cc ++++ b/gcc/genmatch.cc +@@ -3957,7 +3957,7 @@ decision_tree::gen (FILE *f, bool gimple) + if (! has_kids_p) + { + if (gimple) +- fprintf (f, "\nstatic bool\n" ++ fprintf (f, "\nbool\n" + "gimple_simplify (gimple_match_op*, gimple_seq*,\n" + " tree (*)(tree), code_helper,\n" + " const tree"); +@@ -3980,7 +3980,7 @@ decision_tree::gen (FILE *f, bool gimple) + /* Then generate the main entry with the outermost switch and + tail-calls to the split-out functions. */ + if (gimple) +- fprintf (f, "\nstatic bool\n" ++ fprintf (f, "\nbool\n" + "gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,\n" + " tree (*valueize)(tree) ATTRIBUTE_UNUSED,\n" + " code_helper code, const tree type"); +diff --git a/gcc/gimple-match-exports.cc b/gcc/gimple-match-exports.cc +new file mode 100644 +index 000000000000..7aeb4ddb1524 +--- /dev/null ++++ b/gcc/gimple-match-exports.cc +@@ -0,0 +1,1253 @@ ++/* Helpers for the autogenerated gimple-match.cc file. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++WARRANTY; without even the implied warranty of MERCHANTABILITY or ++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GCC; see the file COPYING3. If not see ++<http://www.gnu.org/licenses/>. */ ++ ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "backend.h" ++#include "target.h" ++#include "rtl.h" ++#include "tree.h" ++#include "gimple.h" ++#include "ssa.h" ++#include "cgraph.h" ++#include "vec-perm-indices.h" ++#include "fold-const.h" ++#include "fold-const-call.h" ++#include "stor-layout.h" ++#include "gimple-iterator.h" ++#include "gimple-fold.h" ++#include "calls.h" ++#include "tree-dfa.h" ++#include "builtins.h" ++#include "gimple-match.h" ++#include "tree-pass.h" ++#include "internal-fn.h" ++#include "case-cfn-macros.h" ++#include "gimplify.h" ++#include "optabs-tree.h" ++#include "tree-eh.h" ++#include "dbgcnt.h" ++#include "tm.h" ++#include "gimple-range.h" ++#include "langhooks.h" ++ ++tree (*mprts_hook) (gimple_match_op *); ++ ++extern bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), ++ code_helper, tree, tree); ++extern bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), ++ code_helper, tree, tree, tree); ++extern bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), ++ code_helper, tree, tree, tree, tree); ++extern bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), ++ code_helper, tree, tree, tree, tree, tree); ++extern bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), ++ code_helper, tree, tree, tree, tree, tree, tree); ++ ++/* Functions that are needed by gimple-match but that are exported and used in ++ other places in the compiler. */ ++ ++tree gimple_simplify (enum tree_code, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++tree gimple_simplify (enum tree_code, tree, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++tree gimple_simplify (enum tree_code, tree, tree, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++tree gimple_simplify (combined_fn, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++tree gimple_simplify (combined_fn, tree, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++tree gimple_simplify (combined_fn, tree, tree, tree, tree, gimple_seq *, ++ tree (*)(tree)); ++ ++tree do_valueize (tree, tree (*)(tree), bool &); ++tree do_valueize (tree (*)(tree), tree); ++ ++/* Forward declarations of the private auto-generated matchers. ++ They expect valueized operands in canonical order and do not ++ perform simplification of all-constant operands. */ ++ ++static bool gimple_resimplify1 (gimple_seq *, gimple_match_op *, tree (*)(tree)); ++static bool gimple_resimplify2 (gimple_seq *, gimple_match_op *, tree (*)(tree)); ++static bool gimple_resimplify3 (gimple_seq *, gimple_match_op *, tree (*)(tree)); ++static bool gimple_resimplify4 (gimple_seq *, gimple_match_op *, tree (*)(tree)); ++static bool gimple_resimplify5 (gimple_seq *, gimple_match_op *, tree (*)(tree)); ++ ++/* Match and simplify the toplevel valueized operation THIS. ++ Replaces THIS with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++bool ++gimple_match_op::resimplify (gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ switch (num_ops) ++ { ++ case 1: ++ return gimple_resimplify1 (seq, this, valueize); ++ case 2: ++ return gimple_resimplify2 (seq, this, valueize); ++ case 3: ++ return gimple_resimplify3 (seq, this, valueize); ++ case 4: ++ return gimple_resimplify4 (seq, this, valueize); ++ case 5: ++ return gimple_resimplify5 (seq, this, valueize); ++ default: ++ gcc_unreachable (); ++ } ++} ++ ++/* Return whether T is a constant that we'll dispatch to fold to ++ evaluate fully constant expressions. */ ++ ++static inline bool ++constant_for_folding (tree t) ++{ ++ return (CONSTANT_CLASS_P (t) ++ /* The following is only interesting to string builtins. */ ++ || (TREE_CODE (t) == ADDR_EXPR ++ && TREE_CODE (TREE_OPERAND (t, 0)) == STRING_CST)); ++} ++ ++/* Try to convert conditional operation ORIG_OP into an IFN_COND_* ++ operation. Return true on success, storing the new operation in NEW_OP. */ ++ ++static bool ++convert_conditional_op (gimple_match_op *orig_op, ++ gimple_match_op *new_op) ++{ ++ internal_fn ifn; ++ if (orig_op->code.is_tree_code ()) ++ ifn = get_conditional_internal_fn ((tree_code) orig_op->code); ++ else ++ { ++ auto cfn = combined_fn (orig_op->code); ++ if (!internal_fn_p (cfn)) ++ return false; ++ ifn = get_conditional_internal_fn (as_internal_fn (cfn)); ++ } ++ if (ifn == IFN_LAST) ++ return false; ++ unsigned int num_ops = orig_op->num_ops; ++ new_op->set_op (as_combined_fn (ifn), orig_op->type, num_ops + 2); ++ new_op->ops[0] = orig_op->cond.cond; ++ for (unsigned int i = 0; i < num_ops; ++i) ++ new_op->ops[i + 1] = orig_op->ops[i]; ++ tree else_value = orig_op->cond.else_value; ++ if (!else_value) ++ else_value = targetm.preferred_else_value (ifn, orig_op->type, ++ num_ops, orig_op->ops); ++ new_op->ops[num_ops + 1] = else_value; ++ return true; ++} ++/* Helper for gimple_simplify valueizing OP using VALUEIZE and setting ++ VALUEIZED to true if valueization changed OP. */ ++ ++inline tree ++do_valueize (tree op, tree (*valueize)(tree), bool &valueized) ++{ ++ if (valueize && TREE_CODE (op) == SSA_NAME) ++ { ++ tree tem = valueize (op); ++ if (tem && tem != op) ++ { ++ op = tem; ++ valueized = true; ++ } ++ } ++ return op; ++} ++ ++/* If in GIMPLE the operation described by RES_OP should be single-rhs, ++ build a GENERIC tree for that expression and update RES_OP accordingly. */ ++ ++void ++maybe_build_generic_op (gimple_match_op *res_op) ++{ ++ tree_code code = (tree_code) res_op->code; ++ tree val; ++ switch (code) ++ { ++ case REALPART_EXPR: ++ case IMAGPART_EXPR: ++ case VIEW_CONVERT_EXPR: ++ val = build1 (code, res_op->type, res_op->ops[0]); ++ res_op->set_value (val); ++ break; ++ case BIT_FIELD_REF: ++ val = build3 (code, res_op->type, res_op->ops[0], res_op->ops[1], ++ res_op->ops[2]); ++ REF_REVERSE_STORAGE_ORDER (val) = res_op->reverse; ++ res_op->set_value (val); ++ break; ++ default:; ++ } ++} ++ ++/* Try to build RES_OP, which is known to be a call to FN. Return null ++ if the target doesn't support the function. */ ++ ++static gcall * ++build_call_internal (internal_fn fn, gimple_match_op *res_op) ++{ ++ if (direct_internal_fn_p (fn)) ++ { ++ tree_pair types = direct_internal_fn_types (fn, res_op->type, ++ res_op->ops); ++ if (!direct_internal_fn_supported_p (fn, types, OPTIMIZE_FOR_BOTH)) ++ return NULL; ++ } ++ return gimple_build_call_internal (fn, res_op->num_ops, ++ res_op->op_or_null (0), ++ res_op->op_or_null (1), ++ res_op->op_or_null (2), ++ res_op->op_or_null (3), ++ res_op->op_or_null (4)); ++} ++ ++/* RES_OP is the result of a simplification. If it is conditional, ++ try to replace it with the equivalent UNCOND form, such as an ++ IFN_COND_* call or a VEC_COND_EXPR. Also try to resimplify the ++ result of the replacement if appropriate, adding any new statements to ++ SEQ and using VALUEIZE as the valueization function. Return true if ++ this resimplification occurred and resulted in at least one change. */ ++ ++static bool ++maybe_resimplify_conditional_op (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize) (tree)) ++{ ++ if (!res_op->cond.cond) ++ return false; ++ ++ if (!res_op->cond.else_value ++ && res_op->code.is_tree_code ()) ++ { ++ /* The "else" value doesn't matter. If the "then" value is a ++ gimple value, just use it unconditionally. This isn't a ++ simplification in itself, since there was no operation to ++ build in the first place. */ ++ if (gimple_simplified_result_is_gimple_val (res_op)) ++ { ++ res_op->cond.cond = NULL_TREE; ++ return false; ++ } ++ ++ /* Likewise if the operation would not trap. */ ++ bool honor_trapv = (INTEGRAL_TYPE_P (res_op->type) ++ && TYPE_OVERFLOW_TRAPS (res_op->type)); ++ tree_code op_code = (tree_code) res_op->code; ++ bool op_could_trap; ++ ++ /* COND_EXPR will trap if, and only if, the condition ++ traps and hence we have to check this. For all other operations, we ++ don't need to consider the operands. */ ++ if (op_code == COND_EXPR) ++ op_could_trap = generic_expr_could_trap_p (res_op->ops[0]); ++ else ++ op_could_trap = operation_could_trap_p ((tree_code) res_op->code, ++ FLOAT_TYPE_P (res_op->type), ++ honor_trapv, ++ res_op->op_or_null (1)); ++ ++ if (!op_could_trap) ++ { ++ res_op->cond.cond = NULL_TREE; ++ return false; ++ } ++ } ++ ++ /* If the "then" value is a gimple value and the "else" value matters, ++ create a VEC_COND_EXPR between them, then see if it can be further ++ simplified. */ ++ gimple_match_op new_op; ++ if (res_op->cond.else_value ++ && VECTOR_TYPE_P (res_op->type) ++ && gimple_simplified_result_is_gimple_val (res_op)) ++ { ++ new_op.set_op (VEC_COND_EXPR, res_op->type, ++ res_op->cond.cond, res_op->ops[0], ++ res_op->cond.else_value); ++ *res_op = new_op; ++ return gimple_resimplify3 (seq, res_op, valueize); ++ } ++ ++ /* Otherwise try rewriting the operation as an IFN_COND_* call. ++ Again, this isn't a simplification in itself, since it's what ++ RES_OP already described. */ ++ if (convert_conditional_op (res_op, &new_op)) ++ *res_op = new_op; ++ ++ return false; ++} ++ ++/* If RES_OP is a call to a conditional internal function, try simplifying ++ the associated unconditional operation and using the result to build ++ a new conditional operation. For example, if RES_OP is: ++ ++ IFN_COND_ADD (COND, A, B, ELSE) ++ ++ try simplifying (plus A B) and using the result to build a replacement ++ for the whole IFN_COND_ADD. ++ ++ Return true if this approach led to a simplification, otherwise leave ++ RES_OP unchanged (and so suitable for other simplifications). When ++ returning true, add any new statements to SEQ and use VALUEIZE as the ++ valueization function. ++ ++ RES_OP is known to be a call to IFN. */ ++ ++static bool ++try_conditional_simplification (internal_fn ifn, gimple_match_op *res_op, ++ gimple_seq *seq, tree (*valueize) (tree)) ++{ ++ code_helper op; ++ tree_code code = conditional_internal_fn_code (ifn); ++ if (code != ERROR_MARK) ++ op = code; ++ else ++ { ++ ifn = get_unconditional_internal_fn (ifn); ++ if (ifn == IFN_LAST) ++ return false; ++ op = as_combined_fn (ifn); ++ } ++ ++ unsigned int num_ops = res_op->num_ops; ++ gimple_match_op cond_op (gimple_match_cond (res_op->ops[0], ++ res_op->ops[num_ops - 1]), ++ op, res_op->type, num_ops - 2); ++ ++ memcpy (cond_op.ops, res_op->ops + 1, (num_ops - 1) * sizeof *cond_op.ops); ++ switch (num_ops - 2) ++ { ++ case 1: ++ if (!gimple_resimplify1 (seq, &cond_op, valueize)) ++ return false; ++ break; ++ case 2: ++ if (!gimple_resimplify2 (seq, &cond_op, valueize)) ++ return false; ++ break; ++ case 3: ++ if (!gimple_resimplify3 (seq, &cond_op, valueize)) ++ return false; ++ break; ++ default: ++ gcc_unreachable (); ++ } ++ *res_op = cond_op; ++ maybe_resimplify_conditional_op (seq, res_op, valueize); ++ return true; ++} ++ ++/* Helper for the autogenerated code, valueize OP. */ ++ ++tree ++do_valueize (tree (*valueize)(tree), tree op) ++{ ++ if (valueize && TREE_CODE (op) == SSA_NAME) ++ { ++ tree tem = valueize (op); ++ if (tem) ++ return tem; ++ } ++ return op; ++} ++ ++/* Push the exploded expression described by RES_OP as a statement to ++ SEQ if necessary and return a gimple value denoting the value of the ++ expression. If RES is not NULL then the result will be always RES ++ and even gimple values are pushed to SEQ. */ ++ ++tree ++maybe_push_res_to_seq (gimple_match_op *res_op, gimple_seq *seq, tree res) ++{ ++ tree *ops = res_op->ops; ++ unsigned num_ops = res_op->num_ops; ++ ++ /* The caller should have converted conditional operations into an UNCOND ++ form and resimplified as appropriate. The conditional form only ++ survives this far if that conversion failed. */ ++ if (res_op->cond.cond) ++ return NULL_TREE; ++ ++ if (res_op->code.is_tree_code ()) ++ { ++ if (!res ++ && gimple_simplified_result_is_gimple_val (res_op)) ++ return ops[0]; ++ if (mprts_hook) ++ { ++ tree tem = mprts_hook (res_op); ++ if (tem) ++ return tem; ++ } ++ } ++ ++ if (!seq) ++ return NULL_TREE; ++ ++ /* Play safe and do not allow abnormals to be mentioned in ++ newly created statements. */ ++ for (unsigned int i = 0; i < num_ops; ++i) ++ if (TREE_CODE (ops[i]) == SSA_NAME ++ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops[i])) ++ return NULL_TREE; ++ ++ if (num_ops > 0 && COMPARISON_CLASS_P (ops[0])) ++ for (unsigned int i = 0; i < 2; ++i) ++ if (TREE_CODE (TREE_OPERAND (ops[0], i)) == SSA_NAME ++ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (TREE_OPERAND (ops[0], i))) ++ return NULL_TREE; ++ ++ if (res_op->code.is_tree_code ()) ++ { ++ auto code = tree_code (res_op->code); ++ if (!res) ++ { ++ if (gimple_in_ssa_p (cfun)) ++ res = make_ssa_name (res_op->type); ++ else ++ res = create_tmp_reg (res_op->type); ++ } ++ maybe_build_generic_op (res_op); ++ gimple *new_stmt = gimple_build_assign (res, code, ++ res_op->op_or_null (0), ++ res_op->op_or_null (1), ++ res_op->op_or_null (2)); ++ gimple_seq_add_stmt_without_update (seq, new_stmt); ++ return res; ++ } ++ else ++ { ++ gcc_assert (num_ops != 0); ++ auto fn = combined_fn (res_op->code); ++ gcall *new_stmt = NULL; ++ if (internal_fn_p (fn)) ++ { ++ /* Generate the given function if we can. */ ++ internal_fn ifn = as_internal_fn (fn); ++ new_stmt = build_call_internal (ifn, res_op); ++ if (!new_stmt) ++ return NULL_TREE; ++ } ++ else ++ { ++ /* Find the function we want to call. */ ++ tree decl = builtin_decl_implicit (as_builtin_fn (fn)); ++ if (!decl) ++ return NULL; ++ ++ /* We can't and should not emit calls to non-const functions. */ ++ if (!(flags_from_decl_or_type (decl) & ECF_CONST)) ++ return NULL; ++ ++ new_stmt = gimple_build_call (decl, num_ops, ++ res_op->op_or_null (0), ++ res_op->op_or_null (1), ++ res_op->op_or_null (2), ++ res_op->op_or_null (3), ++ res_op->op_or_null (4)); ++ } ++ if (!res) ++ { ++ if (gimple_in_ssa_p (cfun)) ++ res = make_ssa_name (res_op->type); ++ else ++ res = create_tmp_reg (res_op->type); ++ } ++ gimple_call_set_lhs (new_stmt, res); ++ gimple_seq_add_stmt_without_update (seq, new_stmt); ++ return res; ++ } ++} ++ ++ ++/* Public API overloads follow for operation being tree_code or ++ built_in_function and for one to three operands or arguments. ++ They return NULL_TREE if nothing could be simplified or ++ the resulting simplified value with parts pushed to SEQ. ++ If SEQ is NULL then if the simplification needs to create ++ new stmts it will fail. If VALUEIZE is non-NULL then all ++ SSA names will be valueized using that hook prior to ++ applying simplifications. */ ++ ++/* Unary ops. */ ++ ++tree ++gimple_simplify (enum tree_code code, tree type, ++ tree op0, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (op0)) ++ { ++ tree res = const_unop (code, type, op0); ++ if (res != NULL_TREE ++ && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, code, type, op0)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Binary ops. */ ++ ++tree ++gimple_simplify (enum tree_code code, tree type, ++ tree op0, tree op1, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (op0) && constant_for_folding (op1)) ++ { ++ tree res = const_binop (code, type, op0, op1); ++ if (res != NULL_TREE ++ && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ /* Canonicalize operand order both for matching and fallback stmt ++ generation. */ ++ if ((commutative_tree_code (code) ++ || TREE_CODE_CLASS (code) == tcc_comparison) ++ && tree_swap_operands_p (op0, op1)) ++ { ++ std::swap (op0, op1); ++ if (TREE_CODE_CLASS (code) == tcc_comparison) ++ code = swap_tree_comparison (code); ++ } ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, code, type, op0, op1)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Ternary ops. */ ++ ++tree ++gimple_simplify (enum tree_code code, tree type, ++ tree op0, tree op1, tree op2, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (op0) && constant_for_folding (op1) ++ && constant_for_folding (op2)) ++ { ++ tree res = fold_ternary/*_to_constant */ (code, type, op0, op1, op2); ++ if (res != NULL_TREE ++ && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ /* Canonicalize operand order both for matching and fallback stmt ++ generation. */ ++ if (commutative_ternary_tree_code (code) ++ && tree_swap_operands_p (op0, op1)) ++ std::swap (op0, op1); ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, code, type, op0, op1, op2)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Builtin or internal function with one argument. */ ++ ++tree ++gimple_simplify (combined_fn fn, tree type, ++ tree arg0, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (arg0)) ++ { ++ tree res = fold_const_call (fn, type, arg0); ++ if (res && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Builtin or internal function with two arguments. */ ++ ++tree ++gimple_simplify (combined_fn fn, tree type, ++ tree arg0, tree arg1, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (arg0) ++ && constant_for_folding (arg1)) ++ { ++ tree res = fold_const_call (fn, type, arg0, arg1); ++ if (res && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0, arg1)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Builtin or internal function with three arguments. */ ++ ++tree ++gimple_simplify (combined_fn fn, tree type, ++ tree arg0, tree arg1, tree arg2, ++ gimple_seq *seq, tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (arg0) ++ && constant_for_folding (arg1) ++ && constant_for_folding (arg2)) ++ { ++ tree res = fold_const_call (fn, type, arg0, arg1, arg2); ++ if (res && CONSTANT_CLASS_P (res)) ++ return res; ++ } ++ ++ gimple_match_op res_op; ++ if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0, arg1, arg2)) ++ return NULL_TREE; ++ return maybe_push_res_to_seq (&res_op, seq); ++} ++ ++/* Common subroutine of gimple_extract_op and gimple_simplify. Try to ++ describe STMT in RES_OP, returning true on success. Before recording ++ an operand, call: ++ ++ - VALUEIZE_CONDITION for a COND_EXPR condition ++ - VALUEIZE_OP for every other top-level operand ++ ++ Both routines take a tree argument and returns a tree. */ ++ ++template<typename ValueizeOp, typename ValueizeCondition> ++inline bool ++gimple_extract (gimple *stmt, gimple_match_op *res_op, ++ ValueizeOp valueize_op, ++ ValueizeCondition valueize_condition) ++{ ++ switch (gimple_code (stmt)) ++ { ++ case GIMPLE_ASSIGN: ++ { ++ enum tree_code code = gimple_assign_rhs_code (stmt); ++ tree type = TREE_TYPE (gimple_assign_lhs (stmt)); ++ switch (gimple_assign_rhs_class (stmt)) ++ { ++ case GIMPLE_SINGLE_RHS: ++ if (code == REALPART_EXPR ++ || code == IMAGPART_EXPR ++ || code == VIEW_CONVERT_EXPR) ++ { ++ tree op0 = TREE_OPERAND (gimple_assign_rhs1 (stmt), 0); ++ res_op->set_op (code, type, valueize_op (op0)); ++ return true; ++ } ++ else if (code == BIT_FIELD_REF) ++ { ++ tree rhs1 = gimple_assign_rhs1 (stmt); ++ tree op0 = valueize_op (TREE_OPERAND (rhs1, 0)); ++ res_op->set_op (code, type, op0, ++ TREE_OPERAND (rhs1, 1), ++ TREE_OPERAND (rhs1, 2), ++ REF_REVERSE_STORAGE_ORDER (rhs1)); ++ return true; ++ } ++ else if (code == SSA_NAME) ++ { ++ tree op0 = gimple_assign_rhs1 (stmt); ++ res_op->set_op (TREE_CODE (op0), type, valueize_op (op0)); ++ return true; ++ } ++ break; ++ case GIMPLE_UNARY_RHS: ++ { ++ tree rhs1 = gimple_assign_rhs1 (stmt); ++ res_op->set_op (code, type, valueize_op (rhs1)); ++ return true; ++ } ++ case GIMPLE_BINARY_RHS: ++ { ++ tree rhs1 = valueize_op (gimple_assign_rhs1 (stmt)); ++ tree rhs2 = valueize_op (gimple_assign_rhs2 (stmt)); ++ res_op->set_op (code, type, rhs1, rhs2); ++ return true; ++ } ++ case GIMPLE_TERNARY_RHS: ++ { ++ tree rhs1 = gimple_assign_rhs1 (stmt); ++ if (code == COND_EXPR && COMPARISON_CLASS_P (rhs1)) ++ rhs1 = valueize_condition (rhs1); ++ else ++ rhs1 = valueize_op (rhs1); ++ tree rhs2 = valueize_op (gimple_assign_rhs2 (stmt)); ++ tree rhs3 = valueize_op (gimple_assign_rhs3 (stmt)); ++ res_op->set_op (code, type, rhs1, rhs2, rhs3); ++ return true; ++ } ++ default: ++ gcc_unreachable (); ++ } ++ break; ++ } ++ ++ case GIMPLE_CALL: ++ /* ??? This way we can't simplify calls with side-effects. */ ++ if (gimple_call_lhs (stmt) != NULL_TREE ++ && gimple_call_num_args (stmt) >= 1 ++ && gimple_call_num_args (stmt) <= 5) ++ { ++ combined_fn cfn; ++ if (gimple_call_internal_p (stmt)) ++ cfn = as_combined_fn (gimple_call_internal_fn (stmt)); ++ else ++ { ++ tree fn = gimple_call_fn (stmt); ++ if (!fn) ++ return false; ++ ++ fn = valueize_op (fn); ++ if (TREE_CODE (fn) != ADDR_EXPR ++ || TREE_CODE (TREE_OPERAND (fn, 0)) != FUNCTION_DECL) ++ return false; ++ ++ tree decl = TREE_OPERAND (fn, 0); ++ if (DECL_BUILT_IN_CLASS (decl) != BUILT_IN_NORMAL ++ || !gimple_builtin_call_types_compatible_p (stmt, decl)) ++ return false; ++ ++ cfn = as_combined_fn (DECL_FUNCTION_CODE (decl)); ++ } ++ ++ unsigned int num_args = gimple_call_num_args (stmt); ++ res_op->set_op (cfn, TREE_TYPE (gimple_call_lhs (stmt)), num_args); ++ for (unsigned i = 0; i < num_args; ++i) ++ res_op->ops[i] = valueize_op (gimple_call_arg (stmt, i)); ++ return true; ++ } ++ break; ++ ++ case GIMPLE_COND: ++ { ++ tree lhs = valueize_op (gimple_cond_lhs (stmt)); ++ tree rhs = valueize_op (gimple_cond_rhs (stmt)); ++ res_op->set_op (gimple_cond_code (stmt), boolean_type_node, lhs, rhs); ++ return true; ++ } ++ ++ default: ++ break; ++ } ++ ++ return false; ++} ++ ++/* Try to describe STMT in RES_OP, returning true on success. ++ For GIMPLE_CONDs, describe the condition that is being tested. ++ For GIMPLE_ASSIGNs, describe the rhs of the assignment. ++ For GIMPLE_CALLs, describe the call. */ ++ ++bool ++gimple_extract_op (gimple *stmt, gimple_match_op *res_op) ++{ ++ auto nop = [](tree op) { return op; }; ++ return gimple_extract (stmt, res_op, nop, nop); ++} ++ ++/* The main STMT based simplification entry. It is used by the fold_stmt ++ and the fold_stmt_to_constant APIs. */ ++ ++bool ++gimple_simplify (gimple *stmt, gimple_match_op *res_op, gimple_seq *seq, ++ tree (*valueize)(tree), tree (*top_valueize)(tree)) ++{ ++ bool valueized = false; ++ auto valueize_op = [&](tree op) ++ { ++ return do_valueize (op, top_valueize, valueized); ++ }; ++ auto valueize_condition = [&](tree op) -> tree ++ { ++ bool cond_valueized = false; ++ tree lhs = do_valueize (TREE_OPERAND (op, 0), top_valueize, ++ cond_valueized); ++ tree rhs = do_valueize (TREE_OPERAND (op, 1), top_valueize, ++ cond_valueized); ++ gimple_match_op res_op2 (res_op->cond, TREE_CODE (op), ++ TREE_TYPE (op), lhs, rhs); ++ if ((gimple_resimplify2 (seq, &res_op2, valueize) ++ || cond_valueized) ++ && res_op2.code.is_tree_code ()) ++ { ++ auto code = tree_code (res_op2.code); ++ if (TREE_CODE_CLASS (code) == tcc_comparison) ++ { ++ valueized = true; ++ return build2 (code, TREE_TYPE (op), ++ res_op2.ops[0], res_op2.ops[1]); ++ } ++ else if (code == SSA_NAME ++ || code == INTEGER_CST ++ || code == VECTOR_CST) ++ { ++ valueized = true; ++ return res_op2.ops[0]; ++ } ++ } ++ return valueize_op (op); ++ }; ++ ++ if (!gimple_extract (stmt, res_op, valueize_op, valueize_condition)) ++ return false; ++ ++ if (res_op->code.is_internal_fn ()) ++ { ++ internal_fn ifn = internal_fn (res_op->code); ++ if (try_conditional_simplification (ifn, res_op, seq, valueize)) ++ return true; ++ } ++ ++ if (!res_op->reverse ++ && res_op->num_ops ++ && res_op->resimplify (seq, valueize)) ++ return true; ++ ++ return valueized; ++} ++ ++/* Helper that matches and simplifies the toplevel result from ++ a gimple_simplify run (where we don't want to build ++ a stmt in case it's used in in-place folding). Replaces ++ RES_OP with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++static bool ++gimple_resimplify1 (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (res_op->ops[0])) ++ { ++ tree tem = NULL_TREE; ++ if (res_op->code.is_tree_code ()) ++ { ++ auto code = tree_code (res_op->code); ++ if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) ++ && TREE_CODE_LENGTH (code) == 1) ++ tem = const_unop (code, res_op->type, res_op->ops[0]); ++ } ++ else ++ tem = fold_const_call (combined_fn (res_op->code), res_op->type, ++ res_op->ops[0]); ++ if (tem != NULL_TREE ++ && CONSTANT_CLASS_P (tem)) ++ { ++ if (TREE_OVERFLOW_P (tem)) ++ tem = drop_tree_overflow (tem); ++ res_op->set_value (tem); ++ maybe_resimplify_conditional_op (seq, res_op, valueize); ++ return true; ++ } ++ } ++ ++ /* Limit recursion, there are cases like PR80887 and others, for ++ example when value-numbering presents us with unfolded expressions ++ that we are really not prepared to handle without eventual ++ oscillation like ((_50 + 0) + 8) where _50 gets mapped to _50 ++ itself as available expression. */ ++ static unsigned depth; ++ if (depth > 10) ++ { ++ if (dump_file && (dump_flags & TDF_FOLDING)) ++ fprintf (dump_file, "Aborting expression simplification due to " ++ "deep recursion\n"); ++ return false; ++ } ++ ++ ++depth; ++ gimple_match_op res_op2 (*res_op); ++ if (gimple_simplify (&res_op2, seq, valueize, ++ res_op->code, res_op->type, res_op->ops[0])) ++ { ++ --depth; ++ *res_op = res_op2; ++ return true; ++ } ++ --depth; ++ ++ if (maybe_resimplify_conditional_op (seq, res_op, valueize)) ++ return true; ++ ++ return false; ++} ++ ++/* Helper that matches and simplifies the toplevel result from ++ a gimple_simplify run (where we don't want to build ++ a stmt in case it's used in in-place folding). Replaces ++ RES_OP with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++static bool ++gimple_resimplify2 (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (res_op->ops[0]) ++ && constant_for_folding (res_op->ops[1])) ++ { ++ tree tem = NULL_TREE; ++ if (res_op->code.is_tree_code ()) ++ { ++ auto code = tree_code (res_op->code); ++ if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) ++ && TREE_CODE_LENGTH (code) == 2) ++ tem = const_binop (code, res_op->type, ++ res_op->ops[0], res_op->ops[1]); ++ } ++ else ++ tem = fold_const_call (combined_fn (res_op->code), res_op->type, ++ res_op->ops[0], res_op->ops[1]); ++ if (tem != NULL_TREE ++ && CONSTANT_CLASS_P (tem)) ++ { ++ if (TREE_OVERFLOW_P (tem)) ++ tem = drop_tree_overflow (tem); ++ res_op->set_value (tem); ++ maybe_resimplify_conditional_op (seq, res_op, valueize); ++ return true; ++ } ++ } ++ ++ /* Canonicalize operand order. */ ++ bool canonicalized = false; ++ bool is_comparison ++ = (res_op->code.is_tree_code () ++ && TREE_CODE_CLASS (tree_code (res_op->code)) == tcc_comparison); ++ if ((is_comparison || commutative_binary_op_p (res_op->code, res_op->type)) ++ && tree_swap_operands_p (res_op->ops[0], res_op->ops[1])) ++ { ++ std::swap (res_op->ops[0], res_op->ops[1]); ++ if (is_comparison) ++ res_op->code = swap_tree_comparison (tree_code (res_op->code)); ++ canonicalized = true; ++ } ++ ++ /* Limit recursion, see gimple_resimplify1. */ ++ static unsigned depth; ++ if (depth > 10) ++ { ++ if (dump_file && (dump_flags & TDF_FOLDING)) ++ fprintf (dump_file, "Aborting expression simplification due to " ++ "deep recursion\n"); ++ return false; ++ } ++ ++ ++depth; ++ gimple_match_op res_op2 (*res_op); ++ if (gimple_simplify (&res_op2, seq, valueize, ++ res_op->code, res_op->type, ++ res_op->ops[0], res_op->ops[1])) ++ { ++ --depth; ++ *res_op = res_op2; ++ return true; ++ } ++ --depth; ++ ++ if (maybe_resimplify_conditional_op (seq, res_op, valueize)) ++ return true; ++ ++ return canonicalized; ++} ++ ++/* Helper that matches and simplifies the toplevel result from ++ a gimple_simplify run (where we don't want to build ++ a stmt in case it's used in in-place folding). Replaces ++ RES_OP with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++static bool ++gimple_resimplify3 (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize)(tree)) ++{ ++ if (constant_for_folding (res_op->ops[0]) ++ && constant_for_folding (res_op->ops[1]) ++ && constant_for_folding (res_op->ops[2])) ++ { ++ tree tem = NULL_TREE; ++ if (res_op->code.is_tree_code ()) ++ { ++ auto code = tree_code (res_op->code); ++ if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) ++ && TREE_CODE_LENGTH (code) == 3) ++ tem = fold_ternary/*_to_constant*/ (code, res_op->type, ++ res_op->ops[0], res_op->ops[1], ++ res_op->ops[2]); ++ } ++ else ++ tem = fold_const_call (combined_fn (res_op->code), res_op->type, ++ res_op->ops[0], res_op->ops[1], res_op->ops[2]); ++ if (tem != NULL_TREE ++ && CONSTANT_CLASS_P (tem)) ++ { ++ if (TREE_OVERFLOW_P (tem)) ++ tem = drop_tree_overflow (tem); ++ res_op->set_value (tem); ++ maybe_resimplify_conditional_op (seq, res_op, valueize); ++ return true; ++ } ++ } ++ ++ /* Canonicalize operand order. */ ++ bool canonicalized = false; ++ int argno = first_commutative_argument (res_op->code, res_op->type); ++ if (argno >= 0 ++ && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) ++ { ++ std::swap (res_op->ops[argno], res_op->ops[argno + 1]); ++ canonicalized = true; ++ } ++ ++ /* Limit recursion, see gimple_resimplify1. */ ++ static unsigned depth; ++ if (depth > 10) ++ { ++ if (dump_file && (dump_flags & TDF_FOLDING)) ++ fprintf (dump_file, "Aborting expression simplification due to " ++ "deep recursion\n"); ++ return false; ++ } ++ ++ ++depth; ++ gimple_match_op res_op2 (*res_op); ++ if (gimple_simplify (&res_op2, seq, valueize, ++ res_op->code, res_op->type, ++ res_op->ops[0], res_op->ops[1], res_op->ops[2])) ++ { ++ --depth; ++ *res_op = res_op2; ++ return true; ++ } ++ --depth; ++ ++ if (maybe_resimplify_conditional_op (seq, res_op, valueize)) ++ return true; ++ ++ return canonicalized; ++} ++ ++/* Helper that matches and simplifies the toplevel result from ++ a gimple_simplify run (where we don't want to build ++ a stmt in case it's used in in-place folding). Replaces ++ RES_OP with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++static bool ++gimple_resimplify4 (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize)(tree)) ++{ ++ /* No constant folding is defined for four-operand functions. */ ++ ++ /* Canonicalize operand order. */ ++ bool canonicalized = false; ++ int argno = first_commutative_argument (res_op->code, res_op->type); ++ if (argno >= 0 ++ && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) ++ { ++ std::swap (res_op->ops[argno], res_op->ops[argno + 1]); ++ canonicalized = true; ++ } ++ ++ /* Limit recursion, see gimple_resimplify1. */ ++ static unsigned depth; ++ if (depth > 10) ++ { ++ if (dump_file && (dump_flags & TDF_FOLDING)) ++ fprintf (dump_file, "Aborting expression simplification due to " ++ "deep recursion\n"); ++ return false; ++ } ++ ++ ++depth; ++ gimple_match_op res_op2 (*res_op); ++ if (gimple_simplify (&res_op2, seq, valueize, ++ res_op->code, res_op->type, ++ res_op->ops[0], res_op->ops[1], res_op->ops[2], ++ res_op->ops[3])) ++ { ++ --depth; ++ *res_op = res_op2; ++ return true; ++ } ++ --depth; ++ ++ if (maybe_resimplify_conditional_op (seq, res_op, valueize)) ++ return true; ++ ++ return canonicalized; ++} ++ ++/* Helper that matches and simplifies the toplevel result from ++ a gimple_simplify run (where we don't want to build ++ a stmt in case it's used in in-place folding). Replaces ++ RES_OP with a simplified and/or canonicalized result and ++ returns whether any change was made. */ ++ ++static bool ++gimple_resimplify5 (gimple_seq *seq, gimple_match_op *res_op, ++ tree (*valueize)(tree)) ++{ ++ /* No constant folding is defined for five-operand functions. */ ++ ++ /* Canonicalize operand order. */ ++ bool canonicalized = false; ++ int argno = first_commutative_argument (res_op->code, res_op->type); ++ if (argno >= 0 ++ && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) ++ { ++ std::swap (res_op->ops[argno], res_op->ops[argno + 1]); ++ canonicalized = true; ++ } ++ ++ gimple_match_op res_op2 (*res_op); ++ if (gimple_simplify (&res_op2, seq, valueize, ++ res_op->code, res_op->type, ++ res_op->ops[0], res_op->ops[1], res_op->ops[2], ++ res_op->ops[3], res_op->ops[4])) ++ { ++ *res_op = res_op2; ++ return true; ++ } ++ ++ if (maybe_resimplify_conditional_op (seq, res_op, valueize)) ++ return true; ++ ++ return canonicalized; ++} ++ ++/* Return a canonical form for CODE when operating on TYPE. The idea ++ is to remove redundant ways of representing the same operation so ++ that code_helpers can be hashed and compared for equality. ++ ++ The only current canonicalization is to replace built-in functions ++ with internal functions, in cases where internal-fn.def defines ++ such an internal function. ++ ++ Note that the new code_helper cannot necessarily be used in place of ++ the original code_helper. For example, the new code_helper might be ++ an internal function that the target does not support. */ ++ ++code_helper ++canonicalize_code (code_helper code, tree type) ++{ ++ if (code.is_fn_code ()) ++ return associated_internal_fn (combined_fn (code), type); ++ return code; ++} ++ ++/* Return true if CODE is a binary operation and if CODE is commutative when ++ operating on type TYPE. */ ++ ++bool ++commutative_binary_op_p (code_helper code, tree type) ++{ ++ if (code.is_tree_code ()) ++ return commutative_tree_code (tree_code (code)); ++ auto cfn = combined_fn (code); ++ return commutative_binary_fn_p (associated_internal_fn (cfn, type)); ++} ++ ++/* Return true if CODE represents a ternary operation and if the first two ++ operands are commutative when CODE is operating on TYPE. */ ++ ++bool ++commutative_ternary_op_p (code_helper code, tree type) ++{ ++ if (code.is_tree_code ()) ++ return commutative_ternary_tree_code (tree_code (code)); ++ auto cfn = combined_fn (code); ++ return commutative_ternary_fn_p (associated_internal_fn (cfn, type)); ++} ++ ++/* If CODE is commutative in two consecutive operands, return the ++ index of the first, otherwise return -1. */ ++ ++int ++first_commutative_argument (code_helper code, tree type) ++{ ++ if (code.is_tree_code ()) ++ { ++ auto tcode = tree_code (code); ++ if (commutative_tree_code (tcode) ++ || commutative_ternary_tree_code (tcode)) ++ return 0; ++ return -1; ++ } ++ auto cfn = combined_fn (code); ++ return first_commutative_argument (associated_internal_fn (cfn, type)); ++} ++ ++/* Return true if CODE is a binary operation that is associative when ++ operating on type TYPE. */ ++ ++bool ++associative_binary_op_p (code_helper code, tree type) ++{ ++ if (code.is_tree_code ()) ++ return associative_tree_code (tree_code (code)); ++ auto cfn = combined_fn (code); ++ return associative_binary_fn_p (associated_internal_fn (cfn, type)); ++} ++ ++/* Return true if the target directly supports operation CODE on type TYPE. ++ QUERY_TYPE acts as for optab_for_tree_code. */ ++ ++bool ++directly_supported_p (code_helper code, tree type, optab_subtype query_type) ++{ ++ if (code.is_tree_code ()) ++ { ++ direct_optab optab = optab_for_tree_code (tree_code (code), type, ++ query_type); ++ return (optab != unknown_optab ++ && optab_handler (optab, TYPE_MODE (type)) != CODE_FOR_nothing); ++ } ++ gcc_assert (query_type == optab_default ++ || (query_type == optab_vector && VECTOR_TYPE_P (type)) ++ || (query_type == optab_scalar && !VECTOR_TYPE_P (type))); ++ internal_fn ifn = associated_internal_fn (combined_fn (code), type); ++ return (direct_internal_fn_p (ifn) ++ && direct_internal_fn_supported_p (ifn, type, OPTIMIZE_FOR_SPEED)); ++} ++ ++/* A wrapper around the internal-fn.cc versions of get_conditional_internal_fn ++ for a code_helper CODE operating on type TYPE. */ ++ ++internal_fn ++get_conditional_internal_fn (code_helper code, tree type) ++{ ++ if (code.is_tree_code ()) ++ return get_conditional_internal_fn (tree_code (code)); ++ auto cfn = combined_fn (code); ++ return get_conditional_internal_fn (associated_internal_fn (cfn, type)); ++} +diff --git a/gcc/gimple-match-head.cc b/gcc/gimple-match-head.cc +index 21843d7870b3..3069ff5cb6e1 100644 +--- a/gcc/gimple-match-head.cc ++++ b/gcc/gimple-match-head.cc +@@ -50,1089 +50,8 @@ along with GCC; see the file COPYING3. If not see + #include "attribs.h" + #include "asan.h" + +-/* Forward declarations of the private auto-generated matchers. +- They expect valueized operands in canonical order and do not +- perform simplification of all-constant operands. */ +-static bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), +- code_helper, tree, tree); +-static bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), +- code_helper, tree, tree, tree); +-static bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), +- code_helper, tree, tree, tree, tree); +-static bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), +- code_helper, tree, tree, tree, tree, tree); +-static bool gimple_simplify (gimple_match_op *, gimple_seq *, tree (*)(tree), +- code_helper, tree, tree, tree, tree, tree, tree); +-static bool gimple_resimplify1 (gimple_seq *, gimple_match_op *, +- tree (*)(tree)); +-static bool gimple_resimplify2 (gimple_seq *, gimple_match_op *, +- tree (*)(tree)); +-static bool gimple_resimplify3 (gimple_seq *, gimple_match_op *, +- tree (*)(tree)); +-static bool gimple_resimplify4 (gimple_seq *, gimple_match_op *, +- tree (*)(tree)); +-static bool gimple_resimplify5 (gimple_seq *, gimple_match_op *, +- tree (*)(tree)); +- +-const unsigned int gimple_match_op::MAX_NUM_OPS; +- +-/* Return whether T is a constant that we'll dispatch to fold to +- evaluate fully constant expressions. */ +- +-static inline bool +-constant_for_folding (tree t) +-{ +- return (CONSTANT_CLASS_P (t) +- /* The following is only interesting to string builtins. */ +- || (TREE_CODE (t) == ADDR_EXPR +- && TREE_CODE (TREE_OPERAND (t, 0)) == STRING_CST)); +-} +- +-/* Try to convert conditional operation ORIG_OP into an IFN_COND_* +- operation. Return true on success, storing the new operation in NEW_OP. */ +- +-static bool +-convert_conditional_op (gimple_match_op *orig_op, +- gimple_match_op *new_op) +-{ +- internal_fn ifn; +- if (orig_op->code.is_tree_code ()) +- ifn = get_conditional_internal_fn ((tree_code) orig_op->code); +- else +- { +- auto cfn = combined_fn (orig_op->code); +- if (!internal_fn_p (cfn)) +- return false; +- ifn = get_conditional_internal_fn (as_internal_fn (cfn)); +- } +- if (ifn == IFN_LAST) +- return false; +- unsigned int num_ops = orig_op->num_ops; +- new_op->set_op (as_combined_fn (ifn), orig_op->type, num_ops + 2); +- new_op->ops[0] = orig_op->cond.cond; +- for (unsigned int i = 0; i < num_ops; ++i) +- new_op->ops[i + 1] = orig_op->ops[i]; +- tree else_value = orig_op->cond.else_value; +- if (!else_value) +- else_value = targetm.preferred_else_value (ifn, orig_op->type, +- num_ops, orig_op->ops); +- new_op->ops[num_ops + 1] = else_value; +- return true; +-} +- +-/* RES_OP is the result of a simplification. If it is conditional, +- try to replace it with the equivalent UNCOND form, such as an +- IFN_COND_* call or a VEC_COND_EXPR. Also try to resimplify the +- result of the replacement if appropriate, adding any new statements to +- SEQ and using VALUEIZE as the valueization function. Return true if +- this resimplification occurred and resulted in at least one change. */ +- +-static bool +-maybe_resimplify_conditional_op (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize) (tree)) +-{ +- if (!res_op->cond.cond) +- return false; +- +- if (!res_op->cond.else_value +- && res_op->code.is_tree_code ()) +- { +- /* The "else" value doesn't matter. If the "then" value is a +- gimple value, just use it unconditionally. This isn't a +- simplification in itself, since there was no operation to +- build in the first place. */ +- if (gimple_simplified_result_is_gimple_val (res_op)) +- { +- res_op->cond.cond = NULL_TREE; +- return false; +- } +- +- /* Likewise if the operation would not trap. */ +- bool honor_trapv = (INTEGRAL_TYPE_P (res_op->type) +- && TYPE_OVERFLOW_TRAPS (res_op->type)); +- tree_code op_code = (tree_code) res_op->code; +- bool op_could_trap; +- +- /* COND_EXPR will trap if, and only if, the condition +- traps and hence we have to check this. For all other operations, we +- don't need to consider the operands. */ +- if (op_code == COND_EXPR) +- op_could_trap = generic_expr_could_trap_p (res_op->ops[0]); +- else +- op_could_trap = operation_could_trap_p ((tree_code) res_op->code, +- FLOAT_TYPE_P (res_op->type), +- honor_trapv, +- res_op->op_or_null (1)); +- +- if (!op_could_trap) +- { +- res_op->cond.cond = NULL_TREE; +- return false; +- } +- } +- +- /* If the "then" value is a gimple value and the "else" value matters, +- create a VEC_COND_EXPR between them, then see if it can be further +- simplified. */ +- gimple_match_op new_op; +- if (res_op->cond.else_value +- && VECTOR_TYPE_P (res_op->type) +- && gimple_simplified_result_is_gimple_val (res_op)) +- { +- new_op.set_op (VEC_COND_EXPR, res_op->type, +- res_op->cond.cond, res_op->ops[0], +- res_op->cond.else_value); +- *res_op = new_op; +- return gimple_resimplify3 (seq, res_op, valueize); +- } +- +- /* Otherwise try rewriting the operation as an IFN_COND_* call. +- Again, this isn't a simplification in itself, since it's what +- RES_OP already described. */ +- if (convert_conditional_op (res_op, &new_op)) +- *res_op = new_op; +- +- return false; +-} +- +-/* Helper that matches and simplifies the toplevel result from +- a gimple_simplify run (where we don't want to build +- a stmt in case it's used in in-place folding). Replaces +- RES_OP with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-static bool +-gimple_resimplify1 (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize)(tree)) +-{ +- if (constant_for_folding (res_op->ops[0])) +- { +- tree tem = NULL_TREE; +- if (res_op->code.is_tree_code ()) +- { +- auto code = tree_code (res_op->code); +- if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) +- && TREE_CODE_LENGTH (code) == 1) +- tem = const_unop (code, res_op->type, res_op->ops[0]); +- } +- else +- tem = fold_const_call (combined_fn (res_op->code), res_op->type, +- res_op->ops[0]); +- if (tem != NULL_TREE +- && CONSTANT_CLASS_P (tem)) +- { +- if (TREE_OVERFLOW_P (tem)) +- tem = drop_tree_overflow (tem); +- res_op->set_value (tem); +- maybe_resimplify_conditional_op (seq, res_op, valueize); +- return true; +- } +- } +- +- /* Limit recursion, there are cases like PR80887 and others, for +- example when value-numbering presents us with unfolded expressions +- that we are really not prepared to handle without eventual +- oscillation like ((_50 + 0) + 8) where _50 gets mapped to _50 +- itself as available expression. */ +- static unsigned depth; +- if (depth > 10) +- { +- if (dump_file && (dump_flags & TDF_FOLDING)) +- fprintf (dump_file, "Aborting expression simplification due to " +- "deep recursion\n"); +- return false; +- } +- +- ++depth; +- gimple_match_op res_op2 (*res_op); +- if (gimple_simplify (&res_op2, seq, valueize, +- res_op->code, res_op->type, res_op->ops[0])) +- { +- --depth; +- *res_op = res_op2; +- return true; +- } +- --depth; +- +- if (maybe_resimplify_conditional_op (seq, res_op, valueize)) +- return true; +- +- return false; +-} +- +-/* Helper that matches and simplifies the toplevel result from +- a gimple_simplify run (where we don't want to build +- a stmt in case it's used in in-place folding). Replaces +- RES_OP with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-static bool +-gimple_resimplify2 (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize)(tree)) +-{ +- if (constant_for_folding (res_op->ops[0]) +- && constant_for_folding (res_op->ops[1])) +- { +- tree tem = NULL_TREE; +- if (res_op->code.is_tree_code ()) +- { +- auto code = tree_code (res_op->code); +- if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) +- && TREE_CODE_LENGTH (code) == 2) +- tem = const_binop (code, res_op->type, +- res_op->ops[0], res_op->ops[1]); +- } +- else +- tem = fold_const_call (combined_fn (res_op->code), res_op->type, +- res_op->ops[0], res_op->ops[1]); +- if (tem != NULL_TREE +- && CONSTANT_CLASS_P (tem)) +- { +- if (TREE_OVERFLOW_P (tem)) +- tem = drop_tree_overflow (tem); +- res_op->set_value (tem); +- maybe_resimplify_conditional_op (seq, res_op, valueize); +- return true; +- } +- } +- +- /* Canonicalize operand order. */ +- bool canonicalized = false; +- bool is_comparison +- = (res_op->code.is_tree_code () +- && TREE_CODE_CLASS (tree_code (res_op->code)) == tcc_comparison); +- if ((is_comparison || commutative_binary_op_p (res_op->code, res_op->type)) +- && tree_swap_operands_p (res_op->ops[0], res_op->ops[1])) +- { +- std::swap (res_op->ops[0], res_op->ops[1]); +- if (is_comparison) +- res_op->code = swap_tree_comparison (tree_code (res_op->code)); +- canonicalized = true; +- } +- +- /* Limit recursion, see gimple_resimplify1. */ +- static unsigned depth; +- if (depth > 10) +- { +- if (dump_file && (dump_flags & TDF_FOLDING)) +- fprintf (dump_file, "Aborting expression simplification due to " +- "deep recursion\n"); +- return false; +- } +- +- ++depth; +- gimple_match_op res_op2 (*res_op); +- if (gimple_simplify (&res_op2, seq, valueize, +- res_op->code, res_op->type, +- res_op->ops[0], res_op->ops[1])) +- { +- --depth; +- *res_op = res_op2; +- return true; +- } +- --depth; +- +- if (maybe_resimplify_conditional_op (seq, res_op, valueize)) +- return true; +- +- return canonicalized; +-} +- +-/* Helper that matches and simplifies the toplevel result from +- a gimple_simplify run (where we don't want to build +- a stmt in case it's used in in-place folding). Replaces +- RES_OP with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-static bool +-gimple_resimplify3 (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize)(tree)) +-{ +- if (constant_for_folding (res_op->ops[0]) +- && constant_for_folding (res_op->ops[1]) +- && constant_for_folding (res_op->ops[2])) +- { +- tree tem = NULL_TREE; +- if (res_op->code.is_tree_code ()) +- { +- auto code = tree_code (res_op->code); +- if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) +- && TREE_CODE_LENGTH (code) == 3) +- tem = fold_ternary/*_to_constant*/ (code, res_op->type, +- res_op->ops[0], res_op->ops[1], +- res_op->ops[2]); +- } +- else +- tem = fold_const_call (combined_fn (res_op->code), res_op->type, +- res_op->ops[0], res_op->ops[1], res_op->ops[2]); +- if (tem != NULL_TREE +- && CONSTANT_CLASS_P (tem)) +- { +- if (TREE_OVERFLOW_P (tem)) +- tem = drop_tree_overflow (tem); +- res_op->set_value (tem); +- maybe_resimplify_conditional_op (seq, res_op, valueize); +- return true; +- } +- } +- +- /* Canonicalize operand order. */ +- bool canonicalized = false; +- int argno = first_commutative_argument (res_op->code, res_op->type); +- if (argno >= 0 +- && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) +- { +- std::swap (res_op->ops[argno], res_op->ops[argno + 1]); +- canonicalized = true; +- } +- +- /* Limit recursion, see gimple_resimplify1. */ +- static unsigned depth; +- if (depth > 10) +- { +- if (dump_file && (dump_flags & TDF_FOLDING)) +- fprintf (dump_file, "Aborting expression simplification due to " +- "deep recursion\n"); +- return false; +- } +- +- ++depth; +- gimple_match_op res_op2 (*res_op); +- if (gimple_simplify (&res_op2, seq, valueize, +- res_op->code, res_op->type, +- res_op->ops[0], res_op->ops[1], res_op->ops[2])) +- { +- --depth; +- *res_op = res_op2; +- return true; +- } +- --depth; +- +- if (maybe_resimplify_conditional_op (seq, res_op, valueize)) +- return true; +- +- return canonicalized; +-} +- +-/* Helper that matches and simplifies the toplevel result from +- a gimple_simplify run (where we don't want to build +- a stmt in case it's used in in-place folding). Replaces +- RES_OP with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-static bool +-gimple_resimplify4 (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize)(tree)) +-{ +- /* No constant folding is defined for four-operand functions. */ +- +- /* Canonicalize operand order. */ +- bool canonicalized = false; +- int argno = first_commutative_argument (res_op->code, res_op->type); +- if (argno >= 0 +- && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) +- { +- std::swap (res_op->ops[argno], res_op->ops[argno + 1]); +- canonicalized = true; +- } +- +- /* Limit recursion, see gimple_resimplify1. */ +- static unsigned depth; +- if (depth > 10) +- { +- if (dump_file && (dump_flags & TDF_FOLDING)) +- fprintf (dump_file, "Aborting expression simplification due to " +- "deep recursion\n"); +- return false; +- } +- +- ++depth; +- gimple_match_op res_op2 (*res_op); +- if (gimple_simplify (&res_op2, seq, valueize, +- res_op->code, res_op->type, +- res_op->ops[0], res_op->ops[1], res_op->ops[2], +- res_op->ops[3])) +- { +- --depth; +- *res_op = res_op2; +- return true; +- } +- --depth; +- +- if (maybe_resimplify_conditional_op (seq, res_op, valueize)) +- return true; +- +- return canonicalized; +-} +- +-/* Helper that matches and simplifies the toplevel result from +- a gimple_simplify run (where we don't want to build +- a stmt in case it's used in in-place folding). Replaces +- RES_OP with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-static bool +-gimple_resimplify5 (gimple_seq *seq, gimple_match_op *res_op, +- tree (*valueize)(tree)) +-{ +- /* No constant folding is defined for five-operand functions. */ +- +- /* Canonicalize operand order. */ +- bool canonicalized = false; +- int argno = first_commutative_argument (res_op->code, res_op->type); +- if (argno >= 0 +- && tree_swap_operands_p (res_op->ops[argno], res_op->ops[argno + 1])) +- { +- std::swap (res_op->ops[argno], res_op->ops[argno + 1]); +- canonicalized = true; +- } +- +- gimple_match_op res_op2 (*res_op); +- if (gimple_simplify (&res_op2, seq, valueize, +- res_op->code, res_op->type, +- res_op->ops[0], res_op->ops[1], res_op->ops[2], +- res_op->ops[3], res_op->ops[4])) +- { +- *res_op = res_op2; +- return true; +- } +- +- if (maybe_resimplify_conditional_op (seq, res_op, valueize)) +- return true; +- +- return canonicalized; +-} +- +-/* Match and simplify the toplevel valueized operation THIS. +- Replaces THIS with a simplified and/or canonicalized result and +- returns whether any change was made. */ +- +-bool +-gimple_match_op::resimplify (gimple_seq *seq, tree (*valueize)(tree)) +-{ +- switch (num_ops) +- { +- case 1: +- return gimple_resimplify1 (seq, this, valueize); +- case 2: +- return gimple_resimplify2 (seq, this, valueize); +- case 3: +- return gimple_resimplify3 (seq, this, valueize); +- case 4: +- return gimple_resimplify4 (seq, this, valueize); +- case 5: +- return gimple_resimplify5 (seq, this, valueize); +- default: +- gcc_unreachable (); +- } +-} +- +-/* If in GIMPLE the operation described by RES_OP should be single-rhs, +- build a GENERIC tree for that expression and update RES_OP accordingly. */ +- +-void +-maybe_build_generic_op (gimple_match_op *res_op) +-{ +- tree_code code = (tree_code) res_op->code; +- tree val; +- switch (code) +- { +- case REALPART_EXPR: +- case IMAGPART_EXPR: +- case VIEW_CONVERT_EXPR: +- val = build1 (code, res_op->type, res_op->ops[0]); +- res_op->set_value (val); +- break; +- case BIT_FIELD_REF: +- val = build3 (code, res_op->type, res_op->ops[0], res_op->ops[1], +- res_op->ops[2]); +- REF_REVERSE_STORAGE_ORDER (val) = res_op->reverse; +- res_op->set_value (val); +- break; +- default:; +- } +-} +- +-tree (*mprts_hook) (gimple_match_op *); +- +-/* Try to build RES_OP, which is known to be a call to FN. Return null +- if the target doesn't support the function. */ +- +-static gcall * +-build_call_internal (internal_fn fn, gimple_match_op *res_op) +-{ +- if (direct_internal_fn_p (fn)) +- { +- tree_pair types = direct_internal_fn_types (fn, res_op->type, +- res_op->ops); +- if (!direct_internal_fn_supported_p (fn, types, OPTIMIZE_FOR_BOTH)) +- return NULL; +- } +- return gimple_build_call_internal (fn, res_op->num_ops, +- res_op->op_or_null (0), +- res_op->op_or_null (1), +- res_op->op_or_null (2), +- res_op->op_or_null (3), +- res_op->op_or_null (4)); +-} +- +-/* Push the exploded expression described by RES_OP as a statement to +- SEQ if necessary and return a gimple value denoting the value of the +- expression. If RES is not NULL then the result will be always RES +- and even gimple values are pushed to SEQ. */ +- +-tree +-maybe_push_res_to_seq (gimple_match_op *res_op, gimple_seq *seq, tree res) +-{ +- tree *ops = res_op->ops; +- unsigned num_ops = res_op->num_ops; +- +- /* The caller should have converted conditional operations into an UNCOND +- form and resimplified as appropriate. The conditional form only +- survives this far if that conversion failed. */ +- if (res_op->cond.cond) +- return NULL_TREE; +- +- if (res_op->code.is_tree_code ()) +- { +- if (!res +- && gimple_simplified_result_is_gimple_val (res_op)) +- return ops[0]; +- if (mprts_hook) +- { +- tree tem = mprts_hook (res_op); +- if (tem) +- return tem; +- } +- } +- +- if (!seq) +- return NULL_TREE; +- +- /* Play safe and do not allow abnormals to be mentioned in +- newly created statements. */ +- for (unsigned int i = 0; i < num_ops; ++i) +- if (TREE_CODE (ops[i]) == SSA_NAME +- && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ops[i])) +- return NULL_TREE; +- +- if (num_ops > 0 && COMPARISON_CLASS_P (ops[0])) +- for (unsigned int i = 0; i < 2; ++i) +- if (TREE_CODE (TREE_OPERAND (ops[0], i)) == SSA_NAME +- && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (TREE_OPERAND (ops[0], i))) +- return NULL_TREE; +- +- if (res_op->code.is_tree_code ()) +- { +- auto code = tree_code (res_op->code); +- if (!res) +- { +- if (gimple_in_ssa_p (cfun)) +- res = make_ssa_name (res_op->type); +- else +- res = create_tmp_reg (res_op->type); +- } +- maybe_build_generic_op (res_op); +- gimple *new_stmt = gimple_build_assign (res, code, +- res_op->op_or_null (0), +- res_op->op_or_null (1), +- res_op->op_or_null (2)); +- gimple_seq_add_stmt_without_update (seq, new_stmt); +- return res; +- } +- else +- { +- gcc_assert (num_ops != 0); +- auto fn = combined_fn (res_op->code); +- gcall *new_stmt = NULL; +- if (internal_fn_p (fn)) +- { +- /* Generate the given function if we can. */ +- internal_fn ifn = as_internal_fn (fn); +- new_stmt = build_call_internal (ifn, res_op); +- if (!new_stmt) +- return NULL_TREE; +- } +- else +- { +- /* Find the function we want to call. */ +- tree decl = builtin_decl_implicit (as_builtin_fn (fn)); +- if (!decl) +- return NULL; +- +- /* We can't and should not emit calls to non-const functions. */ +- if (!(flags_from_decl_or_type (decl) & ECF_CONST)) +- return NULL; +- +- new_stmt = gimple_build_call (decl, num_ops, +- res_op->op_or_null (0), +- res_op->op_or_null (1), +- res_op->op_or_null (2), +- res_op->op_or_null (3), +- res_op->op_or_null (4)); +- } +- if (!res) +- { +- if (gimple_in_ssa_p (cfun)) +- res = make_ssa_name (res_op->type); +- else +- res = create_tmp_reg (res_op->type); +- } +- gimple_call_set_lhs (new_stmt, res); +- gimple_seq_add_stmt_without_update (seq, new_stmt); +- return res; +- } +-} +- +- +-/* Public API overloads follow for operation being tree_code or +- built_in_function and for one to three operands or arguments. +- They return NULL_TREE if nothing could be simplified or +- the resulting simplified value with parts pushed to SEQ. +- If SEQ is NULL then if the simplification needs to create +- new stmts it will fail. If VALUEIZE is non-NULL then all +- SSA names will be valueized using that hook prior to +- applying simplifications. */ +- +-/* Unary ops. */ +- +-tree +-gimple_simplify (enum tree_code code, tree type, +- tree op0, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (op0)) +- { +- tree res = const_unop (code, type, op0); +- if (res != NULL_TREE +- && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, code, type, op0)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Binary ops. */ +- +-tree +-gimple_simplify (enum tree_code code, tree type, +- tree op0, tree op1, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (op0) && constant_for_folding (op1)) +- { +- tree res = const_binop (code, type, op0, op1); +- if (res != NULL_TREE +- && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- /* Canonicalize operand order both for matching and fallback stmt +- generation. */ +- if ((commutative_tree_code (code) +- || TREE_CODE_CLASS (code) == tcc_comparison) +- && tree_swap_operands_p (op0, op1)) +- { +- std::swap (op0, op1); +- if (TREE_CODE_CLASS (code) == tcc_comparison) +- code = swap_tree_comparison (code); +- } +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, code, type, op0, op1)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Ternary ops. */ +- +-tree +-gimple_simplify (enum tree_code code, tree type, +- tree op0, tree op1, tree op2, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (op0) && constant_for_folding (op1) +- && constant_for_folding (op2)) +- { +- tree res = fold_ternary/*_to_constant */ (code, type, op0, op1, op2); +- if (res != NULL_TREE +- && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- /* Canonicalize operand order both for matching and fallback stmt +- generation. */ +- if (commutative_ternary_tree_code (code) +- && tree_swap_operands_p (op0, op1)) +- std::swap (op0, op1); +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, code, type, op0, op1, op2)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Builtin or internal function with one argument. */ +- +-tree +-gimple_simplify (combined_fn fn, tree type, +- tree arg0, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (arg0)) +- { +- tree res = fold_const_call (fn, type, arg0); +- if (res && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Builtin or internal function with two arguments. */ +- +-tree +-gimple_simplify (combined_fn fn, tree type, +- tree arg0, tree arg1, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (arg0) +- && constant_for_folding (arg1)) +- { +- tree res = fold_const_call (fn, type, arg0, arg1); +- if (res && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0, arg1)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Builtin or internal function with three arguments. */ +- +-tree +-gimple_simplify (combined_fn fn, tree type, +- tree arg0, tree arg1, tree arg2, +- gimple_seq *seq, tree (*valueize)(tree)) +-{ +- if (constant_for_folding (arg0) +- && constant_for_folding (arg1) +- && constant_for_folding (arg2)) +- { +- tree res = fold_const_call (fn, type, arg0, arg1, arg2); +- if (res && CONSTANT_CLASS_P (res)) +- return res; +- } +- +- gimple_match_op res_op; +- if (!gimple_simplify (&res_op, seq, valueize, fn, type, arg0, arg1, arg2)) +- return NULL_TREE; +- return maybe_push_res_to_seq (&res_op, seq); +-} +- +-/* Helper for gimple_simplify valueizing OP using VALUEIZE and setting +- VALUEIZED to true if valueization changed OP. */ +- +-static inline tree +-do_valueize (tree op, tree (*valueize)(tree), bool &valueized) +-{ +- if (valueize && TREE_CODE (op) == SSA_NAME) +- { +- tree tem = valueize (op); +- if (tem && tem != op) +- { +- op = tem; +- valueized = true; +- } +- } +- return op; +-} +- +-/* If RES_OP is a call to a conditional internal function, try simplifying +- the associated unconditional operation and using the result to build +- a new conditional operation. For example, if RES_OP is: +- +- IFN_COND_ADD (COND, A, B, ELSE) +- +- try simplifying (plus A B) and using the result to build a replacement +- for the whole IFN_COND_ADD. +- +- Return true if this approach led to a simplification, otherwise leave +- RES_OP unchanged (and so suitable for other simplifications). When +- returning true, add any new statements to SEQ and use VALUEIZE as the +- valueization function. +- +- RES_OP is known to be a call to IFN. */ +- +-static bool +-try_conditional_simplification (internal_fn ifn, gimple_match_op *res_op, +- gimple_seq *seq, tree (*valueize) (tree)) +-{ +- code_helper op; +- tree_code code = conditional_internal_fn_code (ifn); +- if (code != ERROR_MARK) +- op = code; +- else +- { +- ifn = get_unconditional_internal_fn (ifn); +- if (ifn == IFN_LAST) +- return false; +- op = as_combined_fn (ifn); +- } +- +- unsigned int num_ops = res_op->num_ops; +- gimple_match_op cond_op (gimple_match_cond (res_op->ops[0], +- res_op->ops[num_ops - 1]), +- op, res_op->type, num_ops - 2); +- +- memcpy (cond_op.ops, res_op->ops + 1, (num_ops - 1) * sizeof *cond_op.ops); +- switch (num_ops - 2) +- { +- case 1: +- if (!gimple_resimplify1 (seq, &cond_op, valueize)) +- return false; +- break; +- case 2: +- if (!gimple_resimplify2 (seq, &cond_op, valueize)) +- return false; +- break; +- case 3: +- if (!gimple_resimplify3 (seq, &cond_op, valueize)) +- return false; +- break; +- default: +- gcc_unreachable (); +- } +- *res_op = cond_op; +- maybe_resimplify_conditional_op (seq, res_op, valueize); +- return true; +-} +- +-/* Common subroutine of gimple_extract_op and gimple_simplify. Try to +- describe STMT in RES_OP, returning true on success. Before recording +- an operand, call: +- +- - VALUEIZE_CONDITION for a COND_EXPR condition +- - VALUEIZE_OP for every other top-level operand +- +- Both routines take a tree argument and returns a tree. */ +- +-template<typename ValueizeOp, typename ValueizeCondition> +-inline bool +-gimple_extract (gimple *stmt, gimple_match_op *res_op, +- ValueizeOp valueize_op, +- ValueizeCondition valueize_condition) +-{ +- switch (gimple_code (stmt)) +- { +- case GIMPLE_ASSIGN: +- { +- enum tree_code code = gimple_assign_rhs_code (stmt); +- tree type = TREE_TYPE (gimple_assign_lhs (stmt)); +- switch (gimple_assign_rhs_class (stmt)) +- { +- case GIMPLE_SINGLE_RHS: +- if (code == REALPART_EXPR +- || code == IMAGPART_EXPR +- || code == VIEW_CONVERT_EXPR) +- { +- tree op0 = TREE_OPERAND (gimple_assign_rhs1 (stmt), 0); +- res_op->set_op (code, type, valueize_op (op0)); +- return true; +- } +- else if (code == BIT_FIELD_REF) +- { +- tree rhs1 = gimple_assign_rhs1 (stmt); +- tree op0 = valueize_op (TREE_OPERAND (rhs1, 0)); +- res_op->set_op (code, type, op0, +- TREE_OPERAND (rhs1, 1), +- TREE_OPERAND (rhs1, 2), +- REF_REVERSE_STORAGE_ORDER (rhs1)); +- return true; +- } +- else if (code == SSA_NAME) +- { +- tree op0 = gimple_assign_rhs1 (stmt); +- res_op->set_op (TREE_CODE (op0), type, valueize_op (op0)); +- return true; +- } +- break; +- case GIMPLE_UNARY_RHS: +- { +- tree rhs1 = gimple_assign_rhs1 (stmt); +- res_op->set_op (code, type, valueize_op (rhs1)); +- return true; +- } +- case GIMPLE_BINARY_RHS: +- { +- tree rhs1 = valueize_op (gimple_assign_rhs1 (stmt)); +- tree rhs2 = valueize_op (gimple_assign_rhs2 (stmt)); +- res_op->set_op (code, type, rhs1, rhs2); +- return true; +- } +- case GIMPLE_TERNARY_RHS: +- { +- tree rhs1 = gimple_assign_rhs1 (stmt); +- if (code == COND_EXPR && COMPARISON_CLASS_P (rhs1)) +- rhs1 = valueize_condition (rhs1); +- else +- rhs1 = valueize_op (rhs1); +- tree rhs2 = valueize_op (gimple_assign_rhs2 (stmt)); +- tree rhs3 = valueize_op (gimple_assign_rhs3 (stmt)); +- res_op->set_op (code, type, rhs1, rhs2, rhs3); +- return true; +- } +- default: +- gcc_unreachable (); +- } +- break; +- } +- +- case GIMPLE_CALL: +- /* ??? This way we can't simplify calls with side-effects. */ +- if (gimple_call_lhs (stmt) != NULL_TREE +- && gimple_call_num_args (stmt) >= 1 +- && gimple_call_num_args (stmt) <= 5) +- { +- combined_fn cfn; +- if (gimple_call_internal_p (stmt)) +- cfn = as_combined_fn (gimple_call_internal_fn (stmt)); +- else +- { +- tree fn = gimple_call_fn (stmt); +- if (!fn) +- return false; +- +- fn = valueize_op (fn); +- if (TREE_CODE (fn) != ADDR_EXPR +- || TREE_CODE (TREE_OPERAND (fn, 0)) != FUNCTION_DECL) +- return false; +- +- tree decl = TREE_OPERAND (fn, 0); +- if (DECL_BUILT_IN_CLASS (decl) != BUILT_IN_NORMAL +- || !gimple_builtin_call_types_compatible_p (stmt, decl)) +- return false; +- +- cfn = as_combined_fn (DECL_FUNCTION_CODE (decl)); +- } +- +- unsigned int num_args = gimple_call_num_args (stmt); +- res_op->set_op (cfn, TREE_TYPE (gimple_call_lhs (stmt)), num_args); +- for (unsigned i = 0; i < num_args; ++i) +- res_op->ops[i] = valueize_op (gimple_call_arg (stmt, i)); +- return true; +- } +- break; +- +- case GIMPLE_COND: +- { +- tree lhs = valueize_op (gimple_cond_lhs (stmt)); +- tree rhs = valueize_op (gimple_cond_rhs (stmt)); +- res_op->set_op (gimple_cond_code (stmt), boolean_type_node, lhs, rhs); +- return true; +- } +- +- default: +- break; +- } +- +- return false; +-} +- +-/* Try to describe STMT in RES_OP, returning true on success. +- For GIMPLE_CONDs, describe the condition that is being tested. +- For GIMPLE_ASSIGNs, describe the rhs of the assignment. +- For GIMPLE_CALLs, describe the call. */ +- +-bool +-gimple_extract_op (gimple *stmt, gimple_match_op *res_op) +-{ +- auto nop = [](tree op) { return op; }; +- return gimple_extract (stmt, res_op, nop, nop); +-} +- +-/* The main STMT based simplification entry. It is used by the fold_stmt +- and the fold_stmt_to_constant APIs. */ +- +-bool +-gimple_simplify (gimple *stmt, gimple_match_op *res_op, gimple_seq *seq, +- tree (*valueize)(tree), tree (*top_valueize)(tree)) +-{ +- bool valueized = false; +- auto valueize_op = [&](tree op) +- { +- return do_valueize (op, top_valueize, valueized); +- }; +- auto valueize_condition = [&](tree op) -> tree +- { +- bool cond_valueized = false; +- tree lhs = do_valueize (TREE_OPERAND (op, 0), top_valueize, +- cond_valueized); +- tree rhs = do_valueize (TREE_OPERAND (op, 1), top_valueize, +- cond_valueized); +- gimple_match_op res_op2 (res_op->cond, TREE_CODE (op), +- TREE_TYPE (op), lhs, rhs); +- if ((gimple_resimplify2 (seq, &res_op2, valueize) +- || cond_valueized) +- && res_op2.code.is_tree_code ()) +- { +- auto code = tree_code (res_op2.code); +- if (TREE_CODE_CLASS (code) == tcc_comparison) +- { +- valueized = true; +- return build2 (code, TREE_TYPE (op), +- res_op2.ops[0], res_op2.ops[1]); +- } +- else if (code == SSA_NAME +- || code == INTEGER_CST +- || code == VECTOR_CST) +- { +- valueized = true; +- return res_op2.ops[0]; +- } +- } +- return valueize_op (op); +- }; +- +- if (!gimple_extract (stmt, res_op, valueize_op, valueize_condition)) +- return false; +- +- if (res_op->code.is_internal_fn ()) +- { +- internal_fn ifn = internal_fn (res_op->code); +- if (try_conditional_simplification (ifn, res_op, seq, valueize)) +- return true; +- } +- +- if (!res_op->reverse +- && res_op->num_ops +- && res_op->resimplify (seq, valueize)) +- return true; +- +- return valueized; +-} +- +-/* Helper for the autogenerated code, valueize OP. */ +- +-inline tree +-do_valueize (tree (*valueize)(tree), tree op) +-{ +- if (valueize && TREE_CODE (op) == SSA_NAME) +- { +- tree tem = valueize (op); +- if (tem) +- return tem; +- } +- return op; +-} ++tree do_valueize (tree, tree (*)(tree), bool &); ++tree do_valueize (tree (*)(tree), tree); + + /* Helper for the autogenerated code, get at the definition of NAME when + VALUEIZE allows that. */ +@@ -1307,110 +226,3 @@ optimize_successive_divisions_p (tree divisor, tree inner_div) + } + return true; + } +- +-/* Return a canonical form for CODE when operating on TYPE. The idea +- is to remove redundant ways of representing the same operation so +- that code_helpers can be hashed and compared for equality. +- +- The only current canonicalization is to replace built-in functions +- with internal functions, in cases where internal-fn.def defines +- such an internal function. +- +- Note that the new code_helper cannot necessarily be used in place of +- the original code_helper. For example, the new code_helper might be +- an internal function that the target does not support. */ +- +-code_helper +-canonicalize_code (code_helper code, tree type) +-{ +- if (code.is_fn_code ()) +- return associated_internal_fn (combined_fn (code), type); +- return code; +-} +- +-/* Return true if CODE is a binary operation and if CODE is commutative when +- operating on type TYPE. */ +- +-bool +-commutative_binary_op_p (code_helper code, tree type) +-{ +- if (code.is_tree_code ()) +- return commutative_tree_code (tree_code (code)); +- auto cfn = combined_fn (code); +- return commutative_binary_fn_p (associated_internal_fn (cfn, type)); +-} +- +-/* Return true if CODE represents a ternary operation and if the first two +- operands are commutative when CODE is operating on TYPE. */ +- +-bool +-commutative_ternary_op_p (code_helper code, tree type) +-{ +- if (code.is_tree_code ()) +- return commutative_ternary_tree_code (tree_code (code)); +- auto cfn = combined_fn (code); +- return commutative_ternary_fn_p (associated_internal_fn (cfn, type)); +-} +- +-/* If CODE is commutative in two consecutive operands, return the +- index of the first, otherwise return -1. */ +- +-int +-first_commutative_argument (code_helper code, tree type) +-{ +- if (code.is_tree_code ()) +- { +- auto tcode = tree_code (code); +- if (commutative_tree_code (tcode) +- || commutative_ternary_tree_code (tcode)) +- return 0; +- return -1; +- } +- auto cfn = combined_fn (code); +- return first_commutative_argument (associated_internal_fn (cfn, type)); +-} +- +-/* Return true if CODE is a binary operation that is associative when +- operating on type TYPE. */ +- +-bool +-associative_binary_op_p (code_helper code, tree type) +-{ +- if (code.is_tree_code ()) +- return associative_tree_code (tree_code (code)); +- auto cfn = combined_fn (code); +- return associative_binary_fn_p (associated_internal_fn (cfn, type)); +-} +- +-/* Return true if the target directly supports operation CODE on type TYPE. +- QUERY_TYPE acts as for optab_for_tree_code. */ +- +-bool +-directly_supported_p (code_helper code, tree type, optab_subtype query_type) +-{ +- if (code.is_tree_code ()) +- { +- direct_optab optab = optab_for_tree_code (tree_code (code), type, +- query_type); +- return (optab != unknown_optab +- && optab_handler (optab, TYPE_MODE (type)) != CODE_FOR_nothing); +- } +- gcc_assert (query_type == optab_default +- || (query_type == optab_vector && VECTOR_TYPE_P (type)) +- || (query_type == optab_scalar && !VECTOR_TYPE_P (type))); +- internal_fn ifn = associated_internal_fn (combined_fn (code), type); +- return (direct_internal_fn_p (ifn) +- && direct_internal_fn_supported_p (ifn, type, OPTIMIZE_FOR_SPEED)); +-} +- +-/* A wrapper around the internal-fn.cc versions of get_conditional_internal_fn +- for a code_helper CODE operating on type TYPE. */ +- +-internal_fn +-get_conditional_internal_fn (code_helper code, tree type) +-{ +- if (code.is_tree_code ()) +- return get_conditional_internal_fn (tree_code (code)); +- auto cfn = combined_fn (code); +- return get_conditional_internal_fn (associated_internal_fn (cfn, type)); +-} +-- +2.44.0 + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 + +From daac5d2f67656dcf8cc2bbff1c6eaa34f3fb55b9 Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Fri, 5 May 2023 13:38:50 +0100 +Subject: [PATCH 05/15] match.pd: automatically partition *-match.cc files. + +Following on from Richi's RFC[1] this is another attempt to split up match.pd +into multiple gimple-match and generic-match files. This version is fully +automated and requires no human intervention. + +First things first, some perf numbers. The following shows the effect of the +patch on my desktop doing parallel compilation of gimple-match: + ++--------+------------------+--------+------------------+ +| splits | rel. improvement | splits | rel. improvement | ++--------+------------------+--------+------------------+ +| 1 | 0.00% | 33 | 91.03% | +| 2 | 71.77% | 34 | 84.02% | +| 3 | 100.71% | 35 | 83.42% | +| 4 | 143.08% | 36 | 78.80% | +| 5 | 176.18% | 37 | 74.06% | +| 6 | 174.40% | 38 | 55.76% | +| 7 | 176.62% | 39 | 66.90% | +| 8 | 168.35% | 40 | 18.25% | +| 9 | 189.80% | 41 | 16.55% | +| 10 | 171.77% | 42 | 47.02% | +| 11 | 152.82% | 43 | 15.29% | +| 12 | 112.20% | 44 | 21.63% | +| 13 | 158.57% | 45 | 41.53% | +| 14 | 158.57% | 46 | 21.98% | +| 15 | 152.07% | 47 | -42.74% | +| 16 | 151.70% | 48 | -32.62% | +| 17 | 131.52% | 49 | 11.81% | +| 18 | 133.11% | 50 | 34.07% | +| 19 | 137.33% | 51 | 2.71% | +| 20 | 103.83% | 52 | -22.23% | +| 21 | 132.47% | 53 | 32.30% | +| 22 | 116.52% | 54 | 21.45% | +| 23 | 112.73% | 55 | 40.02% | +| 24 | 111.94% | 56 | 42.83% | +| 25 | 112.73% | 57 | -9.98% | +| 26 | 104.07% | 58 | 18.01% | +| 27 | 113.27% | 59 | -4.91% | +| 28 | 96.77% | 60 | 22.94% | +| 29 | 93.42% | 61 | -3.73% | +| 30 | 87.67% | 62 | -27.43% | +| 31 | 89.54% | 63 | -1.05% | +| 32 | 84.42% | 64 | -5.44% | ++--------+------------------+--------+------------------+ + +As can be seen there seems to be a point of diminishing returns in doing splits. +This comes from the fact that these match files consume a sizeable amount of +headers. At a certain point the parsing overhead of the headers dominate and +you start losing in gains. + +As such from this I've made the default 10 splits per file to allow for some +room for growth in the future without needing changes to the split amount. +Since 5-10 show roughly the same gains it means we can afford to double the +file sizes before we need to up the split amount. This can be controlled +by the configure parameter --with-matchpd-partitions=. + +At 10 splits the sizes of the files are: + + 1.2M gimple-match-1.cc + 490K gimple-match-2.cc + 459K gimple-match-3.cc + 462K gimple-match-4.cc + 466K gimple-match-5.cc + 690K gimple-match-6.cc + 517K gimple-match-7.cc + 693K gimple-match-8.cc +1011K gimple-match-9.cc + 490K gimple-match-10.cc + 210K gimple-match-auto.h + +The reason gimple-match-1.cc is so large is because it got allocated a very +large function: gimple_simplify_NE_EXPR. + +Because of these sporadically large functions the allocation to a split happens +based on the amount of data already written to a split instead of just a simple +round robin allocation (though the patch supports that too.). This means that +once gimple_simplify_NE_EXPR is allocated to gimple-match-1.cc nothing uses it +again until the rest of the files catch up. + +To support this split a new header file *-match-auto.h is generated to allow +the individual files to compile separately. + +Lastly for the auto generated files I use pragmas to silence the unused +predicate warnings instead of the previous Makefile way because I couldn't find +a way to set them without knowing the number of split files beforehand. + +Finally with this change, bootstrap time has dropped 8 minutes on AArch64. + +[1] https://gcc.gnu.org/legacy-ml/gcc-patches/2018-04/msg01125.html + +gcc/ChangeLog: + + PR bootstrap/84402 + * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New. + (decision_tree::gen): Accept list of files instead of single and update + to write function definition to header and main file. + (write_predicate): Likewise. + (write_header): Emit pragmas and new includes. + (main): Create file buffers and cleanup. + (showUsage, write_header_includes): New. + +(cherry picked from commit 703417a030b3d80f55ba1402adc3f1692d3631e5) +--- + gcc/genmatch.cc | 226 ++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 190 insertions(+), 36 deletions(-) + +diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc +index 665d7e2106ff..f80e4b972288 100644 +--- a/gcc/genmatch.cc ++++ b/gcc/genmatch.cc +@@ -183,6 +183,33 @@ fprintf_indent (FILE *f, unsigned int indent, const char *format, ...) + va_end (ap); + } + ++/* Like fprintf, but print to two files, one header one C implementation. */ ++FILE *header_file = NULL; ++ ++static void ++#if GCC_VERSION >= 4001 ++__attribute__((format (printf, 4, 5))) ++#endif ++emit_func (FILE *f, bool open, bool close, const char *format, ...) ++{ ++ va_list ap1, ap2; ++ if (header_file != NULL) ++ { ++ if (open) ++ fprintf (header_file, "extern "); ++ va_start (ap2, format); ++ vfprintf (header_file, format, ap2); ++ va_end (ap2); ++ if (close) ++ fprintf (header_file, ";\n"); ++ } ++ ++ va_start (ap1, format); ++ vfprintf (f, format, ap1); ++ va_end (ap1); ++ fputc ('\n', f); ++} ++ + static void + output_line_directive (FILE *f, location_t location, + bool dumpfile = false, bool fnargs = false) +@@ -217,6 +244,37 @@ output_line_directive (FILE *f, location_t location, + fprintf (f, "/* #line %d \"%s\" */\n", loc.line, loc.file); + } + ++/* Find the file to write into next. We try to evenly distribute the contents ++ over the different files. */ ++ ++#define SIZED_BASED_CHUNKS 1 ++ ++int current_file = 0; ++FILE *get_out_file (vec <FILE *> &parts) ++{ ++#ifdef SIZED_BASED_CHUNKS ++ if (parts.length () == 1) ++ return parts[0]; ++ ++ FILE *f = NULL; ++ long min = 0; ++ /* We've started writing all the files at pos 0, so ftell is equivalent ++ to the size and should be much faster. */ ++ for (unsigned i = 0; i < parts.length (); i++) ++ { ++ long res = ftell (parts[i]); ++ if (!f || res < min) ++ { ++ min = res; ++ f = parts[i]; ++ } ++ } ++ return f; ++#else ++ return parts[current_file++ % parts.length ()]; ++#endif ++} ++ + + /* Pull in tree codes and builtin function codes from their + definition files. */ +@@ -1732,7 +1790,7 @@ public: + dt_node *root; + + void insert (class simplify *, unsigned); +- void gen (FILE *f, bool gimple); ++ void gen (vec <FILE *> &f, bool gimple); + void print (FILE *f = stderr); + + decision_tree () { root = new dt_node (dt_node::DT_NODE, NULL); } +@@ -3832,7 +3890,7 @@ sinfo_hashmap_traits::equal_keys (const key_type &v, + tree. */ + + void +-decision_tree::gen (FILE *f, bool gimple) ++decision_tree::gen (vec <FILE *> &files, bool gimple) + { + sinfo_map_t si; + +@@ -3861,11 +3919,14 @@ decision_tree::gen (FILE *f, bool gimple) + output_line_directive (stderr, s->s->s->result->location); + } + ++ /* Cycle the file buffers. */ ++ FILE *f = get_out_file (files); ++ + /* Generate a split out function with the leaf transform code. */ + s->fname = xasprintf ("%s_simplify_%u", gimple ? "gimple" : "generic", + fcnt++); + if (gimple) +- fprintf (f, "\nstatic bool\n" ++ emit_func (f, true, false, "\nbool\n" + "%s (gimple_match_op *res_op, gimple_seq *seq,\n" + " tree (*valueize)(tree) ATTRIBUTE_UNUSED,\n" + " const tree ARG_UNUSED (type), tree *ARG_UNUSED " +@@ -3873,27 +3934,28 @@ decision_tree::gen (FILE *f, bool gimple) + s->fname); + else + { +- fprintf (f, "\nstatic tree\n" ++ emit_func (f, true, false, "\ntree\n" + "%s (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),\n", + (*iter).second->fname); + for (unsigned i = 0; + i < as_a <expr *>(s->s->s->match)->ops.length (); ++i) +- fprintf (f, " tree ARG_UNUSED (_p%d),", i); +- fprintf (f, " tree *captures\n"); ++ emit_func (f, false, false, " tree ARG_UNUSED (_p%d),", i); ++ emit_func (f, false, false, " tree *captures\n"); + } + for (unsigned i = 0; i < s->s->s->for_subst_vec.length (); ++i) + { + if (! s->s->s->for_subst_vec[i].first->used) + continue; + if (is_a <operator_id *> (s->s->s->for_subst_vec[i].second)) +- fprintf (f, ", const enum tree_code ARG_UNUSED (%s)", ++ emit_func (f, false, false, ", const enum tree_code ARG_UNUSED (%s)", + s->s->s->for_subst_vec[i].first->id); + else if (is_a <fn_id *> (s->s->s->for_subst_vec[i].second)) +- fprintf (f, ", const combined_fn ARG_UNUSED (%s)", ++ emit_func (f, false, false, ", const combined_fn ARG_UNUSED (%s)", + s->s->s->for_subst_vec[i].first->id); + } + +- fprintf (f, ")\n{\n"); ++ emit_func (f, false, true, ")"); ++ fprintf (f, "{\n"); + fprintf_indent (f, 2, "const bool debug_dump = " + "dump_file && (dump_flags & TDF_FOLDING);\n"); + s->s->gen_1 (f, 2, gimple, s->s->s->result); +@@ -3923,8 +3985,12 @@ decision_tree::gen (FILE *f, bool gimple) + && e->operation->kind != id_base::CODE)) + continue; + ++ ++ /* Cycle the file buffers. */ ++ FILE *f = get_out_file (files); ++ + if (gimple) +- fprintf (f, "\nstatic bool\n" ++ emit_func (f, true, false,"\nbool\n" + "gimple_simplify_%s (gimple_match_op *res_op," + " gimple_seq *seq,\n" + " tree (*valueize)(tree) " +@@ -3933,13 +3999,13 @@ decision_tree::gen (FILE *f, bool gimple) + "ARG_UNUSED (type)\n", + e->operation->id); + else +- fprintf (f, "\nstatic tree\n" ++ emit_func (f, true, false, "\ntree\n" + "generic_simplify_%s (location_t ARG_UNUSED (loc), enum " + "tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type)", + e->operation->id); + for (unsigned i = 0; i < n; ++i) +- fprintf (f, ", tree _p%d", i); +- fprintf (f, ")\n"); ++ emit_func (f, false, false,", tree _p%d", i); ++ emit_func (f, false, true, ")"); + fprintf (f, "{\n"); + fprintf_indent (f, 2, "const bool debug_dump = " + "dump_file && (dump_flags & TDF_FOLDING);\n"); +@@ -3956,18 +4022,22 @@ decision_tree::gen (FILE *f, bool gimple) + with compiler warnings, by generating a simple stub. */ + if (! has_kids_p) + { ++ ++ /* Cycle the file buffers. */ ++ FILE *f = get_out_file (files); ++ + if (gimple) +- fprintf (f, "\nbool\n" ++ emit_func (f, true, false, "\nbool\n" + "gimple_simplify (gimple_match_op*, gimple_seq*,\n" + " tree (*)(tree), code_helper,\n" + " const tree"); + else +- fprintf (f, "\ntree\n" ++ emit_func (f, true, false,"\ntree\n" + "generic_simplify (location_t, enum tree_code,\n" + " const tree"); + for (unsigned i = 0; i < n; ++i) +- fprintf (f, ", tree"); +- fprintf (f, ")\n"); ++ emit_func (f, false, false, ", tree"); ++ emit_func (f, false, true, ")"); + fprintf (f, "{\n"); + if (gimple) + fprintf (f, " return false;\n"); +@@ -3977,20 +4047,24 @@ decision_tree::gen (FILE *f, bool gimple) + continue; + } + ++ ++ /* Cycle the file buffers. */ ++ FILE *f = get_out_file (files); ++ + /* Then generate the main entry with the outermost switch and + tail-calls to the split-out functions. */ + if (gimple) +- fprintf (f, "\nbool\n" ++ emit_func (f, true, false, "\nbool\n" + "gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,\n" + " tree (*valueize)(tree) ATTRIBUTE_UNUSED,\n" + " code_helper code, const tree type"); + else +- fprintf (f, "\ntree\n" ++ emit_func (f, true, false, "\ntree\n" + "generic_simplify (location_t loc, enum tree_code code, " + "const tree type ATTRIBUTE_UNUSED"); + for (unsigned i = 0; i < n; ++i) +- fprintf (f, ", tree _p%d", i); +- fprintf (f, ")\n"); ++ emit_func (f, false, false, ", tree _p%d", i); ++ emit_func (f, false, true, ")"); + fprintf (f, "{\n"); + + if (gimple) +@@ -4045,11 +4119,11 @@ decision_tree::gen (FILE *f, bool gimple) + void + write_predicate (FILE *f, predicate_id *p, decision_tree &dt, bool gimple) + { +- fprintf (f, "\nbool\n" +- "%s%s (tree t%s%s)\n" +- "{\n", gimple ? "gimple_" : "tree_", p->id, +- p->nargs > 0 ? ", tree *res_ops" : "", +- gimple ? ", tree (*valueize)(tree) ATTRIBUTE_UNUSED" : ""); ++ emit_func (f, true, true, "\nbool\n%s%s (tree t%s%s)", ++ gimple ? "gimple_" : "tree_", p->id, ++ p->nargs > 0 ? ", tree *res_ops" : "", ++ gimple ? ", tree (*valueize)(tree) ATTRIBUTE_UNUSED" : ""); ++ fprintf (f, "{\n"); + /* Conveniently make 'type' available. */ + fprintf_indent (f, 2, "const tree type = TREE_TYPE (t);\n"); + fprintf_indent (f, 2, "const bool debug_dump = " +@@ -4070,9 +4144,13 @@ write_header (FILE *f, const char *head) + { + fprintf (f, "/* Generated automatically by the program `genmatch' from\n"); + fprintf (f, " a IL pattern matching and simplification description. */\n"); ++ fprintf (f, "#pragma GCC diagnostic push\n"); ++ fprintf (f, "#pragma GCC diagnostic ignored \"-Wunused-variable\"\n"); ++ fprintf (f, "#pragma GCC diagnostic ignored \"-Wunused-function\"\n"); + + /* Include the header instead of writing it awkwardly quoted here. */ +- fprintf (f, "\n#include \"%s\"\n", head); ++ if (head) ++ fprintf (f, "\n#include \"%s\"\n", head); + } + + +@@ -5213,6 +5291,30 @@ round_alloc_size (size_t s) + } + + ++/* Construct and display the help menu. */ ++ ++static void ++showUsage () ++{ ++ fprintf (stderr, "Usage: genmatch [--gimple] [--generic] " ++ "[--header=<filename>] [--include=<filename>] [-v[v]] input " ++ "[<outputfile>...]\n"); ++ fprintf (stderr, "\nWhen more then one outputfile is specified --header " ++ "is required.\n"); ++} ++ ++/* Write out the correct include to the match-head fle containing the helper ++ files. */ ++ ++static void ++write_header_includes (bool gimple, FILE *header_file) ++{ ++ if (gimple) ++ fprintf (header_file, "#include \"gimple-match-head.cc\"\n"); ++ else ++ fprintf (header_file, "#include \"generic-match-head.cc\"\n"); ++} ++ + /* The genmatch generator program. It reads from a pattern description + and outputs GIMPLE or GENERIC IL matching and simplification routines. */ + +@@ -5227,25 +5329,44 @@ main (int argc, char **argv) + return 1; + + bool gimple = true; +- char *input = argv[argc-1]; +- for (int i = 1; i < argc - 1; ++i) ++ char *s_header_file = NULL; ++ char *s_include_file = NULL; ++ auto_vec <char *> files; ++ char *input = NULL; ++ int last_file = argc - 1; ++ for (int i = argc - 1; i >= 1; --i) + { + if (strcmp (argv[i], "--gimple") == 0) + gimple = true; + else if (strcmp (argv[i], "--generic") == 0) + gimple = false; ++ else if (strncmp (argv[i], "--header=", 9) == 0) ++ s_header_file = &argv[i][9]; ++ else if (strncmp (argv[i], "--include=", 10) == 0) ++ s_include_file = &argv[i][10]; + else if (strcmp (argv[i], "-v") == 0) + verbose = 1; + else if (strcmp (argv[i], "-vv") == 0) + verbose = 2; ++ else if (strncmp (argv[i], "--", 2) != 0 && last_file-- == i) ++ files.safe_push (argv[i]); + else + { +- fprintf (stderr, "Usage: genmatch " +- "[--gimple] [--generic] [-v[v]] input\n"); ++ showUsage (); + return 1; + } + } + ++ /* Validate if the combinations are valid. */ ++ if ((files.length () > 1 && !s_header_file) || files.is_empty ()) ++ showUsage (); ++ ++ if (!s_include_file) ++ s_include_file = s_header_file; ++ ++ /* Input file is the last in the reverse list. */ ++ input = files.pop (); ++ + line_table = XCNEW (class line_maps); + linemap_init (line_table, 0); + line_table->reallocator = xrealloc; +@@ -5292,10 +5413,28 @@ main (int argc, char **argv) + /* Parse ahead! */ + parser p (r, gimple); + +- if (gimple) +- write_header (stdout, "gimple-match-head.cc"); ++ /* Create file buffers. */ ++ int n_parts = files.is_empty () ? 1 : files.length (); ++ auto_vec <FILE *> parts (n_parts); ++ if (files.is_empty ()) ++ { ++ parts.quick_push (stdout); ++ write_header (stdout, s_include_file); ++ write_header_includes (gimple, stdout); ++ } + else +- write_header (stdout, "generic-match-head.cc"); ++ { ++ for (char *s_file : files) ++ { ++ parts.quick_push (fopen (s_file, "w")); ++ write_header (parts.last (), s_include_file); ++ } ++ ++ header_file = fopen (s_header_file, "w"); ++ fprintf (header_file, "#ifndef GCC_GIMPLE_MATCH_AUTO_H\n" ++ "#define GCC_GIMPLE_MATCH_AUTO_H\n"); ++ write_header_includes (gimple, header_file); ++ } + + /* Go over all predicates defined with patterns and perform + lowering and code generation. */ +@@ -5315,7 +5454,10 @@ main (int argc, char **argv) + if (verbose == 2) + dt.print (stderr); + +- write_predicate (stdout, pred, dt, gimple); ++ /* Cycle the file buffers. */ ++ FILE *f = get_out_file (parts); ++ ++ write_predicate (f, pred, dt, gimple); + } + + /* Lower the main simplifiers and generate code for them. */ +@@ -5332,7 +5474,19 @@ main (int argc, char **argv) + if (verbose == 2) + dt.print (stderr); + +- dt.gen (stdout, gimple); ++ dt.gen (parts, gimple); ++ ++ for (FILE *f : parts) ++ { ++ fprintf (f, "#pragma GCC diagnostic pop\n"); ++ fclose (f); ++ } ++ ++ if (header_file) ++ { ++ fprintf (header_file, "#endif /* GCC_GIMPLE_MATCH_AUTO_H. */\n"); ++ fclose (header_file); ++ } + + /* Finalize. */ + cpp_finish (r, NULL); +-- +2.44.0 + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109927#c21 + +From dcfebe060ee266f364bb60f1cdf0cec58818c4f7 Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Fri, 5 May 2023 13:42:17 +0100 +Subject: [PATCH 06/15] match.pd: Use splits in makefile and make configurable. + +This updates the build system to split up match.pd files into chunks of 10. +This also introduces a new flag --with-matchpd-partitions which can be used to +change the number of partitions. + +For the analysis of why 10 please look at the previous patch in the series. + +gcc/ChangeLog: + + PR bootstrap/84402 + * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ, + GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O, + GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New. + (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them. + (s-match): Split into s-generic-match and s-gimple-match. + * configure.ac (with-matchpd-partitions, + DEFAULT_MATCHPD_PARTITIONS): New. + * configure: Regenerate. + +(cherry picked from commit 0a85544e1aaeca41133ecfc438cda913dbc0f122) +--- + gcc/Makefile.in | 67 +++++++++++++++++++++++++++++++++--------------- + gcc/config.in | 6 +++++ + gcc/configure | 29 +++++++++++++++++++-- + gcc/configure.ac | 15 +++++++++++ + 4 files changed, 95 insertions(+), 22 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 406856acde1c..f0c34d00ecbc 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -214,6 +214,14 @@ rtl-ssa-warn = $(STRICT_WARN) + GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $(NOCOMMON_FLAG) $($@-warn) + GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn) + ++# The number of splits to be made for the match.pd files. ++NUM_MATCH_SPLITS = @DEFAULT_MATCHPD_PARTITIONS@ ++MATCH_SPLITS_SEQ = $(shell seq 1 $(NUM_MATCH_SPLITS)) ++GIMPLE_MATCH_PD_SEQ_SRC = $(patsubst %, gimple-match-%.cc, $(MATCH_SPLITS_SEQ)) ++GIMPLE_MATCH_PD_SEQ_O = $(patsubst %, gimple-match-%.o, $(MATCH_SPLITS_SEQ)) ++GENERIC_MATCH_PD_SEQ_SRC = $(patsubst %, generic-match-%.cc, $(MATCH_SPLITS_SEQ)) ++GENERIC_MATCH_PD_SEQ_O = $(patsubst %, generic-match-%.o, $(MATCH_SPLITS_SEQ)) ++ + # These files are to have specific diagnostics suppressed, or are not to + # be subject to -Werror: + # flex output may yield harmless "no previous prototype" warnings +@@ -222,9 +230,8 @@ gengtype-lex.o-warn = -Wno-error + libgcov-util.o-warn = -Wno-error + libgcov-driver-tool.o-warn = -Wno-error + libgcov-merge-tool.o-warn = -Wno-error +-gimple-match.o-warn = -Wno-unused ++gimple-match-head.o-warn = -Wno-unused + gimple-match-exports.o-warn = -Wno-unused +-generic-match.o-warn = -Wno-unused + dfp.o-warn = -Wno-strict-aliasing + + # All warnings have to be shut off in stage1 if the compiler used then +@@ -1312,9 +1319,9 @@ ANALYZER_OBJS = \ + # will build them sooner, because they are large and otherwise tend to be + # the last objects to finish building. + OBJS = \ +- gimple-match.o \ ++ $(GIMPLE_MATCH_PD_SEQ_O) \ + gimple-match-exports.o \ +- generic-match.o \ ++ $(GENERIC_MATCH_PD_SEQ_O) \ + insn-attrtab.o \ + insn-automata.o \ + insn-dfatab.o \ +@@ -1807,7 +1814,8 @@ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ + insn-output.cc insn-recog.cc insn-emit.cc insn-extract.cc insn-peep.cc \ + insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ + insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \ +- tm-preds.h tm-constrs.h checksum-options gimple-match.cc generic-match.cc \ ++ tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \ ++ $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \ + tree-check.h min-insn-modes.cc insn-modes.cc insn-modes.h insn-modes-inline.h \ + genrtl.h gt-*.h gtype-*.h gtype-desc.cc gtyp-input.list \ + case-cfn-macros.h cfn-operators.pd \ +@@ -2422,7 +2430,8 @@ $(common_out_object_file): $(common_out_file) + .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \ + insn-emit.cc insn-recog.cc insn-extract.cc insn-output.cc insn-peep.cc \ + insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ +- insn-latencytab.cc insn-preds.cc gimple-match.cc generic-match.cc \ ++ insn-latencytab.cc insn-preds.cc $(GIMPLE_MATCH_PD_SEQ_SRC) \ ++ $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \ + insn-target-def.h + + # Dependencies for the md file. The first time through, we just assume +@@ -2665,19 +2674,36 @@ s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in + false; \ + fi + +-gimple-match.cc: s-match gimple-match-head.cc gimple-match-exports.cc ; @true +-generic-match.cc: s-match generic-match-head.cc ; @true +- +-s-match: build/genmatch$(build_exeext) $(srcdir)/match.pd cfn-operators.pd +- $(RUN_GEN) build/genmatch$(build_exeext) --gimple $(srcdir)/match.pd \ +- > tmp-gimple-match.cc +- $(RUN_GEN) build/genmatch$(build_exeext) --generic $(srcdir)/match.pd \ +- > tmp-generic-match.cc +- $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match.cc \ +- gimple-match.cc +- $(SHELL) $(srcdir)/../move-if-change tmp-generic-match.cc \ +- generic-match.cc +- $(STAMP) s-match ++$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc \ ++ gimple-match-exports.cc; @true ++gimple-match-auto.h: s-gimple-match gimple-match-head.cc \ ++ gimple-match-exports.cc; @true ++$(GENERIC_MATCH_PD_SEQ_SRC): s-generic-match generic-match-head.cc; @true ++generic-match-auto.h: s-generic-match generic-match-head.cc; @true ++ ++s-gimple-match: build/genmatch$(build_exeext) \ ++ $(srcdir)/match.pd cfn-operators.pd ++ $(RUN_GEN) build/genmatch$(build_exeext) --gimple \ ++ --header=tmp-gimple-match-auto.h --include=gimple-match-auto.h \ ++ $(srcdir)/match.pd $(patsubst %, tmp-%, $(GIMPLE_MATCH_PD_SEQ_SRC)) ++ $(foreach id, $(MATCH_SPLITS_SEQ), \ ++ $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-$(id).cc \ ++ gimple-match-$(id).cc;) ++ $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-auto.h \ ++ gimple-match-auto.h ++ $(STAMP) s-gimple-match ++ ++s-generic-match: build/genmatch$(build_exeext) \ ++ $(srcdir)/match.pd cfn-operators.pd ++ $(RUN_GEN) build/genmatch$(build_exeext) --generic \ ++ --header=tmp-generic-match-auto.h --include=generic-match-auto.h \ ++ $(srcdir)/match.pd $(patsubst %, tmp-%, $(GENERIC_MATCH_PD_SEQ_SRC)) ++ $(foreach id, $(MATCH_SPLITS_SEQ), \ ++ $(SHELL) $(srcdir)/../move-if-change tmp-generic-match-$(id).cc \ ++ generic-match-$(id).cc;) ++ $(SHELL) $(srcdir)/../move-if-change tmp-generic-match-auto.h \ ++ generic-match-auto.h ++ $(STAMP) s-generic-match + + GTFILES = $(CPPLIB_H) $(srcdir)/input.h $(srcdir)/coretypes.h \ + $(host_xm_file_list) \ +@@ -2812,7 +2838,8 @@ generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_H) multilib.h \ + $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \ + options.h target-hooks-def.h insn-opinit.h \ + common/common-target-hooks-def.h pass-instances.def \ +- gimple-match.cc generic-match.cc \ ++ $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \ ++ gimple-match-auto.h generic-match-auto.h \ + c-family/c-target-hooks-def.h d/d-target-hooks-def.h \ + case-cfn-macros.h \ + cfn-operators.pd omp-device-properties.h +diff --git a/gcc/config.in b/gcc/config.in +index 5281a12a707c..ea60c5b11fc5 100644 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -67,6 +67,12 @@ + #endif + + ++/* Define to larger than one set the number of match.pd partitions to make. */ ++#ifndef USED_FOR_TARGET ++#undef DEFAULT_MATCHPD_PARTITIONS ++#endif ++ ++ + /* Define to larger than zero set the default stack clash protector size. */ + #ifndef USED_FOR_TARGET + #undef DEFAULT_STK_CLASH_GUARD_SIZE +diff --git a/gcc/configure b/gcc/configure +index ade0af23e8cc..542d100c2b73 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -838,6 +838,7 @@ enable_gcov + enable_shared + enable_fixed_point + enable_decimal_float ++DEFAULT_MATCHPD_PARTITIONS + with_float + with_cpu + enable_multiarch +@@ -965,6 +966,7 @@ enable_valgrind_annotations + enable_multilib + enable_multiarch + with_stack_clash_protection_guard_size ++with_matchpd_partitions + enable___cxa_atexit + enable_decimal_float + enable_fixed_point +@@ -1832,6 +1834,9 @@ Optional Packages: + --with-stack-clash-protection-guard-size=size + Set the default stack clash protection guard size + for specific targets as a power of two in bytes. ++ --with-matchpd-partitions=num ++ Set the number of partitions to make for gimple and ++ generic when splitting match.pd. [default=10] + --with-dwarf2 force the default debug format to be DWARF 2 (or + later) + --with-specs=SPECS add SPECS to driver command-line processing +@@ -7918,6 +7923,26 @@ cat >>confdefs.h <<_ACEOF + _ACEOF + + ++# Specify the number of splits of match.pd to generate. ++ ++# Check whether --with-matchpd-partitions was given. ++if test "${with_matchpd_partitions+set}" = set; then : ++ withval=$with_matchpd_partitions; DEFAULT_MATCHPD_PARTITIONS="$with_matchpd_partitions" ++else ++ DEFAULT_MATCHPD_PARTITIONS=10 ++fi ++ ++if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then ++ as_fn_error $? "Invalid value $DEFAULT_MATCHPD_PARTITIONS for --with-matchpd-partitions. Cannot be negative." "$LINENO" 5 ++fi ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define DEFAULT_MATCHPD_PARTITIONS $DEFAULT_MATCHPD_PARTITIONS ++_ACEOF ++ ++ ++ + # Enable __cxa_atexit for C++. + # Check whether --enable-__cxa_atexit was given. + if test "${enable___cxa_atexit+set}" = set; then : +@@ -19871,7 +19896,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 19874 "configure" ++#line 19899 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -19977,7 +20002,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 19980 "configure" ++#line 20005 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +diff --git a/gcc/configure.ac b/gcc/configure.ac +index bf8ff4d63906..31aa8566a3e7 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -943,6 +943,21 @@ fi + AC_DEFINE_UNQUOTED(DEFAULT_STK_CLASH_GUARD_SIZE, $DEFAULT_STK_CLASH_GUARD_SIZE, + [Define to larger than zero set the default stack clash protector size.]) + ++# Specify the number of splits of match.pd to generate. ++AC_ARG_WITH(matchpd-partitions, ++[AS_HELP_STRING([--with-matchpd-partitions=num], ++[Set the number of partitions to make for gimple and generic when splitting match.pd. [default=10]])], ++[DEFAULT_MATCHPD_PARTITIONS="$with_matchpd_partitions"], [DEFAULT_MATCHPD_PARTITIONS=10]) ++if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then ++ AC_MSG_ERROR(m4_normalize([ ++ Invalid value $DEFAULT_MATCHPD_PARTITIONS for --with-matchpd-partitions. \ ++ Cannot be negative.])) ++fi ++ ++AC_DEFINE_UNQUOTED(DEFAULT_MATCHPD_PARTITIONS, $DEFAULT_MATCHPD_PARTITIONS, ++ [Define to larger than one set the number of match.pd partitions to make.]) ++AC_SUBST(DEFAULT_MATCHPD_PARTITIONS) ++ + # Enable __cxa_atexit for C++. + AC_ARG_ENABLE(__cxa_atexit, + [AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])], +-- +2.44.0 + +From 2c1f550db00c7dd9abede5644a3acd915767e0ad Mon Sep 17 00:00:00 2001 +From: Alexander Monakov <amonakov@ispras.ru> +Date: Fri, 5 May 2023 19:46:25 +0300 +Subject: [PATCH 07/15] Makefile.in: clean up match.pd-related dependencies + +Clean up confusing changes from the recent refactoring for +parallel match.pd build. + +gimple-match-head.o is not built. Remove related flags adjustment. + +Autogenerated gimple-match-N.o files do not depend on +gimple-match-exports.cc. + +{gimple,generic)-match-auto.h only depend on the prerequisites of the +corresponding s-{gimple,generic}-match stamp file, not any .cc file. + +gcc/ChangeLog: + + * Makefile.in: (gimple-match-head.o-warn): Remove. + (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on + gimple-match-exports.cc. + (gimple-match-auto.h): Only depend on s-gimple-match. + (generic-match-auto.h): Likewise. + +(cherry picked from commit 31c70a7daa368767f0f58e0389deb2c69d9e14fd) +--- + gcc/Makefile.in | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index f0c34d00ecbc..fe3af5c8008c 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -230,7 +230,6 @@ gengtype-lex.o-warn = -Wno-error + libgcov-util.o-warn = -Wno-error + libgcov-driver-tool.o-warn = -Wno-error + libgcov-merge-tool.o-warn = -Wno-error +-gimple-match-head.o-warn = -Wno-unused + gimple-match-exports.o-warn = -Wno-unused + dfp.o-warn = -Wno-strict-aliasing + +@@ -2674,12 +2673,10 @@ s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in + false; \ + fi + +-$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc \ +- gimple-match-exports.cc; @true +-gimple-match-auto.h: s-gimple-match gimple-match-head.cc \ +- gimple-match-exports.cc; @true ++$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc; @true ++gimple-match-auto.h: s-gimple-match; @true + $(GENERIC_MATCH_PD_SEQ_SRC): s-generic-match generic-match-head.cc; @true +-generic-match-auto.h: s-generic-match generic-match-head.cc; @true ++generic-match-auto.h: s-generic-match; @true + + s-gimple-match: build/genmatch$(build_exeext) \ + $(srcdir)/match.pd cfn-operators.pd +-- +2.44.0 + +https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=319aef8d2fde32be5cfed99f321c7f90e33d1f1d + +From a18a994030d16f58ebced231e778ec4e06a98abb Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek <jakub@redhat.com> +Date: Sat, 6 May 2023 02:32:17 +0200 +Subject: [PATCH 08/15] build: Replace seq for portability with GNU Make + variant + +Some hosts like AIX don't have seq command, this patch replaces it +with something that uses just GNU make features we've been using +for this already before for the parallel make check. + +2023-05-06 Jakub Jelinek <jakub@redhat.com> + + * Makefile.in (check_p_numbers): Rename to one_to_9999, move + earlier with helper variables also renamed. + (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999)) + instead of $(shell seq 1 $(NUM_MATCH_SPLITS)). + (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers). + +(cherry picked from commit 319aef8d2fde32be5cfed99f321c7f90e33d1f1d) +--- + gcc/Makefile.in | 22 ++++++++++++---------- + 1 file changed, 12 insertions(+), 10 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index fe3af5c8008c..975fbb61ea8a 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -214,9 +214,19 @@ rtl-ssa-warn = $(STRICT_WARN) + GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $(NOCOMMON_FLAG) $($@-warn) + GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn) + ++# 1 2 3 ... 9999 ++one_to_9999_0:=1 2 3 4 5 6 7 8 9 ++one_to_9999_1:=0 $(one_to_9999_0) ++one_to_9999_2:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_1))) ++one_to_9999_3:=$(addprefix 0,$(one_to_9999_1)) $(one_to_9999_2) ++one_to_9999_4:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_3))) ++one_to_9999_5:=$(addprefix 0,$(one_to_9999_3)) $(one_to_9999_4) ++one_to_9999_6:=$(foreach i,$(one_to_9999_0),$(addprefix $(i),$(one_to_9999_5))) ++one_to_9999:=$(one_to_9999_0) $(one_to_9999_2) $(one_to_9999_4) $(one_to_9999_6) ++ + # The number of splits to be made for the match.pd files. + NUM_MATCH_SPLITS = @DEFAULT_MATCHPD_PARTITIONS@ +-MATCH_SPLITS_SEQ = $(shell seq 1 $(NUM_MATCH_SPLITS)) ++MATCH_SPLITS_SEQ = $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999)) + GIMPLE_MATCH_PD_SEQ_SRC = $(patsubst %, gimple-match-%.cc, $(MATCH_SPLITS_SEQ)) + GIMPLE_MATCH_PD_SEQ_O = $(patsubst %, gimple-match-%.o, $(MATCH_SPLITS_SEQ)) + GENERIC_MATCH_PD_SEQ_SRC = $(patsubst %, generic-match-%.cc, $(MATCH_SPLITS_SEQ)) +@@ -4224,18 +4234,10 @@ $(patsubst %,%-subtargets,$(lang_checks)): check-%-subtargets: + check_p_tool=$(firstword $(subst _, ,$*)) + check_p_count=$(check_$(check_p_tool)_parallelize) + check_p_subno=$(word 2,$(subst _, ,$*)) +-check_p_numbers0:=1 2 3 4 5 6 7 8 9 +-check_p_numbers1:=0 $(check_p_numbers0) +-check_p_numbers2:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers1))) +-check_p_numbers3:=$(addprefix 0,$(check_p_numbers1)) $(check_p_numbers2) +-check_p_numbers4:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers3))) +-check_p_numbers5:=$(addprefix 0,$(check_p_numbers3)) $(check_p_numbers4) +-check_p_numbers6:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers5))) +-check_p_numbers:=$(check_p_numbers0) $(check_p_numbers2) $(check_p_numbers4) $(check_p_numbers6) + check_p_subdir=$(subst _,,$*) + check_p_subdirs=$(wordlist 1,$(check_p_count),$(wordlist 1, \ + $(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128), \ +- $(check_p_numbers))) ++ $(one_to_9999))) + + # For parallelized check-% targets, this decides whether parallelization + # is desirable (if -jN is used). If desirable, recursive make is run with +-- +2.44.0 + +https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=bc45e18d433f879a02e369d027829f90f9e85724 + +From b60091fe7d22e0cac71461dceeb804e37555b5d3 Mon Sep 17 00:00:00 2001 +From: Tamar Christina <tamar.christina@arm.com> +Date: Mon, 12 Jun 2023 14:06:08 +0100 +Subject: [PATCH 09/15] Remove DEFAULT_MATCHPD_PARTITIONS macro + +As Jakub pointed out, DEFAULT_MATCHPD_PARTITIONS +is now unused and can be removed. + +gcc/ChangeLog: + + * config.in: Regenerate. + * configure: Regenerate. + * configure.ac: Remove DEFAULT_MATCHPD_PARTITIONS. + +(cherry picked from commit bc45e18d433f879a02e369d027829f90f9e85724) +--- + gcc/config.in | 6 ------ + gcc/configure | 9 ++------- + gcc/configure.ac | 2 -- + 3 files changed, 2 insertions(+), 15 deletions(-) + +diff --git a/gcc/config.in b/gcc/config.in +index ea60c5b11fc5..5281a12a707c 100644 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -67,12 +67,6 @@ + #endif + + +-/* Define to larger than one set the number of match.pd partitions to make. */ +-#ifndef USED_FOR_TARGET +-#undef DEFAULT_MATCHPD_PARTITIONS +-#endif +- +- + /* Define to larger than zero set the default stack clash protector size. */ + #ifndef USED_FOR_TARGET + #undef DEFAULT_STK_CLASH_GUARD_SIZE +diff --git a/gcc/configure b/gcc/configure +index 542d100c2b73..cc8247037569 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -7937,11 +7937,6 @@ if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then + fi + + +-cat >>confdefs.h <<_ACEOF +-#define DEFAULT_MATCHPD_PARTITIONS $DEFAULT_MATCHPD_PARTITIONS +-_ACEOF +- +- + + # Enable __cxa_atexit for C++. + # Check whether --enable-__cxa_atexit was given. +@@ -19896,7 +19891,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 19899 "configure" ++#line 19894 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -20002,7 +19997,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 20005 "configure" ++#line 20000 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 31aa8566a3e7..d02ffc22a3a3 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -954,8 +954,6 @@ if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then + Cannot be negative.])) + fi + +-AC_DEFINE_UNQUOTED(DEFAULT_MATCHPD_PARTITIONS, $DEFAULT_MATCHPD_PARTITIONS, +- [Define to larger than one set the number of match.pd partitions to make.]) + AC_SUBST(DEFAULT_MATCHPD_PARTITIONS) + + # Enable __cxa_atexit for C++. +-- +2.44.0 + diff --git a/system/gcc/risc-san.patch b/system/gcc/risc-san.patch new file mode 100644 index 000000000..db4b14697 --- /dev/null +++ b/system/gcc/risc-san.patch @@ -0,0 +1,59 @@ +Ensure TSan works on PowerPC and RISC-V. + +Ported to GCC from compiler-rt. Original patch at: https://github.com/chimera-linux/cports/blob/0f5c5be86e/main/llvm/patches/0008-compiler-rt-lsan-basic-musl-fixes-on-various-archs.patch + +--- gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp.old 2024-05-21 02:47:42.000000000 -0500 ++++ gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp 2024-08-05 07:52:22.981401062 -0500 +@@ -29,6 +29,14 @@ + #include "sanitizer_procmaps.h" + #include "sanitizer_solaris.h" + ++#if defined(__powerpc__) ++#define DTP_OFFSET 0x8000 ++#elif SANITIZER_RISCV64 ++#define DTP_OFFSET 0x800 ++#else ++#define DTP_OFFSET 0 ++#endif ++ + #if SANITIZER_NETBSD + #define _RTLD_SOURCE // for __lwp_gettcb_fast() / __lwp_getprivate_fast() + #endif +@@ -289,6 +297,7 @@ + return val; + } + ++#if SANITIZER_GLIBC + uptr ThreadDescriptorSize() { + uptr val = atomic_load_relaxed(&thread_descriptor_size); + if (val) +@@ -303,6 +312,9 @@ + atomic_store_relaxed(&thread_descriptor_size, val); + return val; + } ++#else ++uptr ThreadDescriptorSize() { return 0; } ++#endif + + #if defined(__mips__) || defined(__powerpc64__) || SANITIZER_RISCV64 + // TlsPreTcbSize includes size of struct pthread_descr and size of tcb +@@ -392,6 +404,7 @@ + begin = (uptr)__tls_get_addr(mod_and_off); + #endif + } ++ begin -= DTP_OFFSET; + for (unsigned i = 0; i != info->dlpi_phnum; ++i) + if (info->dlpi_phdr[i].p_type == PT_TLS) { + static_cast<InternalMmapVector<TlsBlock> *>(data)->push_back( +@@ -542,9 +555,11 @@ + else if (SANITIZER_FREEBSD) + *size += 128; // RTLD_STATIC_TLS_EXTRA + #if defined(__mips__) || defined(__powerpc64__) || SANITIZER_RISCV64 ++# if SANITIZER_GLIBC + const uptr pre_tcb_size = TlsPreTcbSize(); + *addr -= pre_tcb_size; + *size += pre_tcb_size; ++# endif + #else + // arm and aarch64 reserve two words at TP, so this underestimates the range. + // However, this is sufficient for the purpose of finding the pointers to diff --git a/system/gcc/sanitation.patch b/system/gcc/sanitation.patch new file mode 100644 index 000000000..984b60498 --- /dev/null +++ b/system/gcc/sanitation.patch @@ -0,0 +1,184 @@ +--- gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_linux.cpp.old 2024-05-21 02:47:42.000000000 -0500 ++++ gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_linux.cpp 2024-07-24 15:56:06.119891718 -0500 +@@ -82,6 +82,10 @@ + # include <sys/sysmacros.h> + #endif + ++#if SANITIZER_LINUX && defined(__powerpc__) ++# include <asm/ptrace.h> ++#endif ++ + #if SANITIZER_FREEBSD + #include <sys/exec.h> + #include <sys/procctl.h> +@@ -277,7 +281,7 @@ + return res; + } + +-#if (!SANITIZER_LINUX_USES_64BIT_SYSCALLS || SANITIZER_SPARC) && SANITIZER_LINUX ++#if (!SANITIZER_LINUX_USES_64BIT_SYSCALLS || SANITIZER_SPARC) && SANITIZER_LINUX && defined(__glibc__) + static void stat64_to_stat(struct stat64 *in, struct stat *out) { + internal_memset(out, 0, sizeof(*out)); + out->st_dev = in->st_dev; +@@ -384,11 +388,8 @@ + return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr)buf, + 0); + # else +- struct stat64 buf64; +- int res = internal_syscall(SYSCALL(fstatat64), AT_FDCWD, (uptr)path, +- (uptr)&buf64, 0); +- stat64_to_stat(&buf64, (struct stat *)buf); +- return res; ++ return internal_syscall(SYSCALL(fstatat64), AT_FDCWD, (uptr)path, (uptr)buf, ++ 0); + # endif + # else + struct stat64 buf64; +@@ -416,11 +417,8 @@ + return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr)buf, + AT_SYMLINK_NOFOLLOW); + # else +- struct stat64 buf64; +- int res = internal_syscall(SYSCALL(fstatat64), AT_FDCWD, (uptr)path, +- (uptr)&buf64, AT_SYMLINK_NOFOLLOW); +- stat64_to_stat(&buf64, (struct stat *)buf); +- return res; ++ return internal_syscall(SYSCALL(fstatat64), AT_FDCWD, (uptr)path, (uptr)buf, ++ AT_SYMLINK_NOFOLLOW); + # endif + # else + struct stat64 buf64; +@@ -448,10 +446,7 @@ + return internal_syscall(SYSCALL(fstat), fd, (uptr)buf); + # endif + #else +- struct stat64 buf64; +- int res = internal_syscall(SYSCALL(fstat64), fd, &buf64); +- stat64_to_stat(&buf64, (struct stat *)buf); +- return res; ++ return internal_syscall(SYSCALL(fstat64), fd, (uptr)buf); + #endif + } + +@@ -871,7 +866,9 @@ + #endif + + #if SANITIZER_LINUX +-#define SA_RESTORER 0x04000000 ++# ifndef SA_RESTORER ++# define SA_RESTORER 0x04000000 ++# endif + // Doesn't set sa_restorer if the caller did not set it, so use with caution + //(see below). + int internal_sigaction_norestorer(int signum, const void *act, void *oldact) { +@@ -1677,6 +1674,8 @@ + return res; + } + #elif defined(__arm__) ++#pragma GCC push_options ++#pragma GCC optimize("omit-frame-pointer") + uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, + int *parent_tidptr, void *newtls, int *child_tidptr) { + unsigned int res; +@@ -1742,6 +1741,7 @@ + : "memory"); + return res; + } ++#pragma GCC pop_options + #endif + #endif // SANITIZER_LINUX + +@@ -2173,11 +2173,20 @@ + *bp = ucontext->uc_mcontext.mc_frame[31]; + # else + ucontext_t *ucontext = (ucontext_t*)context; ++#ifdef __powerpc64__ + *pc = ucontext->uc_mcontext.regs->nip; + *sp = ucontext->uc_mcontext.regs->gpr[PT_R1]; ++#else ++ *pc = ucontext->uc_mcontext.gregs[PT_NIP]; ++ *sp = ucontext->uc_mcontext.gregs[PT_R1]; ++#endif + // The powerpc{,64}-linux ABIs do not specify r31 as the frame + // pointer, but GCC always uses r31 when we need a frame pointer. ++#ifdef __powerpc64__ + *bp = ucontext->uc_mcontext.regs->gpr[PT_R31]; ++#else ++ *bp = ucontext->uc_mcontext.gregs[PT_R31]; ++#endif + # endif + #elif defined(__sparc__) + #if defined(__arch64__) || defined(__sparcv9) +--- gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp.old 2024-06-20 14:03:27.437916098 -0500 ++++ gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 2024-07-09 03:28:44.101087267 -0500 +@@ -51,7 +51,7 @@ + #include <time.h> + #include <wchar.h> + #include <regex.h> +-#if !SANITIZER_APPLE ++#if HAVE_UTMP_H + #include <utmp.h> + #endif + +@@ -62,7 +62,6 @@ + #if !SANITIZER_ANDROID + #include <sys/mount.h> + #include <sys/timeb.h> +-#include <utmpx.h> + #endif + + #if SANITIZER_LINUX +@@ -94,7 +93,7 @@ + # include <utime.h> + # include <sys/ptrace.h> + # if defined(__mips64) || defined(__aarch64__) || defined(__arm__) || \ +- defined(__hexagon__) || SANITIZER_RISCV64 ++ defined(__hexagon__) || defined(__powerpc__) || SANITIZER_RISCV64 + # include <asm/ptrace.h> + # ifdef __arm__ + typedef struct user_fpregs elf_fpregset_t; +@@ -313,11 +312,11 @@ + int shmctl_shm_stat = (int)SHM_STAT; + #endif + +-#if !SANITIZER_APPLE && !SANITIZER_FREEBSD ++#if HAVE_UTMP_H + unsigned struct_utmp_sz = sizeof(struct utmp); + #endif + #if !SANITIZER_ANDROID +- unsigned struct_utmpx_sz = sizeof(struct utmpx); ++ unsigned struct_utmpx_sz = 400; + #endif + + int map_fixed = MAP_FIXED; +--- gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp.old 2024-05-21 02:47:42.000000000 -0500 ++++ gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp 2024-06-20 16:23:27.115377319 -0500 +@@ -31,7 +31,7 @@ + #include <sys/types.h> // for pid_t + #include <sys/uio.h> // for iovec + #include <elf.h> // for NT_PRSTATUS +-#if (defined(__aarch64__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID ++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID + // GLIBC 2.20+ sys/user does not include asm/ptrace.h + # include <asm/ptrace.h> + #endif +--- gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc.old 2024-05-21 02:47:42.000000000 -0500 ++++ gcc-13.3.0/libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc 2024-07-24 15:56:06.129890658 -0500 +@@ -12,6 +12,9 @@ + + #define SYSCALL(name) __NR_ ## name + ++#pragma GCC push_options ++#pragma GCC optimize("omit-frame-pointer") ++ + static uptr __internal_syscall(u32 nr) { + register u32 r8 asm("r7") = nr; + register u32 r0 asm("r0"); +@@ -115,6 +118,7 @@ + #define __internal_syscall6(n, a1, a2, a3, a4, a5, a6) \ + (__internal_syscall)(n, (u32)(a1), (long)(a2), (long)(a3), (long)(a4), \ + (u32)(a5), (long)(a6)) ++#pragma GCC pop_options + + #define __SYSCALL_NARGS_X(a1, a2, a3, a4, a5, a6, a7, a8, n, ...) n + #define __SYSCALL_NARGS(...) \ diff --git a/system/gdb/APKBUILD b/system/gdb/APKBUILD index ff0476266..b069c7d9a 100644 --- a/system/gdb/APKBUILD +++ b/system/gdb/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gdb pkgver=12.1 -pkgrel=0 +pkgrel=1 pkgdesc="The GNU Debugger" url="https://www.sourceware.org/gdb/" arch="all" @@ -44,6 +44,7 @@ package() { # resolve conflict with binutils-doc rm -f "$pkgdir"/usr/share/info/bfd.info rm -f "$pkgdir"/usr/share/info/dir + rm -f "$pkgdir"/usr/share/info/ctf-spec.info # resolve conflict with binutils-lang rm -f "$pkgdir"/usr/share/locale/*/LC_MESSAGES/bfd.mo diff --git a/system/git/APKBUILD b/system/git/APKBUILD index cd84b9352..0562bfba2 100644 --- a/system/git/APKBUILD +++ b/system/git/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=git pkgver=2.40.0 -pkgrel=0 +pkgrel=1 pkgdesc="Distributed version control system" url="https://www.git-scm.com/" arch="all" @@ -30,6 +30,7 @@ source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz git-daemon.confd disable-t2082-2.patch + perl-getopt-long.patch " _gitcoredir=/usr/libexec/git-core @@ -171,4 +172,5 @@ sha512sums="a2720f8f9a0258c0bb5e23badcfd68a147682e45a5d039a42c47128296c508109d50 4bcc8367478601c856e0977d46fc4842f62daf300093a576704ad27ccd9fae975f95d3fbfcb00e9fa7254b1db64cd074f49a94fb5cf0abd8d72d7edc9ab8798c dont-test-other-encodings.patch 89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd -6d7cbb701584a078328056a67bfd32dde5795a80c0911734b38bd534699fb0165ac2b486b267c5c39b90bbb0d7c5ab0ab6ada1d068748865617326da28304eb4 disable-t2082-2.patch" +6d7cbb701584a078328056a67bfd32dde5795a80c0911734b38bd534699fb0165ac2b486b267c5c39b90bbb0d7c5ab0ab6ada1d068748865617326da28304eb4 disable-t2082-2.patch +9800318f9e6a8b6bfd8c700cce5cc326522a607b89236a868ef46940efe0566fdadf5d69dc3e72f989d61df66be8510b8989bd4ce3fc780f017f30652c7e9efa perl-getopt-long.patch" diff --git a/system/git/perl-getopt-long.patch b/system/git/perl-getopt-long.patch new file mode 100644 index 000000000..dd5776033 --- /dev/null +++ b/system/git/perl-getopt-long.patch @@ -0,0 +1,459 @@ +From 46edab516bf04c190cb2e100419dee817d3f33f6 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger <tmz@pobox.com> +Date: Wed, 15 Nov 2023 12:39:44 -0500 +Subject: [PATCH] send-email: remove stray characters from usage + +A few stray single quotes crept into the usage string in a2ce608244 +(send-email docs: add format-patch options, 2021-10-25). Remove them. + +Signed-off-by: Todd Zullinger <tmz@pobox.com> +Signed-off-by: Junio C Hamano <gitster@pobox.com> +--- + git-send-email.perl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/git-send-email.perl b/git-send-email.perl +index 897cea6564fb50..85544a18bfe37e 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -28,8 +28,8 @@ + + sub usage { + print <<EOT; +-git send-email' [<options>] <file|directory> +-git send-email' [<options>] <format-patch options> ++git send-email [<options>] <file|directory> ++git send-email [<options>] <format-patch options> + git send-email --dump-aliases + + Composing: +From d13a73e383076636534e10ba799af0c9a2b85357 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger <tmz@pobox.com> +Date: Thu, 16 Nov 2023 14:30:10 -0500 +Subject: [PATCH] perl: bump the required Perl version to 5.8.1 from 5.8.0 + +The following commit will make use of a Getopt::Long feature which is +only present in Perl >= 5.8.1. Document that as the minimum version we +support. + +Many of our Perl scripts will continue to run with 5.8.0 but this change +allows us to adjust them as needed without breaking any promises to our +users. + +The Perl requirement was last changed in d48b284183 (perl: bump the +required Perl version to 5.8 from 5.6.[21], 2010-09-24). At that time, +5.8.0 was 8 years old. It is now over 21 years old. + +Signed-off-by: Todd Zullinger <tmz@pobox.com> +Signed-off-by: Junio C Hamano <gitster@pobox.com> +--- + Documentation/CodingGuidelines | 2 +- + INSTALL | 2 +- + contrib/diff-highlight/DiffHighlight.pm | 2 +- + contrib/mw-to-git/Git/Mediawiki.pm | 2 +- + git-archimport.perl | 2 +- + git-cvsexportcommit.perl | 2 +- + git-cvsimport.perl | 2 +- + git-cvsserver.perl | 2 +- + git-send-email.perl | 4 ++-- + git-svn.perl | 2 +- + gitweb/INSTALL | 2 +- + gitweb/gitweb.perl | 2 +- + perl/Git.pm | 2 +- + perl/Git/I18N.pm | 2 +- + perl/Git/LoadCPAN.pm | 2 +- + perl/Git/LoadCPAN/Error.pm | 2 +- + perl/Git/LoadCPAN/Mail/Address.pm | 2 +- + perl/Git/Packet.pm | 2 +- + t/t0202/test.pl | 2 +- + t/t5562/invoke-with-content-length.pl | 2 +- + t/t9700/test.pl | 2 +- + t/test-terminal.perl | 2 +- + 22 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines +index 65af8d82cedd5f..aa0195d6ebab0b 100644 +--- a/Documentation/CodingGuidelines ++++ b/Documentation/CodingGuidelines +@@ -490,7 +490,7 @@ For Perl programs: + + - Most of the C guidelines above apply. + +- - We try to support Perl 5.8 and later ("use Perl 5.008"). ++ - We try to support Perl 5.8.1 and later ("use Perl 5.008001"). + + - use strict and use warnings are strongly preferred. + +diff --git a/INSTALL b/INSTALL +index 4b422888828d0e..06f29a8ae70022 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -119,7 +119,7 @@ Issues of note: + - A POSIX-compliant shell is required to run some scripts needed + for everyday use (e.g. "bisect", "request-pull"). + +- - "Perl" version 5.8 or later is needed to use some of the ++ - "Perl" version 5.8.1 or later is needed to use some of the + features (e.g. sending patches using "git send-email", + interacting with svn repositories with "git svn"). If you can + live without these, use NO_PERL. Note that recent releases of +diff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm +index 376f577737591e..636add69680675 100644 +--- a/contrib/diff-highlight/DiffHighlight.pm ++++ b/contrib/diff-highlight/DiffHighlight.pm +@@ -1,6 +1,6 @@ + package DiffHighlight; + +-use 5.008; ++use 5.008001; + use warnings FATAL => 'all'; + use strict; + +diff --git a/contrib/mw-to-git/Git/Mediawiki.pm b/contrib/mw-to-git/Git/Mediawiki.pm +index 917d9e2d3222c1..ff7811225ee671 100644 +--- a/contrib/mw-to-git/Git/Mediawiki.pm ++++ b/contrib/mw-to-git/Git/Mediawiki.pm +@@ -1,6 +1,6 @@ + package Git::Mediawiki; + +-use 5.008; ++use 5.008001; + use strict; + use POSIX; + use Git; +diff --git a/git-archimport.perl b/git-archimport.perl +index b7c173c345544d..f5a317b89961ce 100755 +--- a/git-archimport.perl ++++ b/git-archimport.perl +@@ -54,7 +54,7 @@ =head1 Devel Notes + + =cut + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Std; +diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl +index 289d4bc684dc26..1e03ba94d1b271 100755 +--- a/git-cvsexportcommit.perl ++++ b/git-cvsexportcommit.perl +@@ -1,6 +1,6 @@ + #!/usr/bin/perl + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Std; +diff --git a/git-cvsimport.perl b/git-cvsimport.perl +index 7bf3c12d678974..07ea3443f7f336 100755 +--- a/git-cvsimport.perl ++++ b/git-cvsimport.perl +@@ -13,7 +13,7 @@ + # The head revision is on branch "origin" by default. + # You can change that with the '-o' option. + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use Getopt::Long; +diff --git a/git-cvsserver.perl b/git-cvsserver.perl +index 7b757360e28c01..124f598bdc0705 100755 +--- a/git-cvsserver.perl ++++ b/git-cvsserver.perl +@@ -15,7 +15,7 @@ + #### + #### + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use bytes; +diff --git a/git-send-email.perl b/git-send-email.perl +index 897cea6564fb50..041db702d46fcc 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -16,7 +16,7 @@ + # and second line is the subject of the message. + # + +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Getopt::Long; +@@ -228,7 +228,7 @@ sub system_or_msg { + my @sprintf_args = ($cmd_name ? $cmd_name : $args->[0], $exit_code); + if (defined $msg) { + # Quiet the 'redundant' warning category, except we +- # need to support down to Perl 5.8, so we can't do a ++ # need to support down to Perl 5.8.1, so we can't do a + # "no warnings 'redundant'", since that category was + # introduced in perl 5.22, and asking for it will die + # on older perls. +diff --git a/git-svn.perl b/git-svn.perl +index be987e316f92ac..1d1c52f42468b1 100755 +--- a/git-svn.perl ++++ b/git-svn.perl +@@ -1,7 +1,7 @@ + #!/usr/bin/perl + # Copyright (C) 2006, Eric Wong <normalperson@yhbt.net> + # License: GPL v2 or later +-use 5.008; ++use 5.008001; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use strict; + use vars qw/ $AUTHOR $VERSION +diff --git a/gitweb/INSTALL b/gitweb/INSTALL +index a58e6b3c44b0ef..dadc6efa81f035 100644 +--- a/gitweb/INSTALL ++++ b/gitweb/INSTALL +@@ -29,7 +29,7 @@ Requirements + ------------ + + - Core git tools +- - Perl 5.8 ++ - Perl 5.8.1 + - Perl modules: CGI, Encode, Fcntl, File::Find, File::Basename. + - web server + +diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl +index e66eb3d9bad7cf..55e7c6567e6c47 100755 +--- a/gitweb/gitweb.perl ++++ b/gitweb/gitweb.perl +@@ -7,7 +7,7 @@ + # + # This program is licensed under the GPLv2 + +-use 5.008; ++use 5.008001; + use strict; + use warnings; + # handle ACL in file access tests +diff --git a/perl/Git.pm b/perl/Git.pm +index 117765dc73c4a8..03bf570bf4c852 100644 +--- a/perl/Git.pm ++++ b/perl/Git.pm +@@ -7,7 +7,7 @@ Git - Perl interface to the Git version control system + + package Git; + +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + +diff --git a/perl/Git/I18N.pm b/perl/Git/I18N.pm +index 895e759c57a9d9..5454c3a6d2c433 100644 +--- a/perl/Git/I18N.pm ++++ b/perl/Git/I18N.pm +@@ -1,5 +1,5 @@ + package Git::I18N; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + BEGIN { +diff --git a/perl/Git/LoadCPAN.pm b/perl/Git/LoadCPAN.pm +index 0c360bc7998607..8c7fa805f97390 100644 +--- a/perl/Git/LoadCPAN.pm ++++ b/perl/Git/LoadCPAN.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + +diff --git a/perl/Git/LoadCPAN/Error.pm b/perl/Git/LoadCPAN/Error.pm +index 5d84c202884b7c..5cecb0fcd6930a 100644 +--- a/perl/Git/LoadCPAN/Error.pm ++++ b/perl/Git/LoadCPAN/Error.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN::Error; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Git::LoadCPAN ( +diff --git a/perl/Git/LoadCPAN/Mail/Address.pm b/perl/Git/LoadCPAN/Mail/Address.pm +index 340e88a7a56be3..9f808090a66a16 100644 +--- a/perl/Git/LoadCPAN/Mail/Address.pm ++++ b/perl/Git/LoadCPAN/Mail/Address.pm +@@ -1,5 +1,5 @@ + package Git::LoadCPAN::Mail::Address; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + use Git::LoadCPAN ( +diff --git a/perl/Git/Packet.pm b/perl/Git/Packet.pm +index d144f5168f37ad..d896e6952399b0 100644 +--- a/perl/Git/Packet.pm ++++ b/perl/Git/Packet.pm +@@ -1,5 +1,5 @@ + package Git::Packet; +-use 5.008; ++use 5.008001; + use strict; + use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : (); + BEGIN { +diff --git a/t/t0202/test.pl b/t/t0202/test.pl +index 2cbf7b95907384..47d96a2a13f93b 100755 +--- a/t/t0202/test.pl ++++ b/t/t0202/test.pl +@@ -1,5 +1,5 @@ + #!/usr/bin/perl +-use 5.008; ++use 5.008001; + use lib (split(/:/, $ENV{GITPERLLIB})); + use strict; + use warnings; +diff --git a/t/t5562/invoke-with-content-length.pl b/t/t5562/invoke-with-content-length.pl +index 718dd9b49d493e..9babb9a375e5fb 100644 +--- a/t/t5562/invoke-with-content-length.pl ++++ b/t/t5562/invoke-with-content-length.pl +@@ -1,4 +1,4 @@ +-use 5.008; ++use 5.008001; + use strict; + use warnings; + +diff --git a/t/t9700/test.pl b/t/t9700/test.pl +index 6d753708d2acb6..d8e85482ab2ba7 100755 +--- a/t/t9700/test.pl ++++ b/t/t9700/test.pl +@@ -1,7 +1,7 @@ + #!/usr/bin/perl + use lib (split(/:/, $ENV{GITPERLLIB})); + +-use 5.008; ++use 5.008001; + use warnings; + use strict; + +diff --git a/t/test-terminal.perl b/t/test-terminal.perl +index 1bcf01a9a42a61..3810e9bb431903 100755 +--- a/t/test-terminal.perl ++++ b/t/test-terminal.perl +@@ -1,5 +1,5 @@ + #!/usr/bin/perl +-use 5.008; ++use 5.008001; + use strict; + use warnings; + use IO::Pty; +From 6ff658cc78f36baa74c0f25314b0043a8f4b4fc6 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger <tmz@pobox.com> +Date: Thu, 16 Nov 2023 14:30:11 -0500 +Subject: [PATCH] send-email: avoid duplicate specification warnings + +A warning is issued for options which are specified more than once +beginning with perl-Getopt-Long >= 2.55. In addition to causing users +to see warnings, this results in test failures which compare the output. +An example, from t9001-send-email.37: + + | +++ diff -u expect actual + | --- expect 2023-11-14 10:38:23.854346488 +0000 + | +++ actual 2023-11-14 10:38:23.848346466 +0000 + | @@ -1,2 +1,7 @@ + | +Duplicate specification "no-chain-reply-to" for option "no-chain-reply-to" + | +Duplicate specification "to-cover|to-cover!" for option "to-cover" + | +Duplicate specification "cc-cover|cc-cover!" for option "cc-cover" + | +Duplicate specification "no-thread" for option "no-thread" + | +Duplicate specification "no-to-cover" for option "no-to-cover" + | fatal: longline.patch:35 is longer than 998 characters + | warning: no patches were sent + | error: last command exited with $?=1 + | not ok 37 - reject long lines + +Remove the duplicate option specs. These are primarily the explicit +'--no-' prefix opts which were added in f471494303 (git-send-email.perl: +support no- prefix with older GetOptions, 2015-01-30). This was done +specifically to support perl-5.8.0 which includes Getopt::Long 2.32[1]. + +Getopt::Long 2.33 added support for the '--no-' prefix natively by +appending '!' to the option specification string, which was included in +perl-5.8.1 and is not present in perl-5.8.0. The previous commit bumped +the minimum supported Perl version to 5.8.1 so we no longer need to +provide the '--no-' variants for negatable options manually. + +Teach `--git-completion-helper` to output the '--no-' options. They are +not included in the options hash and would otherwise be lost. + +Signed-off-by: Todd Zullinger <tmz@pobox.com> +Signed-off-by: Junio C Hamano <gitster@pobox.com> +--- + git-send-email.perl | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/git-send-email.perl b/git-send-email.perl +index 041db702d46fcc..60afafb375d8f4 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -119,13 +119,16 @@ sub completion_helper { + + foreach my $key (keys %$original_opts) { + unless (exists $not_for_completion{$key}) { +- $key =~ s/!$//; ++ my $negatable = ($key =~ s/!$//); + + if ($key =~ /[:=][si]$/) { + $key =~ s/[:=][si]$//; + push (@send_email_opts, "--$_=") foreach (split (/\|/, $key)); + } else { + push (@send_email_opts, "--$_") foreach (split (/\|/, $key)); ++ if ($negatable) { ++ push (@send_email_opts, "--no-$_") foreach (split (/\|/, $key)); ++ } + } + } + } +@@ -491,7 +494,6 @@ sub config_regexp { + "bcc=s" => \@getopt_bcc, + "no-bcc" => \$no_bcc, + "chain-reply-to!" => \$chain_reply_to, +- "no-chain-reply-to" => sub {$chain_reply_to = 0}, + "sendmail-cmd=s" => \$sendmail_cmd, + "smtp-server=s" => \$smtp_server, + "smtp-server-option=s" => \@smtp_server_options, +@@ -506,34 +508,25 @@ sub config_regexp { + "smtp-auth=s" => \$smtp_auth, + "no-smtp-auth" => sub {$smtp_auth = 'none'}, + "annotate!" => \$annotate, +- "no-annotate" => sub {$annotate = 0}, + "compose" => \$compose, + "quiet" => \$quiet, + "cc-cmd=s" => \$cc_cmd, + "suppress-from!" => \$suppress_from, +- "no-suppress-from" => sub {$suppress_from = 0}, + "suppress-cc=s" => \@suppress_cc, + "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc, +- "no-signed-off-cc|no-signed-off-by-cc" => sub {$signed_off_by_cc = 0}, +- "cc-cover|cc-cover!" => \$cover_cc, +- "no-cc-cover" => sub {$cover_cc = 0}, +- "to-cover|to-cover!" => \$cover_to, +- "no-to-cover" => sub {$cover_to = 0}, ++ "cc-cover!" => \$cover_cc, ++ "to-cover!" => \$cover_to, + "confirm=s" => \$confirm, + "dry-run" => \$dry_run, + "envelope-sender=s" => \$envelope_sender, + "thread!" => \$thread, +- "no-thread" => sub {$thread = 0}, + "validate!" => \$validate, +- "no-validate" => sub {$validate = 0}, + "transfer-encoding=s" => \$target_xfer_encoding, + "format-patch!" => \$format_patch, +- "no-format-patch" => sub {$format_patch = 0}, + "8bit-encoding=s" => \$auto_8bit_encoding, + "compose-encoding=s" => \$compose_encoding, + "force" => \$force, + "xmailer!" => \$use_xmailer, +- "no-xmailer" => sub {$use_xmailer = 0}, + "batch-size=i" => \$batch_size, + "relogin-delay=i" => \$relogin_delay, + "git-completion-helper" => \$git_completion_helper, diff --git a/system/heirloom-devtools/APKBUILD b/system/heirloom-devtools/APKBUILD index c6ca8892f..cbf0633d5 100644 --- a/system/heirloom-devtools/APKBUILD +++ b/system/heirloom-devtools/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=heirloom-devtools pkgver=070527 -pkgrel=1 +pkgrel=2 pkgdesc="Development tools compatible with UNIX" url="http://heirloom.sourceforge.net/devtools.html" arch="all" @@ -20,7 +20,7 @@ source="https://downloads.sourceforge.net/heirloom/heirloom-devtools/$pkgver/hei $pkgname-$pkgver-64-bit.patch" build() { - make -j1 CXXFLAGS="${CXXFLAGS} -DMAXNETNAMELEN=255" + make -j1 CXXFLAGS="${CXXFLAGS} -DMAXNETNAMELEN=255 -std=c++98" } package() { diff --git a/system/heirloom-pax/APKBUILD b/system/heirloom-pax/APKBUILD index 303af5ebb..ec9e444d4 100644 --- a/system/heirloom-pax/APKBUILD +++ b/system/heirloom-pax/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=heirloom-pax pkgver=1.0 -pkgrel=1 +pkgrel=2 pkgdesc="Portable Archive eXchange, the POSIX archival tool" url="http://heirloom.sourceforge.net/" arch="all" @@ -13,7 +13,9 @@ makedepends="bsd-compat-headers bzip2-dev zlib-dev" replaces="pax" subpackages="$pkgname-doc" source="https://distfiles.adelielinux.org/source/${pkgname}-$pkgver.tar.xz - sysmacros.patch" + sysmacros.patch + modern-c.patch + " build() { make LD="gcc" @@ -30,4 +32,5 @@ package() { } sha512sums="7b0ad20cc51b5bcec9c07e84c603e4891f636944f6f6bd13d3decb0e9d6b23d6164b663468ee2293b37721aae20334774f4e56fd8541ffceee934050e819b642 heirloom-pax-1.0.tar.xz -bcc12138ebed707e165a1ac5dac815acd85770974e19f62610e0fe32a96879fb1173fc4e7beafde12b7bc1ed03f2751b2839eeb3ccacbe209d8cbcfe0307eac3 sysmacros.patch" +bcc12138ebed707e165a1ac5dac815acd85770974e19f62610e0fe32a96879fb1173fc4e7beafde12b7bc1ed03f2751b2839eeb3ccacbe209d8cbcfe0307eac3 sysmacros.patch +e0e2756bf3f55862880eadf6c5852e1c2dc6cdc4a75451a4d917685ef3c7f955f23229eef1c778be32bc27a1253ceaf820225d3ea794cfc88fe702adccaf9ef7 modern-c.patch" diff --git a/system/heirloom-pax/modern-c.patch b/system/heirloom-pax/modern-c.patch new file mode 100644 index 000000000..8574d71dc --- /dev/null +++ b/system/heirloom-pax/modern-c.patch @@ -0,0 +1,71 @@ +GCC 10 and higher treat enums differently and the way that cpio(1)/pax(1) use +them is no longer supported. This is similar, but not identical, to the patch +used by Gentoo for sys-apps/heirloom-tools. + +This should be upstreamable, but sadly, there is no upstream any more. +--- heirloom-pax-1.0/cpio/cpio.c.old 2024-05-25 11:20:07.088299291 -0500 ++++ heirloom-pax-1.0/cpio/cpio.c 2024-05-25 11:25:21.674430528 -0500 +@@ -824,6 +824,9 @@ + static int compressed_bar; /* this is a compressed bar archive */ + static int formatforced; /* -k -i -Hfmt forces a format */ + static long long lineno; /* input line number */ ++enum fmttype fmttype; /* type of archive format */ ++enum pax pax; /* type of pax command this is */ ++enum pax_preserve pax_preserve; /* attributes to preserve */ + + int pax_dflag; /* directory matches only itself */ + int pax_kflag; /* do not overwrite files */ +--- heirloom-pax-1.0/cpio/cpio.h.old 2007-03-26 13:14:57.000000000 -0500 ++++ heirloom-pax-1.0/cpio/cpio.h 2024-05-25 11:23:54.143854185 -0500 +@@ -31,7 +31,7 @@ + #include <sys/stat.h> + #include <inttypes.h> + +-enum { ++enum fmttype { + FMT_NONE = 00000000, /* no format chosen yet */ + + TYP_PAX = 00000010, /* uses pax-like extended headers */ +@@ -70,7 +70,8 @@ + FMT_BAR = 00400001, /* bar format type */ + + FMT_ZIP = 01000000 /* zip format */ +-} fmttype; ++}; ++extern enum fmttype fmttype; + + /* + * Zip compression method. +@@ -173,11 +174,12 @@ + extern char *progname; + extern struct glist *patterns; + +-enum { /* type of pax command this is */ ++enum pax { /* type of pax command this is */ + PAX_TYPE_CPIO = 0, /* not a pax command */ + PAX_TYPE_PAX1992 = 1, /* POSIX.2 pax command */ + PAX_TYPE_PAX2001 = 2 /* POSIX.1-2001 pax command */ +-} pax; ++}; ++extern enum pax pax; + extern int pax_dflag; + extern int pax_kflag; + extern int pax_nflag; +@@ -185,14 +187,15 @@ + extern int pax_uflag; + extern int pax_Xflag; + +-enum { ++enum pax_preserve { + PAX_P_NONE = 0000, + PAX_P_ATIME = 0001, + PAX_P_MTIME = 0004, + PAX_P_OWNER = 0010, + PAX_P_MODE = 0020, + PAX_P_EVERY = 0400 +-} pax_preserve; ++}; ++extern enum pax_preserve pax_preserve; + + extern size_t (*ofiles)(char **, size_t *); + extern void (*prtime)(time_t); diff --git a/system/icu/APKBUILD b/system/icu/APKBUILD index a2b0af950..62b39f2e4 100644 --- a/system/icu/APKBUILD +++ b/system/icu/APKBUILD @@ -43,6 +43,9 @@ prepare() { } build() { + # GCC 13 changed default fp precision behavior. (#1193) + export CXXFLAGS="${CXXFLAGS} -fexcess-precision=fast" + ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -59,7 +62,8 @@ build() { } check() { - make check + # Using TZ=UTC temporarily until we can update ICU. (#1169) + TZ=UTC make check } package() { diff --git a/system/jfsutils/APKBUILD b/system/jfsutils/APKBUILD index cf9d19a1e..e02cf1f62 100644 --- a/system/jfsutils/APKBUILD +++ b/system/jfsutils/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=jfsutils pkgver=1.1.15 -pkgrel=3 +pkgrel=4 pkgdesc="JFS filesystem utilities" url="http://jfs.sourceforge.net" arch="all" @@ -14,6 +14,7 @@ source="http://jfs.sourceforge.net/project/pub/jfsutils-$pkgver.tar.gz musl-fix-includes.patch missing-stdinth.patch sysmacros.patch + modern-gcc.patch " build() { @@ -36,4 +37,5 @@ package() { sha512sums="fa8ba7f4997471da3e6ea7239564f3395046222cfbb2b10e37b24ad0bd107b7eadbb51ce328d89d193034360b4035ca5e0e5b0b416a74483d7a2c0a2b9c65858 jfsutils-1.1.15.tar.gz fb0d7348e2e13a6a9c3a987d161e0cf05363649515366ef49a45e3580b8f6135fce8465b99ff8a351231d970371c00bea6ceb9edb1d0f24da20d261b06ec85bd musl-fix-includes.patch a8e2332f2dec37affa8404b31e7e68399d815d450422ad342243c51d117e4d7ef4aaa0e30d1389380a81ed076a7ef1e1d41fcf260fa05ce4d823aa779628982d missing-stdinth.patch -9e5006bcee7595ee978bdd6791867a22de26b241dcd8d19b84a7694b3de11b20adcfd46d7999062663bdabf985abe3a53865089fdc219ecfe5476f2dcb93eaff sysmacros.patch" +9e5006bcee7595ee978bdd6791867a22de26b241dcd8d19b84a7694b3de11b20adcfd46d7999062663bdabf985abe3a53865089fdc219ecfe5476f2dcb93eaff sysmacros.patch +8571affb0af6e4b5613e361ce69693be2b481ca0d18c5461ab248baa3946afa3370801469f3b215acf5085267acbd4b2f9e7819cfa59ae1014c47c638b641916 modern-gcc.patch" diff --git a/system/jfsutils/modern-gcc.patch b/system/jfsutils/modern-gcc.patch new file mode 100644 index 000000000..24476df7b --- /dev/null +++ b/system/jfsutils/modern-gcc.patch @@ -0,0 +1,72 @@ +Fix building with GCC 10 or later. + +Based-on: https://sources.debian.org/patches/jfsutils/1.1.15-5/gcc10_fix-1.patch/ +Source: https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/jfsutils/files/jfsutils-1.1.15-gcc10.patch + +--- jfsutils-1.1.15/fscklog/display.c ++++ jfsutils-1.1.15/fscklog/display.c +@@ -54,7 +54,7 @@ + * output: fsck extracted service log I/O buffer + * + */ +-char xchklog_buffer[XCHKLOG_BUFSIZE]; ++static char xchklog_buffer[XCHKLOG_BUFSIZE]; + + /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * +--- jfsutils-1.1.15/libfs/logredo.c ++++ jfsutils-1.1.15/libfs/logredo.c +@@ -87,9 +87,9 @@ + * S T U F F F O R T H E L O G + * + */ +-struct logsuper logsup; /* log super block */ +-int32_t numdoblk; /* number of do blocks used */ +-int32_t numnodofile; /* number of nodo file blocks used */ ++static struct logsuper logsup; /* log super block */ ++static int32_t numdoblk; /* number of do blocks used */ ++static int32_t numnodofile; /* number of nodo file blocks used */ + int32_t numExtDtPg = 0; /* number of extended dtpage blocks used */ + + /* +@@ -129,7 +129,7 @@ + */ + + /* buffer header table */ +-struct bufhdr { ++static struct bufhdr { + int16_t next; /* 2: next on free/lru list */ + int16_t prev; /* 2: previous on free/lru list */ + int16_t hnext; /* 2: next on hash chain */ +@@ -142,7 +142,7 @@ + } bufhdr[NBUFPOOL]; /* (24) */ + + /* buffer table */ +-struct bufpool { ++static struct bufpool { + char bytes[PSIZE]; + } buffer[NBUFPOOL - 1]; + +@@ -151,15 +151,16 @@ + * + * log has its own 4 page buffer pool. + */ +-uint8_t afterdata[LOGPSIZE * 2]; /* buffer to read in redopage data */ ++static uint8_t afterdata[LOGPSIZE * 2]; /* buffer to read in redopage data */ + + /* + * Miscellaneous + */ +-caddr_t prog; /* Program name */ +-int32_t mntcnt, bufsize; +-char *mntinfo; +-int32_t retcode; /* return code from logredo */ ++static caddr_t prog; /* Program name */ ++extern int32_t mntcnt; ++static int32_t bufsize; ++static char *mntinfo; ++static int32_t retcode; /* return code from logredo */ + int end_of_transaction = 0; + + /* + diff --git a/system/libarchive/APKBUILD b/system/libarchive/APKBUILD index 18fae33b9..9fcca3319 100644 --- a/system/libarchive/APKBUILD +++ b/system/libarchive/APKBUILD @@ -1,20 +1,20 @@ # Contributor: Sergey Lukin <sergej.lukin@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libarchive -pkgver=3.6.2 -pkgrel=1 +pkgver=3.7.2 +pkgrel=0 pkgdesc="Multi-format archive and compression library" url="https://www.libarchive.org/" arch="all" license="BSD-2-Clause AND BSD-3-Clause AND Public-Domain" depends="" makedepends="zlib-dev bzip2-dev xz-dev lz4-dev acl-dev openssl-dev expat-dev - attr-dev zstd-dev autoconf automake libtool" + attr-dev zstd-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools" source="https://github.com/libarchive/libarchive/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz disable-locale-tests.patch disable-unaligned-access-arm32-xxhash.patch - revert-autotools-Fix-static-linking-when-openssl-is-.patch + fix-test-32-bit-zstd.patch " # secfixes: @@ -27,11 +27,6 @@ source="https://github.com/libarchive/libarchive/releases/download/v$pkgver/$pkg # 3.3.2-r1: # - CVE-2017-14166 -prepare() { - default_prepare - autoreconf -i -} - build () { ./configure \ --build=$CBUILD \ @@ -66,7 +61,7 @@ tools() { ln -s bsdcpio "$subpkgdir"/usr/bin/cpio } -sha512sums="24e476465054a29a2d48adf3c197a171b5361fa5038729a1f14d578c6701424de4e5dd6a2b20a6b697969ab43bdd8afc1585f8de0465c266f455d7eaa19e5048 libarchive-3.6.2.tar.gz +sha512sums="1af253203df3014d1fbf3e99ebdc7aa2a3f036c7c2606d0f0550c49973b0fff99ee7262f4a6e20090c0806c40e964731334360daa3b718bde40108183eacc8a1 libarchive-3.7.2.tar.gz 27cf2aaa3e70e3a2a9944fac0c96c411e669c7e1a48daad1423bff68eef0f49153e5ef9d22dc9591a65353119d7fe203a28258ab82278aeb86b46fe691bcfb6a disable-locale-tests.patch 56a2b13b6cd7b127c04ac50ebf49994ec91ff2467d5d0f32b8428bd4df82b167459d4630dee5d1b5119f70b04ea6fe4411d44b768e0f313fa302c9e5fe51b7cd disable-unaligned-access-arm32-xxhash.patch -1b69d47d900d658622de7a621056f8abeacaf6ad4871a2d326fc925d76f7fe8ae15b16d16979fb8c62e429e231e13a97a89e8d064b3ed2b53b1399722207e1ab revert-autotools-Fix-static-linking-when-openssl-is-.patch" +f0a8e3881e742395afc74e418eceab419280152f0884fd6b9dc971d90e117de1cd0a7578c08f14f694c75b904f12fa71fb0102dde0d67a095f6369b3413f7348 fix-test-32-bit-zstd.patch" diff --git a/system/libarchive/fix-test-32-bit-zstd.patch b/system/libarchive/fix-test-32-bit-zstd.patch new file mode 100644 index 000000000..5f43c2626 --- /dev/null +++ b/system/libarchive/fix-test-32-bit-zstd.patch @@ -0,0 +1,29 @@ +From 3bd918d92f8c34ba12de9c6604d96f9e262a59fc Mon Sep 17 00:00:00 2001 +From: Martin Matuska <martin@matuska.de> +Date: Tue, 12 Sep 2023 08:54:47 +0200 +Subject: [PATCH] tests: fix zstd long option test for 32-bit architectures + +Fixes #1968 +--- + libarchive/test/test_write_filter_zstd.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/libarchive/test/test_write_filter_zstd.c b/libarchive/test/test_write_filter_zstd.c +index 3cdbd812a..c9731f1b6 100644 +--- a/libarchive/test/test_write_filter_zstd.c ++++ b/libarchive/test/test_write_filter_zstd.c +@@ -161,8 +161,12 @@ DEFINE_TEST(test_write_filter_zstd) + archive_write_set_filter_option(a, NULL, "max-frame-size", "1048576")); + #endif + #if ZSTD_VERSION_NUMBER >= MINVER_LONG +- assertEqualIntA(a, ARCHIVE_OK, +- archive_write_set_filter_option(a, NULL, "long", "27")); ++ if ((int)(sizeof(size_t) == 4)) ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_filter_option(a, NULL, "long", "26")); ++ else ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_filter_option(a, NULL, "long", "27")); + assertEqualIntA(a, ARCHIVE_FAILED, + archive_write_set_filter_option(a, NULL, "long", "-1")); /* negative */ + #endif diff --git a/system/libarchive/revert-autotools-Fix-static-linking-when-openssl-is-.patch b/system/libarchive/revert-autotools-Fix-static-linking-when-openssl-is-.patch deleted file mode 100644 index 24acd4080..000000000 --- a/system/libarchive/revert-autotools-Fix-static-linking-when-openssl-is-.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 57b52cb8b54ec57d72ed0ccacacc1f6506749d17 Mon Sep 17 00:00:00 2001 -From: Zach van Rijn <me@zv.io> -Date: Tue, 11 Apr 2023 17:14:18 -0500 -Subject: [PATCH] Revert "autotools: Fix static linking when openssl is enabled - in windows" - -This reverts commit a83f3d327aefe8d628230f326621b014d82f55b4. - -diff --git a/build/pkgconfig/libarchive.pc.in b/build/pkgconfig/libarchive.pc.in -index 1f51e77f..4b631e63 100644 ---- a/build/pkgconfig/libarchive.pc.in -+++ b/build/pkgconfig/libarchive.pc.in -@@ -10,4 +10,3 @@ Cflags: -I${includedir} - Cflags.private: -DLIBARCHIVE_STATIC - Libs: -L${libdir} -larchive - Libs.private: @LIBS@ --Requires.private: @LIBSREQUIRED@ -diff --git a/configure.ac b/configure.ac -index 349e7580..d60f66fb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -378,7 +378,6 @@ if test "x$with_iconv" != "xno"; then - AC_CHECK_HEADERS([localcharset.h]) - am_save_LIBS="$LIBS" - LIBS="${LIBS} ${LIBICONV}" -- LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+ }iconv" - AC_CHECK_FUNCS([locale_charset]) - LIBS="${am_save_LIBS}" - if test "x$ac_cv_func_locale_charset" != "xyes"; then -@@ -1210,7 +1209,6 @@ fi - if test "x$with_openssl" != "xno"; then - AC_CHECK_HEADERS([openssl/evp.h]) - saved_LIBS=$LIBS -- LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+ }libssl libcrypto" - AC_CHECK_LIB(crypto,OPENSSL_config) - CRYPTO_CHECK(MD5, OPENSSL, md5) - CRYPTO_CHECK(RMD160, OPENSSL, rmd160) -@@ -1221,8 +1219,6 @@ if test "x$with_openssl" != "xno"; then - AC_CHECK_FUNCS([PKCS5_PBKDF2_HMAC_SHA1]) - fi - --AC_SUBST(LIBSREQUIRED) -- - # Probe libmd AFTER OpenSSL/libcrypto. - # The two are incompatible and OpenSSL is more complete. - AC_CHECK_HEADERS([md5.h ripemd.h sha.h sha256.h sha512.h]) --- -2.25.1 - diff --git a/system/libelf/APKBUILD b/system/libelf/APKBUILD index 266591533..2f89334e2 100644 --- a/system/libelf/APKBUILD +++ b/system/libelf/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=libelf pkgver=0.8.13 -pkgrel=5 +pkgrel=6 pkgdesc="ELF object file access library" url=" " # Dead upstream: http://www.mr511.de/software/ arch="all" @@ -11,6 +11,7 @@ depends="" makedepends="" subpackages="$pkgname-dev" source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.gz + mkdir-p.patch preprocessor-warnings.patch " @@ -39,4 +40,5 @@ package() { } sha512sums="d2a4ea8ccc0bbfecac38fa20fbd96aefa8e86f8af38691fb6991cd9c5a03f587475ecc2365fc89a4954c11a679d93460ee9a5890693112f6133719af3e6582fe libelf-0.8.13.tar.gz +176efa888350544f144e7d2115278bf2cc5aaca09f0937a1196ec2a0f72de1d2e62a40acf1f45331cd6c9ca3ad23104f9c3f093b6e9baafd93305a683d587198 mkdir-p.patch 6f5e4a50c1fee7bae39c7fca237bbcad005b2b865ff9fbd835c7772f92f4a31324e958b7c583a378a5069eb5c43500d9a8881013f0a7a169310efba75b2f01e8 preprocessor-warnings.patch" diff --git a/system/libelf/mkdir-p.patch b/system/libelf/mkdir-p.patch new file mode 100644 index 000000000..38a4712d8 --- /dev/null +++ b/system/libelf/mkdir-p.patch @@ -0,0 +1,13 @@ +--- libelf-0.8.13/mkinstalldirs.old 2005-05-21 10:28:38.000000000 -0500 ++++ libelf-0.8.13/mkinstalldirs 2024-07-26 15:44:20.923580931 -0500 +@@ -22,8 +22,8 @@ + pathcomp="${pathcomp}${d}" + + if test ! -d "${pathcomp}"; then +- echo "mkdir $pathcomp" 1>&2 +- mkdir "${pathcomp}" || errstatus=$? ++ echo "mkdir -p $pathcomp" 1>&2 ++ mkdir -p "${pathcomp}" || errstatus=$? + fi + + pathcomp="${pathcomp}/" diff --git a/system/libtool/APKBUILD b/system/libtool/APKBUILD index 90b3a0170..5d8b85716 100644 --- a/system/libtool/APKBUILD +++ b/system/libtool/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=libtool pkgver=2.4.7 -pkgrel=0 +pkgrel=1 pkgdesc="A generic library support script" arch="all" license="GPL-2.0+" @@ -14,6 +14,7 @@ options="libtool" source="https://ftp.gnu.org/gnu/$pkgname/${pkgname}-${pkgver}.tar.gz libtool-fix-cross-compile.patch fix-test-grep-expression.patch + gnulib-tests-dont-require-gpg-passphrase.patch " build() { @@ -46,4 +47,5 @@ libltdl() { sha512sums="27acef46d9eb67203d708b57d80b853f76fa4b9c2720ff36ec161e6cdf702249e7982214ddf60bae75511aa79bc7d92aa27e3eab7ef9c0f5c040e8e42e76a385 libtool-2.4.7.tar.gz aa14cadd70a633520249fa3a6a4c45b309a980380e62dd5982b3ae842c478a77401ad809297fceebd167c167b0a19f380e6a6c295bc75d1029d56d3bf262b209 libtool-fix-cross-compile.patch -57d47955bd3d51c5df2d62ba4773687e9111bfc155312eaa10d84e273845e255c2e62a1ceb01e8ce35617cb702f116fc223121dbb69955f5141c0185fbf4b6b4 fix-test-grep-expression.patch" +57d47955bd3d51c5df2d62ba4773687e9111bfc155312eaa10d84e273845e255c2e62a1ceb01e8ce35617cb702f116fc223121dbb69955f5141c0185fbf4b6b4 fix-test-grep-expression.patch +0d5364fd652e2e65a5f9a7c4c54755863bf2e68a7000a28cc8acf78e2342592d12444ff71dd2b755e4a3a2ef18a9757a029a25dfcf34b3e277bbfa351abe0575 gnulib-tests-dont-require-gpg-passphrase.patch" diff --git a/system/libtool/gnulib-tests-dont-require-gpg-passphrase.patch b/system/libtool/gnulib-tests-dont-require-gpg-passphrase.patch new file mode 100644 index 000000000..c3267b159 --- /dev/null +++ b/system/libtool/gnulib-tests-dont-require-gpg-passphrase.patch @@ -0,0 +1,10 @@ +--- libtool-2.4.7/gnulib-tests/test-vc-list-files-git.sh.old 2018-01-03 18:36:29.000000000 -0600 ++++ libtool-2.4.7/gnulib-tests/test-vc-list-files-git.sh 2018-06-18 21:57:08.305562148 -0500 +@@ -32,6 +32,7 @@ + touch d/a b c && + git config user.email "you@example.com" && + git config user.name "Your Name" && ++ git config commit.gpgsign false && + git add . > /dev/null && + git commit -q -a -m log && + printf '%s\n' b c d/a > expected && diff --git a/system/mandoc/APKBUILD b/system/mandoc/APKBUILD index 870e3d3be..88230079e 100644 --- a/system/mandoc/APKBUILD +++ b/system/mandoc/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=mandoc pkgver=1.14.6 -pkgrel=0 +pkgrel=1 pkgdesc="Manual page database, compiler, and viewer" url="https://mandoc.bsd.lv/" arch="all" diff --git a/system/mandoc/mandoc.trigger b/system/mandoc/mandoc.trigger index 34fc1decc..d8ffe7102 100644 --- a/system/mandoc/mandoc.trigger +++ b/system/mandoc/mandoc.trigger @@ -1,3 +1,3 @@ #!/bin/sh -exec makewhatis -a -T utf8 "$@" +exec makewhatis -T utf8 diff --git a/system/mdevd/APKBUILD b/system/mdevd/APKBUILD index 2983fd378..228ef287e 100644 --- a/system/mdevd/APKBUILD +++ b/system/mdevd/APKBUILD @@ -1,14 +1,14 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=mdevd -pkgver=0.1.6.2 +pkgver=0.1.6.4 pkgrel=0 pkgdesc="A small uevent manager daemon" -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/mdevd/" arch="all" options="!check" # No test suite. license="ISC" -_skalibs_version=2.13 +_skalibs_version=2.14 makedepends="skalibs-dev>=$_skalibs_version" subpackages="$pkgname-doc $pkgname-openrc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz mdev.conf mdevd.run mdevd.initd" @@ -20,23 +20,14 @@ build() { package() { make DESTDIR="$pkgdir" install - mkdir -p -m 0755 "$pkgdir/etc/init.d" + mkdir -p -m 0755 "$pkgdir/etc/init.d" "$pkgdir/usr/share/doc" cp -f "$srcdir/mdev.conf" "$pkgdir/etc/" chmod 0644 "$pkgdir/etc/mdev.conf" cp -f "$srcdir/mdevd.initd" "$pkgdir/etc/init.d/mdevd" chmod 0755 "$pkgdir/etc/init.d/mdevd" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends= - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - - openrc() { rldir="$subpkgdir"/etc/runlevels/sysinit svcdir="$subpkgdir/etc/s6-linux-init/current/run-image/service/mdevd" @@ -49,7 +40,7 @@ openrc() { ln -s ../../init.d/mdevd "$rldir/mdevd" } -sha512sums="e1b0aee398715ab8892518efb41a983114b8bc245374b3ee9dc2bd652ae8545ac2d191ea43e7a8dda84e995dc3d30dad93ef14147a4fa3e0f20e80f72b232887 mdevd-0.1.6.2.tar.gz +sha512sums="4435fac14887f12ba429099f8ad9c9215a6fc3966a5f836a48684ecdd2fa38ccbcdaf363af7e8397b4dc741b92fad0998179919e12fc5c0404b914370db13f1b mdevd-0.1.6.4.tar.gz f966d66366eac3b9b9eeb9b8523ea0924ada2b858c85ca0c0151d0fb374dfbf56c49ec2210d2d5ca19aa4d9f24371c85d777050eb8bf9f57821ec65704f18717 mdev.conf 427a5903fa2126060955dcce8144d59255a679c4973f2dbc3145a4d646e879fc241ebcaa53289498719d343c746fc376c41defa87932dcbe91192b2d6f4ed1c4 mdevd.run e7599f51a4280243a5be459c6fad7eb8ba3b5f65fae8cad923ccca2addab55787819909fea311c998e1126e6802a81ab000ee6de7474f3245ce72521244c22ba mdevd.initd" diff --git a/system/ncurses/APKBUILD b/system/ncurses/APKBUILD index 25316409a..3b9da03fc 100644 --- a/system/ncurses/APKBUILD +++ b/system/ncurses/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=ncurses -pkgver=6.4 -_ver=20230311 +pkgver=6.5 +_ver=20240427 pkgrel=0 pkgdesc="Console display library" url="https://invisible-island.net/ncurses/ncurses.html" @@ -112,4 +112,4 @@ static() { mv "$pkgdir"/lib/*.a "$subpkgdir"/lib/ } -sha512sums="320146868f84ad8cf18478165a61769409ef9d6dc0cd88448eefb767d1810d2eae62d84c362930512f8351860f4c49370681e319844e25adeee530df136f7d00 ncurses-6.4-20230311.tgz" +sha512sums="a5c55927217880e13952988c45dab42a80318420954920e6e083be5399b0dd71d2c9c759aa623130fc1e5ae7abcfc93d197ef626706b0846b96e5d4f3ce1ac7a ncurses-6.5-20240427.tgz" diff --git a/system/nss/APKBUILD b/system/nss/APKBUILD index 04a3f12bb..e3a7131eb 100644 --- a/system/nss/APKBUILD +++ b/system/nss/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Łukasz Jendrysik <scadu@yandex.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=nss -pkgver=3.89 +pkgver=3.94 _ver=$(printf '%s' "$pkgver" | tr . _) pkgrel=0 pkgdesc="Mozilla Network Security Services" @@ -157,7 +157,7 @@ tools() { mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ } -sha512sums="1db06d4575f2c16d2a0629007981211e714f99c014c0a6256dd33d0caf8c809ba8d5be204d018f9d1cc99b9fcd055ac1fb99b399486ed43c9cf3f55f2747de82 nss-3.89.tar.gz +sha512sums="3a839a6cc7267e45749f769621c3e8823f92cb654ee40460187e59b50825bb0f84ca278cd61881a3e0e7d95f95e0ffcd266a10c780cdcf8a08a2f0a9bb71892f nss-3.94.tar.gz 75dbd648a461940647ff373389cc73bc8ec609139cd46c91bcce866af02be6bcbb0524eb3dfb721fbd5b0bc68c20081ed6f7debf6b24317f2a7ba823e8d3c531 nss.pc.in 0f2efa8563b11da68669d281b4459289a56f5a3a906eb60382126f3adcfe47420cdcedc6ab57727a3afeeffa2bbb4c750b43bef8b5f343a75c968411dfa30e09 nss-util.pc.in 09c69d4cc39ec9deebc88696a80d0f15eb2d8c94d9daa234a2adfec941b63805eb4ce7f2e1943857b938bddcaee1beac246a0ec627b71563d9f846e6119a4a15 nss-softokn.pc.in diff --git a/system/openrc/0006-mount-efivars-read-only.patch b/system/openrc/0006-mount-efivars-read-only.patch deleted file mode 100644 index ec2321dd2..000000000 --- a/system/openrc/0006-mount-efivars-read-only.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 37feb4b716525f0c5c5469f21686ab4efcf06fab Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Wed, 1 Feb 2017 04:18:53 +0000 -Subject: [PATCH 6/7] mount efivars read-only - -unintentional writes to efivars may result in bricked hardware. mount it -read-only to play safe. ---- - init.d/sysfs.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/init.d/sysfs.in b/init.d/sysfs.in -index e493f584..bfd0d438 100644 ---- a/init.d/sysfs.in -+++ b/init.d/sysfs.in -@@ -101,7 +101,7 @@ mount_misc() - if [ -d /sys/firmware/efi/efivars ] && - ! mountinfo -q /sys/firmware/efi/efivars; then - ebegin "Mounting efivarfs filesystem" -- mount -n -t efivarfs -o ${sysfs_opts} \ -+ mount -n -t efivarfs -o ro,${sysfs_opts} \ - efivarfs /sys/firmware/efi/efivars 2> /dev/null - eend 0 - fi --- -2.11.1 - diff --git a/system/openrc/APKBUILD b/system/openrc/APKBUILD index 5546e46be..632b55452 100644 --- a/system/openrc/APKBUILD +++ b/system/openrc/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: pkgname=openrc pkgver=0.24.1 -pkgrel=12 +pkgrel=14 pkgdesc="OpenRC manages the services, startup and shutdown of a host" url="https://github.com/OpenRC/openrc" arch="all" @@ -18,9 +18,9 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/OpenRC/openrc/archive/$pkgve 0003-sysctl-add-compatibility-for-busybox-sysctl.patch 0004-hide-error-when-migrating-var-run-to-run.patch 0005-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch - 0006-mount-efivars-read-only.patch hwclock-grep.patch + modern-gcc.patch openrc-configuration.patch openrc.logrotate @@ -88,8 +88,8 @@ aedf77f9159fefb4bd5f30a29a33b6aedbc986c9a0f993aa928cc79fbe24aac76bd9e5974dcce52e 5494f5ee520b26219048586882919dc0b45e839bd9543edc974f7b283d7b9326dc0362f9d2608b6acf043613399ea16c8287b854da874f49801963165e239dba 0003-sysctl-add-compatibility-for-busybox-sysctl.patch d54630d40a2d6b10a325cb012d4efcda997a60c008ca953ce5d60059d3f267308a59dabddf93a5fc0d301aa91967137d144effbe5f574394af768ce4ebc48738 0004-hide-error-when-migrating-var-run-to-run.patch 39a35c54ec9112fe84c901ed155a711cec8e194af02d5483ee60b80743dab12391e6fdc7b3da2f86844dd4edcf53e681ff95bd4d6fa1101a89ce54dce2ddbb7c 0005-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch -7221dd2daccd8844f6f9481b7b5921abc2711c8abd1a4bb72f04db8fd8e734b817f5d0d571daea0e2e05d3bc687f75ee1d8025249996bdee0b3328e18d9da7d3 0006-mount-efivars-read-only.patch 43355d72ad82858787e240450ae556cdd40aa9a3719545991d76719df80cc5c851c21374b339a6953f0344f1468e08e99c4da11334dc0b72647f4aa1db08558c hwclock-grep.patch +aeb63843b69bf5dc3e513a9b0fa1c5631b509b2ecc9e127d6d5e1ac18254375a45afb6e82429d2c559e29aef70e01286b82cabbdc7c3907a5cce6cdfb32be4f9 modern-gcc.patch 634c09a36d542a69b147a292418fa99a5d071d7a384bd2d2b30917a986cdc82ef4e96e380bc3a154cb0709c57d5308320c30fd6973972d6e6d7f8ac5b2e31bea openrc-configuration.patch 12bb6354e808fbf47bbab963de55ee7901738b4a912659982c57ef2777fff9a670e867fcb8ec316a76b151032c92dc89a950d7d1d835ef53f753a8f3b41d2cec openrc.logrotate 99b542c0903ad6874b8c308b2e0660a4fe2ff9db962dfec65325cd12c368873a2ae800d5e6d42dc4deff775e1d5c0068869eb72581f7ab16e88d5738afe1d3dd hostname.initd diff --git a/system/openrc/modern-gcc.patch b/system/openrc/modern-gcc.patch new file mode 100644 index 000000000..e50029af2 --- /dev/null +++ b/system/openrc/modern-gcc.patch @@ -0,0 +1,14 @@ +Ensure we can build with -fno-common. +--- openrc-0.24.1/src/rc/rc-logger.h.old 2017-03-14 19:58:26.000000000 -0500 ++++ openrc-0.24.1/src/rc/rc-logger.h 2024-05-25 12:47:43.244186307 -0500 +@@ -13,8 +13,8 @@ + #ifndef RC_LOGGER_H + #define RC_LOGGER_H + +-pid_t rc_logger_pid; +-int rc_logger_tty; ++extern pid_t rc_logger_pid; ++extern int rc_logger_tty; + extern bool rc_in_logger; + + void rc_logger_open(const char *runlevel); diff --git a/system/perl-cpanel-json-xs/APKBUILD b/system/perl-cpanel-json-xs/APKBUILD index 0c27696be..403e77f00 100644 --- a/system/perl-cpanel-json-xs/APKBUILD +++ b/system/perl-cpanel-json-xs/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Cpanel-JSON-XS _author=RURBAN _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=4.36 +pkgver=4.37 pkgrel=0 pkgdesc="cPanel's fork of JSON::XS, fast and correct serialising" url="https://metacpan.org/release/Cpanel-JSON-XS" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="3e080bfb2842e7d1270c1bee7463f6ee3579b526f385b2a55abfceaf57af45786a22d45d5e7d6490f0998cd5b3bf305f608fb744ca0bbfffc6644456ea17c22d Cpanel-JSON-XS-4.36.tar.gz" +sha512sums="f1b5fc161711815f33b3e05a19111d9c94ef817c952eb3d317cb8bc3fd973acdb645a6b129cb21345dccf4a161de069f0ab2d3cb807e7f6b20ebe2527ef48978 Cpanel-JSON-XS-4.37.tar.gz" diff --git a/system/perl-dbd-sqlite/APKBUILD b/system/perl-dbd-sqlite/APKBUILD index f015faba1..b415bad63 100644 --- a/system/perl-dbd-sqlite/APKBUILD +++ b/system/perl-dbd-sqlite/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=DBD-SQLite _author=ISHIGAKI _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.72 +pkgver=1.74 pkgrel=0 pkgdesc="Perl DBI SQLite module" url="https://metacpan.org/release/DBD-SQLite" @@ -39,5 +39,5 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="67a90c618a3626b3ae0b333b5eb4d4d0c8c13712bbcd50c135bf74e83dc252301664089803597c1bcbebf7f1eda040673d4438e70e2dae0aef3b8ebeeecd2f79 DBD-SQLite-1.72.tar.gz +sha512sums="46bb26ffac07ca6d25d44101bd59fe7ebb397d159154fe10528e4ca4ee270e62159a40be0325099237ce28fb6ce11b5dc1da5396c3e9a3e0e03062a65c16cbab DBD-SQLite-1.74.tar.gz 00961932f9f89d9b46e6134150c2628aadd4cfa7159cb1604de023fedc919087fbf982b72fd51610e1ca390234cd939e74430b270131d0b30cedb97ba6203b49 perl-DBD-SQLite-bz543982.patch" diff --git a/system/perl-file-listing/APKBUILD b/system/perl-file-listing/APKBUILD index 2f5e1a610..6de780095 100644 --- a/system/perl-file-listing/APKBUILD +++ b/system/perl-file-listing/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=File-Listing _author=PLICEASE _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.15 +pkgver=6.16 pkgrel=0 pkgdesc="Perl module for parsing directory lists in various formats" url="https://metacpan.org/release/File-Listing" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8368605bf196750f4044d87a8b784e6a28fa6fe6d5971c5de507b4df77859020dcba4929ce97f5091966a6a2fca94466a345450f2f9d2fad9fb88d880f491944 File-Listing-6.15.tar.gz" +sha512sums="2d18f0cf7dbf30bb752c5d70132e90dd346e6fb795cb61664b8f11bfba67ec357235f5cb5a87752cf65ba9d000a6c7976548f0aed0f833048ca1b06aed991eca File-Listing-6.16.tar.gz" diff --git a/system/perl-http-cookiejar/APKBUILD b/system/perl-http-cookiejar/APKBUILD new file mode 100644 index 000000000..240cd68eb --- /dev/null +++ b/system/perl-http-cookiejar/APKBUILD @@ -0,0 +1,35 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=perl-http-cookiejar +_pkgreal=HTTP-CookieJar +pkgver=0.014 +pkgrel=0 +_author=DAGOLDEN +_au=${_author%%"${_author#??}"} +_a=${_author%%"${_author#?}"} +pkgdesc="A minimalist HTTP user agent cookie jar implementation for Perl" +url="https://metacpan.org/dist/HTTP-CookieJar" +arch="noarch" +license="Apache-2.0" +depends="perl-http-date perl-uri perl" +checkdepends="perl-test-deep perl-test-requires" +makedepends="" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" +builddir="$srcdir/$_pkgreal-$pkgver" + +build() { + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + make test +} + +package() { + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="98e6834574e28d8e278ba6f23817d7a4b0a072fea144f97db78e20881f622c01ddf4edff1dc5563c0fc46b22ba94fd9acfd18c9c81118c8c18c7d810f7534467 HTTP-CookieJar-0.014.tar.gz" diff --git a/system/perl-http-cookies/APKBUILD b/system/perl-http-cookies/APKBUILD index 6570a889c..c13f5f57a 100644 --- a/system/perl-http-cookies/APKBUILD +++ b/system/perl-http-cookies/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=HTTP-Cookies _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.10 +pkgver=6.11 pkgrel=0 pkgdesc="Perl HTTP cookie jars" url="https://metacpan.org/release/HTTP-Cookies" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c24a986e524ebf5d8b13b4580c3ee6aed018e79c203fd62208bfe970744482832fe9c41bb3195a596af1e11058053ed7615a09a26fbcef4433e270f0f5d38658 HTTP-Cookies-6.10.tar.gz" +sha512sums="3ebfa742407a623fdcb23fe7fc559a1667b9510c4c152f98c6d98bcea3df6f336183920636244cd5175b9e9ada4a599bae87433c1ea518739b4eac90a4ca5342 HTTP-Cookies-6.11.tar.gz" diff --git a/system/perl-http-message/APKBUILD b/system/perl-http-message/APKBUILD index 2f02752ff..9190b98ae 100644 --- a/system/perl-http-message/APKBUILD +++ b/system/perl-http-message/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=HTTP-Message _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.44 +pkgver=6.45 pkgrel=0 pkgdesc="Perl class encapsulating HTTP-style messages" url="https://metacpan.org/release/HTTP-Message" @@ -33,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="515f3b91b4ed1b12c63149006651b8d60e3b4d3d842e2b997b2e8c67ce93cbdcb8eb5357f4c5bce20057aea22c1f84b5e02995b02e381c21d918032edb35a994 HTTP-Message-6.44.tar.gz" +sha512sums="b72ab9068c5f9ddb41f89b2a84887393f2c1bd14b462a1a60c03b4560800cfbf37c76f4bdd7c08f1ce9bf616242c2e39e0ff93859ed61268c48c978322a6d03d HTTP-Message-6.45.tar.gz" diff --git a/system/perl-io-socket-ssl/APKBUILD b/system/perl-io-socket-ssl/APKBUILD index 113d2c902..e8b9f6556 100644 --- a/system/perl-io-socket-ssl/APKBUILD +++ b/system/perl-io-socket-ssl/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=IO-Socket-SSL _author=SULLR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.081 +pkgver=2.085 pkgrel=0 pkgdesc="Perl module implementing SSL/TLS with IO::Socket interface" url="https://metacpan.org/release/IO-Socket-SSL" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="309d02983a8a6c1440c2161189fd4648533bafb784a3271fb0d8671681ed606aeaeb5f0650de5f26869e1fd84e9c8bd94674988bbefcd0f424c94a387a548534 IO-Socket-SSL-2.081.tar.gz" +sha512sums="c4e045e88f69579d53a3663ed8f74d342fe3529e24e06d9e7d299debafdb840839c6f5bccb579b4d03f7501615439dba4661ac006312f379a2598a3030634cfd IO-Socket-SSL-2.085.tar.gz" diff --git a/user/perl-ipc-run3/APKBUILD b/system/perl-ipc-run3/APKBUILD index 51a428e6d..ca9d1f546 100644 --- a/user/perl-ipc-run3/APKBUILD +++ b/system/perl-ipc-run3/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=IPC-Run3 _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.048 +pkgver=0.049 pkgrel=0 pkgdesc="Run a subprocess from Perl with I/O redirection" url="https://metacpan.org/release/IPC-Run3" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="50432850d8dccd2e59aa6684d34f3e3242fd7df3eb4d9a5eb02dae389aa46b5fd68cc54114a157c3fe99956e68e74d575ab3db5009b7bf7d5c325f1f109b1262 IPC-Run3-0.048.tar.gz" +sha512sums="19dbf902666ccb56bfdb02c0c4e9ef585d773e1b8b53d4627367a3c0344d08a6358a733786b8de97e615b6916b716c4e66e73ae263986a2cacf50ab155539c55 IPC-Run3-0.049.tar.gz" diff --git a/system/perl-json-maybexs/APKBUILD b/system/perl-json-maybexs/APKBUILD index f8fb858ba..12e22b2a8 100644 --- a/system/perl-json-maybexs/APKBUILD +++ b/system/perl-json-maybexs/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=JSON-MaybeXS _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.004004 +pkgver=1.004005 pkgrel=0 pkgdesc="Use <Cpanel::JSON::XS> with a fallback to <JSON::XS> and <JSON::PP>" url="https://metacpan.org/release/JSON-MaybeXS" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b3ed3a0993c0671f49cbb6bde72b58f3dc55d807b42cfa98702e92daea177fdd8f71cccda962daedf98fb0d77d043a95558a670eda70c8e929791e52229bab9d JSON-MaybeXS-1.004004.tar.gz" +sha512sums="f483549f08bb829c7958fd36d33ece8550ed13d53f559d3a8a0915045a11443a01fcbd3ad767f09759d24ec98c2eeced4e550a1fb333a1fc929b7086e1506edf JSON-MaybeXS-1.004005.tar.gz" diff --git a/system/perl-libwww/APKBUILD b/system/perl-libwww/APKBUILD index 5d9e894b2..be7b7d13e 100644 --- a/system/perl-libwww/APKBUILD +++ b/system/perl-libwww/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=libwww-perl _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.68 +pkgver=6.76 pkgrel=0 pkgdesc="Perl module - World Wide Web library" url="https://metacpan.org/release/libwww-perl" arch="noarch" license="GPL-2.0-only OR Artistic-1.0-Perl" -depends="perl-http-date perl-http-cookies perl-net-http perl-http-daemon - perl-html-parser perl-file-listing perl-www-robotrules +depends="perl-http-date perl-http-cookies perl-http-cookiejar perl-net-http + perl-http-daemon perl-html-parser perl-file-listing perl-www-robotrules perl-http-negotiate perl-uri perl-http-message perl-test-needs perl-lwp-mediatypes perl-encode-locale perl-try-tiny" makedepends="" @@ -35,4 +35,4 @@ package() { find "$pkgdir" -name perllocal.pod -delete } -sha512sums="acce4c6c062d1893c45613f3c9ef4896d60efba2887f80a18c97c13bd5eba95295a777178077c942abe392e37ade689489ad60cefce28656c541e875b2bf09d2 perl-libwww-6.68.tar.gz" +sha512sums="8a055c3324007eb1badc3d8b8d368a46b7c1c5e5dd837ddbb862924e8c7fc13c413f50dae4ff8d32bf53774f1a95016098e56c181547f60b42dbbedf3813b897 perl-libwww-6.76.tar.gz" diff --git a/system/perl-module-scandeps/APKBUILD b/system/perl-module-scandeps/APKBUILD index 655c0ea66..998711304 100644 --- a/system/perl-module-scandeps/APKBUILD +++ b/system/perl-module-scandeps/APKBUILD @@ -6,13 +6,13 @@ _pkgreal=Module-ScanDeps _author=RSCHUPP _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.31 +pkgver=1.35 pkgrel=0 pkgdesc="Recursively scan Perl code for dependencies" url="https://metacpan.org/release/Module-ScanDeps" arch="noarch" license="GPL-2.0-only OR Artistic-1.0-Perl" -depends="perl" +depends="perl-ipc-run3 perl" checkdepends="perl-test-requires" makedepends="perl-test-pod" subpackages="$pkgname-doc" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c7164d768b6401a0d01516f5a09ddf2a0399355738ff17d04757aeb235b47f8d973083d0425ca53757588916c7fb2959d8c042361055a0e8eab7bf6d4c31d6fd Module-ScanDeps-1.31.tar.gz" +sha512sums="314a8098883995d876bfae7760b569ade56eed1940e50f92a509fd0f2c0020d57da859bb8848c56a9e1dcb4acd62cd246c39424bc1c30d71c6defc9f491518b9 Module-ScanDeps-1.35.tar.gz" diff --git a/system/perl-net-http/APKBUILD b/system/perl-net-http/APKBUILD index b547c20f5..6235d2fc0 100644 --- a/system/perl-net-http/APKBUILD +++ b/system/perl-net-http/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Net-HTTP _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.22 +pkgver=6.23 pkgrel=0 pkgdesc="Low-level HTTP connection client library for Perl" url="https://metacpan.org/release/Net-HTTP" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8d0af85baee8a3b257995c6dd277c2eb578d1feeec89f3e4be0548959d2cf07934764d9d16a542a50f72a4611e3f4b6335ff7e969a28cd74fbb0ec3961588131 Net-HTTP-6.22.tar.gz" +sha512sums="be926d12f6a8be504f221b54dbe9b1cbe1ff18b7dc8075ce308cc8c436ed9e4fe959516ce81c858a70de80df13cedd8cd78fd153cc5eb763f1bc3c9893ceaa05 Net-HTTP-6.23.tar.gz" diff --git a/system/perl-net-ssleay/APKBUILD b/system/perl-net-ssleay/APKBUILD index a89b57832..24c299329 100644 --- a/system/perl-net-ssleay/APKBUILD +++ b/system/perl-net-ssleay/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Net-SSLeay _author=CHRISN _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.92 +pkgver=1.94 pkgrel=0 pkgdesc="Perl extension for using OpenSSL" url="https://metacpan.org/release/Net-SSLeay" @@ -32,4 +32,4 @@ package() { find "$pkgdir" -name perllocal.pod -delete } -sha512sums="e9d9161ebeb7be90f4c7a0ea98f1034892ce6d33aa72872683177b19daa1f4c5819f85ea9a052a076ec8d7c21705f6c344aef64680bc881bf3218d38e8b7b173 Net-SSLeay-1.92.tar.gz" +sha512sums="f1461667269f3da56ff7e1724b5511b95c34582250f8336e9f93d30f3b30d4a5360eb27622b9730bba11df75e00d717c7f0cea2120d20206723db136a8509375 Net-SSLeay-1.94.tar.gz" diff --git a/user/perl-test-deep/APKBUILD b/system/perl-test-deep/APKBUILD index 422c93185..422c93185 100644 --- a/user/perl-test-deep/APKBUILD +++ b/system/perl-test-deep/APKBUILD diff --git a/system/perl-test-harness/APKBUILD b/system/perl-test-harness/APKBUILD index c2602edb6..5abb6c237 100644 --- a/system/perl-test-harness/APKBUILD +++ b/system/perl-test-harness/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Test-Harness _author=LEONT _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.44 +pkgver=3.48 pkgrel=0 pkgdesc="Run Perl standard test scripts with statistics" url="https://metacpan.org/release/Test-Harness" @@ -32,4 +32,4 @@ package() { rm "$pkgdir"/usr/bin/prove } -sha512sums="908f0105bfa6c6e4578a4e08180d799d0ca7299c2206280fe64b9229fe3c05abdb000364d853a078f39f7d3129a8f91b7030976e1dfab726c6c6fd16e0970ef1 Test-Harness-3.44.tar.gz" +sha512sums="7d65b48157ec7bc63553144f68e6233c07d21a4d127cefd5f77b2193c47f4d96325b15a9eb029ed62a19340f65659fcef0796ff7c6b07e5b5b8d539ddeee485c Test-Harness-3.48.tar.gz" diff --git a/system/perl-test-simple/APKBUILD b/system/perl-test-simple/APKBUILD index ebfe0077d..8bf0a6281 100644 --- a/system/perl-test-simple/APKBUILD +++ b/system/perl-test-simple/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Test-Simple _author=EXODIST _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.302193 +pkgver=1.302198 pkgrel=0 pkgdesc="Basic utilities for writing Perl tests" url="https://metacpan.org/release/Test-Simple" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8d4ce910525db4b0f2d10bb21f1dc649d8ea1ae0fa8c97b5fa5ddaf25f04fa751327269ccfcad8846090afb486d80a7a5a0fa519338768b12950dab2fb291f37 Test-Simple-1.302193.tar.gz" +sha512sums="b59ed1033338219cd6352f825ed3657b6dc8e2cd38ac7ccd062181b2e2076d6ba48a7d559a20f75e68718165874231c2434f3a73b78d645947d129ebf1d8b04e Test-Simple-1.302198.tar.gz" diff --git a/system/perl-test-warnings/APKBUILD b/system/perl-test-warnings/APKBUILD index 8dace4f45..357e12575 100644 --- a/system/perl-test-warnings/APKBUILD +++ b/system/perl-test-warnings/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Test-Warnings _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.031 +pkgver=0.033 pkgrel=0 pkgdesc="Test for warnings and the lack of them" url="https://metacpan.org/pod/Test::Warnings" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="02ddd342b6aa8771dd6ea3b7385c5eb970173633d49a3535bc46c3f98a66cd6e81895fc5f38cbe23366c8fa0f96121b51a8180b0d4ef0f2d8c658bb559c72c58 Test-Warnings-0.031.tar.gz" +sha512sums="dc49e345b2b5d2dd42d83b4351025f2c0db0216ef8388b02db77d5078e5eda0b5aab1491b07a0009923acc73b30c4ef6d77d406e85b0f958f575007c6ca1e6e8 Test-Warnings-0.033.tar.gz" diff --git a/system/perl-uri/APKBUILD b/system/perl-uri/APKBUILD index 68d75e841..6213d892e 100644 --- a/system/perl-uri/APKBUILD +++ b/system/perl-uri/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=URI _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=5.17 +pkgver=5.27 pkgrel=0 pkgdesc="Perl library for URI manipulation" url="https://metacpan.org/release/URI" @@ -33,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="52171e16137bfaa77ab31007245a561614c5c42336473022ebbe370b395d3052d3de80da0b42754ca2e0b09f47520ef96afdbdb72fe5c25cab87441eda03ec12 URI-5.17.tar.gz" +sha512sums="5d4cdaf2baed2b15af827093e139ee22c7f87b979b5998462500b13d68966bd94be3841e9b0c4f64ef2df9ca5e258933c21f67870a671242330f296c7bef45b8 URI-5.27.tar.gz" diff --git a/system/perl/APKBUILD b/system/perl/APKBUILD index 85d1d162f..9134c50b2 100644 --- a/system/perl/APKBUILD +++ b/system/perl/APKBUILD @@ -3,7 +3,11 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> pkgname=perl -pkgver=5.34.1 +pkgver=5.34.3 +_glver=2.57 +_glauthor=JV +_glau=${_glauthor%%"${_glauthor#??}"} +_gla=${_glauthor%%"${_glauthor#?}"} pkgrel=1 pkgdesc="Larry Wall's Practical Extraction and Report Language" url="https://www.perl.org/" @@ -18,9 +22,15 @@ source="https://www.cpan.org/src/5.0/perl-$pkgver.tar.gz musl-stack-size.patch zlib-test.patch fix-test-chris-williams-tcp-server.patch + cve-2023-31484.patch + cve-2023-31486.patch + https://cpan.metacpan.org/authors/id/$_gla/$_glau/$_glauthor/Getopt-Long-$_glver.tar.gz " # secfixes: +# 5.34.3-r0: +# - CVE-2023-31484 +# - CVE-2023-31486 # 5.34.1-r0: # - CVE-2021-36770 # 5.26.3-r0: @@ -49,6 +59,10 @@ prepare() { rm -rf cpan/Compress-Raw-Zlib/zlib-src rm -rf cpan/Compress-Raw-Bzip2/bzip2-src sed -i '/\(bzip2\|zlib\)-src/d' MANIFEST + for i in lib t; do + rm -rf cpan/Getopt-Long/$i + cp -r "$srcdir"/Getopt-Long-$_glver/$i cpan/Getopt-Long + done } build() { @@ -103,6 +117,11 @@ package() { error "files found under /usr/local" fi find "$pkgdir" -name '.*' -delete + + rm "$pkgdir"/usr/share/man/man1/prove.1 + rm "$pkgdir"/usr/share/man/man1/xsubpp.1 + rm -r "$pkgdir"/usr/share/man/man3 + rm "$pkgdir"/usr/bin/xsubpp } @@ -119,8 +138,11 @@ dev() { default_dev } -sha512sums="bf17f2c6fce1b046dce11450f28823fe5df6341f259ec351a4445768feb38706413be867a32c1fd916567657ca9f08c838030e02bb8a3bc1cd8a1350c007cf3a perl-5.34.1.tar.gz +sha512sums="d3dcabec76e4d6854d6bc1b118cb30cb2baeb329f6deb9fbe4380d446568a2982c8fb242f257da94e743760d23bbad829a228cbe3a55a1c6f4636346e6ab1933 perl-5.34.3.tar.gz a78b5fb1a2b6f60b401329cfd2d8349d4fdcc19628cde0e9b840b82e1a02e705f7d7413fe206aa13ed714ab93a65b62ac3d85dfd526ca8048621d5d89b22f0ef musl-locale.patch c004d6612ec754e5947255a2e2d15b5581f187c32495aeeec9f4fa286919bd9f40c72b63db61e3f4004b09288af2063a6a14b67e5c289e9a8b23ebd7c216e16f musl-stack-size.patch bbb2beb49604982c42c833b229852bc8bca4e3498f97fcfbb3bf7de10dddbef3b21c917f333958c64feb99a65f4093773e33018ae0e91dadeecdf985ab0ed3a2 zlib-test.patch -1cf3365942a6447083e7487e3b79e1a57d3b08dad9cadb86f44bdda3bd7882fe5d71ebb4fab12a0663d4c0d4c1566d593be10ea46ecf892926528a9ae31328b9 fix-test-chris-williams-tcp-server.patch" +1cf3365942a6447083e7487e3b79e1a57d3b08dad9cadb86f44bdda3bd7882fe5d71ebb4fab12a0663d4c0d4c1566d593be10ea46ecf892926528a9ae31328b9 fix-test-chris-williams-tcp-server.patch +dd60c8db64f648a88aaaca0eb4e6cd4b29e9bf47f92cac54958c1d12573fe8181eb5da2144650c15da7f8e59a06243ac859ec57be5c0e5fd88fc7ec1b1982083 cve-2023-31484.patch +89195c2398196f1730b9dfc3adb87694007bb5f3b663d058056d323388e7858c8201aaddd733b1dbeaf4a5cc0989a39b78177897ee144c35ffb66bc30616eef4 cve-2023-31486.patch +6b07f683b6f1371bc7f9b018ec659c049d58de25194965c6e2ba3a288e6802ba07257aa5d447bc082f0481d0956798d9f17521faf6a31d896bb3be0d17953b49 Getopt-Long-2.57.tar.gz" diff --git a/system/perl/cve-2023-31484.patch b/system/perl/cve-2023-31484.patch new file mode 100644 index 000000000..8e2b71fea --- /dev/null +++ b/system/perl/cve-2023-31484.patch @@ -0,0 +1,11 @@ +diff '--color=auto' -Nurd perl-5.34.3/cpan/CPAN/lib/CPAN/HTTP/Client.pm perl-5.34.3.new/cpan/CPAN/lib/CPAN/HTTP/Client.pm +--- perl-5.34.3/cpan/CPAN/lib/CPAN/HTTP/Client.pm 2023-11-28 03:57:18.000000000 -0800 ++++ perl-5.34.3.new/cpan/CPAN/lib/CPAN/HTTP/Client.pm 2023-12-01 20:31:22.921302476 -0800 +@@ -32,6 +32,7 @@ + + my $want_proxy = $self->_want_proxy($uri); + my $http = HTTP::Tiny->new( ++ verify_SSL => 1, + $want_proxy ? (proxy => $self->{proxy}) : () + ); + diff --git a/system/perl/cve-2023-31486.patch b/system/perl/cve-2023-31486.patch new file mode 100644 index 000000000..fe7689447 --- /dev/null +++ b/system/perl/cve-2023-31486.patch @@ -0,0 +1,84 @@ +From 1490431e40e22052f75a0b3449f1f53cbd27ba92 Mon Sep 17 00:00:00 2001 +From: Dominic Hargreaves <dom@earth.li> +Date: Thu, 21 May 2020 22:53:37 +0100 +Subject: [PATCH] Enable SSL by default in HTTP::Tiny + +Gbp-Pq: Topic debian +Gbp-Pq: Name http-tiny-ssl.diff +--- + cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm +index 5803e4599..88ba51461 100644 +--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm ++++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm +@@ -40,7 +40,7 @@ sub _croak { require Carp; Carp::croak(@_) } + #pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open, + #pod read or write takes longer than the timeout, an exception is thrown. + #pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL +-#pod certificate of an C<https> — connection (default is false) ++#pod certificate of an C<https> — connection (default is true) + #pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to + #pod L<IO::Socket::SSL> + #pod +@@ -112,7 +112,7 @@ sub new { + max_redirect => 5, + timeout => defined $args{timeout} ? $args{timeout} : 60, + keep_alive => 1, +- verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default ++ verify_SSL => $args{verify_SSL} // $args{verify_ssl} // 1, # verification by default + no_proxy => $ENV{no_proxy}, + }; + +@@ -1038,7 +1038,7 @@ sub new { + timeout => 60, + max_line_size => 16384, + max_header_lines => 64, +- verify_SSL => 0, ++ verify_SSL => 1, + SSL_options => {}, + %args + }, $class; +@@ -1765,7 +1765,7 @@ C<timeout> — Request timeout in seconds (default is 60) If a socket open, read + + =item * + +-C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is false) ++C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is true) + + =item * + +@@ -2035,7 +2035,7 @@ Verification of server identity + + =back + +-B<By default, HTTP::Tiny does not verify server identity>. ++B<By default, HTTP::Tiny verifies server identity. + + Server identity verification is controversial and potentially tricky because it + depends on a (usually paid) third-party Certificate Authority (CA) trust model +@@ -2043,16 +2043,14 @@ to validate a certificate as legitimate. This discriminates against servers + with self-signed certificates or certificates signed by free, community-driven + CA's such as L<CAcert.org|http://cacert.org>. + +-By default, HTTP::Tiny does not make any assumptions about your trust model, +-threat level or risk tolerance. It just aims to give you an encrypted channel +-when you need one. +- + Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify + that an SSL connection has a valid SSL certificate corresponding to the host + name of the connection and that the SSL certificate has been verified by a CA. + Assuming you trust the CA, this will protect against a L<man-in-the-middle +-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are +-concerned about security, you should enable this option. ++attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. ++ ++If you are not concerned about security, and this default causes problems, ++you should disable this option. + + Certificate verification requires a file containing trusted CA certificates. + +-- +GitLab + diff --git a/system/python3/fix-xattrs-glibc.patch b/system/python3/fix-xattrs-glibc.patch deleted file mode 100644 index da0c6e3cb..000000000 --- a/system/python3/fix-xattrs-glibc.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ur a/Modules/posixmodule.c b/Modules/posixmodule.c ---- a/Modules/posixmodule.c 2022-01-11 11:45:55.120000000 +0000 -+++ b/Modules/posixmodule.c 2022-01-11 11:47:28.010000000 +0000 -@@ -272,8 +272,9 @@ - # undef HAVE_SCHED_SETAFFINITY - #endif - --#if defined(HAVE_SYS_XATTR_H) && defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) -+#if defined(HAVE_SYS_XATTR_H) && defined(__linux__) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) - # define USE_XATTRS -+# include <linux/limits.h> - #endif - - #ifdef USE_XATTRS diff --git a/system/s6-linux-init/APKBUILD b/system/s6-linux-init/APKBUILD index 0601b593b..973037509 100644 --- a/system/s6-linux-init/APKBUILD +++ b/system/s6-linux-init/APKBUILD @@ -1,19 +1,26 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-linux-init -pkgver=1.1.0.0 -pkgrel=0 +pkgver=1.1.2.0 +pkgrel=2 pkgdesc="A s6-based init system" -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/s6-linux-init/" arch="all" options="!check" # No test suite. license="ISC" -_skalibs_version=2.13 -_s6_version=2.11.3.0 +_skalibs_version=2.14 +_s6_version=2.12 depends="execline s6>=$_s6_version s6-linux-init-common" -makedepends="skalibs-dev>=$_skalibs_version execline-dev s6-dev utmps-dev" -subpackages="$pkgname-common:common:noarch $pkgname-early-getty:earlygetty:noarch $pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" -source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz rc.init runlevel rc.shutdown reboot.sh earlygetty.run" +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev execline-dev s6-dev utmps-dev" +subpackages=" + $pkgname-common:common:noarch + $pkgname-early-getty:earlygetty:noarch + $pkgname-dracut:dracut:noarch + $pkgname-libs + $pkgname-dev + $pkgname-doc" +source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz rc.init runlevel rc.shutdown reboot.sh earlygetty.run dracut_module.sh" install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall" provides="/sbin/init=0" @@ -52,10 +59,11 @@ package() { -s /run/kernel_env \ -f "$pkgdir/etc/s6-linux-init/skel" \ -- "$pkgdir/etc/s6-linux-init/current" - mkdir -p -m 0755 "$pkgdir/sbin" "$pkgdir/etc/runlevels/empty" + mkdir -p -m 0755 "$pkgdir/sbin" "$pkgdir/etc/runlevels/empty" "$pkgdir/usr/share/doc" for i in init halt poweroff reboot shutdown telinit ; do ln -sf "../etc/s6-linux-init/current/bin/$i" "$pkgdir/sbin/$i" done + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } @@ -85,43 +93,16 @@ earlygetty() { chmod 0755 "$subsvcimg/s6-linux-init-early-getty/run" } - -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr" - mv "$pkgdir/usr/lib" "$pkgdir/usr/include" "$subpkgdir/usr/" -} - - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" +dracut() { + pkgdesc="$pkgdesc (Dracut module)" + install_if="$pkgname=$pkgver-r$pkgrel dracut" + install -D -m755 "$srcdir"/dracut_module.sh "$subpkgdir"/usr/lib/dracut/modules.d/99s6li/module-setup.sh } -sha512sums="4d96a7e9786c085445970290bdb77d763b912f8405fa2ca5ccd01c31e18bee67ca4b420f222a7ea599376a9ab4a89269cb7756ef15138b191168bfd01366c3a6 s6-linux-init-1.1.0.0.tar.gz +sha512sums="76376c4d407e665f67f733f1366dbacca58d268ebdbe22a9147cb102d519bd4c5887a345f66db2005d29ed9a841cb5a388c73c7d8df00d984cc4a25b9a813786 s6-linux-init-1.1.2.0.tar.gz 756b0cbbe5dabb4631380c3c7ea199cc213224b2e36e50a2d012a61948170078b78bf49b85d886319fecf59843087f937d3d804723b2553ac9f94d088a2f0fd8 rc.init e73c3c32b118831074288d23fadace2158a2b15d5a13ffa73290b92a9e39c2a21c73d3b0eabea29bcbaa5f6381611fd8d0aaa6aa691ec7de91b8ef6ae404b6da runlevel 7bb050248a5c2ab6a56c50c35f87cde724f97ff9882f5e60b0f0f2f14bd93c1df7d99fedc3d81c8519cf1a1ed90e03f1cbb9bf891c7b3618aa9a5f5738d262f4 rc.shutdown 6fb2a1112988fd2322b4bc4862bfb948a1c2e43921c5d01ae873c0d31b39fe74fc2934a5018c08b1704a2b2199b31d3a3d7365be369bba734f153b74e000aa74 reboot.sh -dfff483b61370ce2c8fe653cb4e9b6ec7ef678f26b128eab8e677548a48b668b532b12a2e4618c85bf95777a666ac30189780708803d6ea12e43ab0072399212 earlygetty.run" +dfff483b61370ce2c8fe653cb4e9b6ec7ef678f26b128eab8e677548a48b668b532b12a2e4618c85bf95777a666ac30189780708803d6ea12e43ab0072399212 earlygetty.run +a62cf543e64aaf24f16c0e3d23497890de7a4a621c9d8f93c447001ea56a21324046ee589188d11b3d4dbfea4a707b5a1889d2b703c00ea6a81207a0442f9799 dracut_module.sh" diff --git a/system/s6-linux-init/dracut_module.sh b/system/s6-linux-init/dracut_module.sh new file mode 100755 index 000000000..106025ca7 --- /dev/null +++ b/system/s6-linux-init/dracut_module.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst /bin/s6-linux-init-hpr +} + diff --git a/system/s6-rc/APKBUILD b/system/s6-rc/APKBUILD index 04453992b..6fbcf44e1 100644 --- a/system/s6-rc/APKBUILD +++ b/system/s6-rc/APKBUILD @@ -1,18 +1,19 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-rc -pkgver=0.5.4.1 +pkgver=0.5.4.3 pkgrel=0 pkgdesc="skarnet.org's service manager, working on top of s6" url="https://skarnet.org/software/s6-rc/" arch="all" options="!check" license="ISC" -_skalibs_version=2.13 -_s6_version=2.11 +_skalibs_version=2.14 +_s6_version=2.12 depends="execline" -makedepends="skalibs-dev>=$_skalibs_version execline-dev s6-dev>=$_s6_version" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +depends_dev="skalibs-dev>=$_skalibs_version s6-dev>=$_s6_version" +makedepends="$depends_dev execline-dev" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" build() { @@ -29,41 +30,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } - -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version s6-libs>=$_s6_version" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version s6-dev>=$_s6_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/include" "$subpkgdir/usr/lib" - mv "$pkgdir/usr/include" "$subpkgdir/usr/" - mv "$pkgdir"/usr/lib/*.a "$subpkgdir/usr/lib/" -} - - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="6b61df9fa1d9bd24430bab4c11bfba009ca79c62a32dd2db3b79a1057645da9f92db4058c66c35bb068d805d958bfdf024399d240559dfdee62f9a6a30cf2086 s6-rc-0.5.4.1.tar.gz" +sha512sums="7a54a32ea1261de79b9494adde74b50dbefce831f5a00f9d3772c9b64fd71918ce54a16dff828de0fb762633255226ca935357f9f31c4264716b7041a5f5f8bb s6-rc-0.5.4.3.tar.gz" diff --git a/system/s6/APKBUILD b/system/s6/APKBUILD index 1c7891d2c..52c462154 100644 --- a/system/s6/APKBUILD +++ b/system/s6/APKBUILD @@ -1,18 +1,19 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6 -pkgver=2.11.3.0 +pkgver=2.13.0.0 pkgrel=0 pkgdesc="skarnet.org's small & secure supervision software suite" -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/s6/" arch="all" options="!check" # No test suite. license="ISC" -_skalibs_version=2.13.1 +_skalibs_version=2.14.1 depends="execline" -makedepends="skalibs-dev>=$_skalibs_version execline-dev" +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev execline-dev" install="$pkgname.post-upgrade" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc" triggers="$pkgname.trigger=/run/service" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" @@ -30,41 +31,8 @@ build() { package() { make DESTDIR="$pkgdir" install - mkdir -p -m 0755 "$pkgdir/var/lib/s6/services" + mkdir -p -m 0755 "$pkgdir/var/lib/s6/services" "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } - -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr" - mv "$pkgdir/usr/lib" "$pkgdir/usr/include" "$subpkgdir/usr/" -} - - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="764981bb54c6add6bff7c77b41c6c61055fd8b9ba284c7b41e13e4103c8d5a3dddd442145d8eb572e5be6883ab6a9e3025c064d946e8e273e956d404528c5479 s6-2.11.3.0.tar.gz" +sha512sums="b54d334496d79d1b845552f5e7763c536d6f253c9bb2d61802695ea1a596af918562daa230f09f4cbfc06614eff70930d0963439d7d84ec8ae0388291912ca9d s6-2.13.0.0.tar.gz" diff --git a/system/s6/s6.post-upgrade b/system/s6/s6.post-upgrade index 54144895b..91459ad9f 100644 --- a/system/s6/s6.post-upgrade +++ b/system/s6/s6.post-upgrade @@ -1,3 +1,16 @@ #!/bin/sh -e rm -f /etc/runlevels/default/s6 + +vnew="$1" +vold="$2" + +if test `apk version -t $vnew 2.13` != '<' && test `apk version -t $vold 2.13` = '<' ; then + echo + echo '***' + echo 'The s6 package has undergone an ABI change.' + echo 'Please reboot at your earliest convenience. Commands such as s6-svstat' + echo 'may not work until you do so.' + echo '***' + echo +fi diff --git a/system/scdoc/APKBUILD b/system/scdoc/APKBUILD new file mode 100644 index 000000000..d496dce6a --- /dev/null +++ b/system/scdoc/APKBUILD @@ -0,0 +1,24 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=scdoc +pkgver=1.11.2 +pkgrel=0 +pkgdesc="Small man page generator" +url="https://git.sr.ht/~sircmpwn/scdoc" +arch="all" +license="MIT" +options="!check" # No test suite. +depends="" +makedepends="" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/scdoc/archive/$pkgver.tar.gz" + +build() { + make PREFIX=/usr +} + +package() { + make PREFIX=/usr DESTDIR=$pkgdir install +} + +sha512sums="3fbf1a74b222dd88410636124e4b6ca73f7e77f67d512cf430a878fefcaa5c6c13a1e9f6c0c9654de15353f94bb1bd528665acebc2293bebb325501d1eb6cda3 scdoc-1.11.2.tar.gz" diff --git a/system/sharutils/APKBUILD b/system/sharutils/APKBUILD index 67b264b53..7d74c1743 100644 --- a/system/sharutils/APKBUILD +++ b/system/sharutils/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=sharutils pkgver=4.15.2 -pkgrel=2 +pkgrel=3 pkgdesc="Utilities for manipulating shell archives" url="https://www.gnu.org/software/sharutils/" arch="all" @@ -11,7 +11,9 @@ depends="bzip2" makedepends_build="texinfo" subpackages="$pkgname-lang $pkgname-doc" source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz - CVE-2018-1000097.patch" + CVE-2018-1000097.patch + modern-gcc.patch + " # secfixes: # 4.15.2-r2: @@ -40,4 +42,5 @@ package() { } sha512sums="80d0b804a0617e11e5c23dc0d59b218bbf93e40aaf5e9a5401a18ef9cb700390aab711e2b2e2f26c8fd5b8ef99a91d3405e01d02cadabcba7639979314e59f8d sharutils-4.15.2.tar.xz -6415da74c4f6f203bc4ad617bd05fa6ac86e1079538236148763e0b5e81ca8ea4004ea58e9e4755ba371246a7c469ef1e421576260494043d3ce3fc80e73cf69 CVE-2018-1000097.patch" +6415da74c4f6f203bc4ad617bd05fa6ac86e1079538236148763e0b5e81ca8ea4004ea58e9e4755ba371246a7c469ef1e421576260494043d3ce3fc80e73cf69 CVE-2018-1000097.patch +3938bd255cbc62953a8c2888525e0b8932df0df2628efbda285ba85ae2037fd1e32b6015f89663452c1d566fb7e27e648c0be4141a4c327e9744c07c86b523fd modern-gcc.patch" diff --git a/system/sharutils/modern-gcc.patch b/system/sharutils/modern-gcc.patch new file mode 100644 index 000000000..b42e0a7fb --- /dev/null +++ b/system/sharutils/modern-gcc.patch @@ -0,0 +1,47 @@ +Upstream-URL: https://savannah.gnu.org/bugs/index.php?65790 +Upstream-Status: Pending + +--- sharutils-4.15.2/src/shar-opts.h.old 2015-05-30 10:34:12.000000000 -0500 ++++ sharutils-4.15.2/src/shar-opts.h 2024-05-25 12:36:29.126495658 -0500 +@@ -352,7 +352,7 @@ + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + extern bool initialization_done; + extern int optidx; +--- sharutils-4.15.2/src/unshar-opts.h.old 2015-05-30 10:34:18.000000000 -0500 ++++ sharutils-4.15.2/src/unshar-opts.h 2024-05-25 12:36:07.748789737 -0500 +@@ -192,7 +192,7 @@ + extern size_t separator_str_len; + + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * +--- sharutils-4.15.2/src/uudecode-opts.h.old 2015-05-30 10:34:21.000000000 -0500 ++++ sharutils-4.15.2/src/uudecode-opts.h 2024-05-25 12:33:58.052707656 -0500 +@@ -170,7 +170,7 @@ + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * +--- sharutils-4.15.2/src/uuencode-opts.h.old 2015-05-30 10:34:25.000000000 -0500 ++++ sharutils-4.15.2/src/uuencode-opts.h 2024-05-25 12:36:54.973721944 -0500 +@@ -166,7 +166,7 @@ + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * diff --git a/system/skalibs/APKBUILD b/system/skalibs/APKBUILD index 2076e030a..acef0c29c 100644 --- a/system/skalibs/APKBUILD +++ b/system/skalibs/APKBUILD @@ -1,14 +1,14 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=skalibs -pkgver=2.13.1.0 +pkgver=2.14.2.0 pkgrel=0 pkgdesc="A set of general-purpose C programming libraries for skarnet.org software" url="https://skarnet.org/software/skalibs/" arch="all" options="!check" # No test suite. license="ISC" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" build() { @@ -21,40 +21,14 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } - -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - - dev() { - pkgdesc="$pkgdesc (development files)" - depends="" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir" - mv "$pkgdir/usr" "$subpkgdir/" -} - - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" + default_dev + mkdir -p -m 0755 "$subpkgdir/usr/lib/skalibs" + mv "$pkgdir/usr/lib/skalibs/sysdeps" "$subpkgdir/usr/lib/skalibs/" } -sha512sums="922a26f0113e22491d57aa2a577375245d70fea1478024c7130814426d978f4c18b59acbbe6a0b846a4776f0af34b966585318feb7e9b4fbcbfded459e061c9d skalibs-2.13.1.0.tar.gz" +sha512sums="b96491e6429cc69bc75f50be99b7b18769cb756c1a82f698994c23aefb16bc68ee5558076993b948a6674203ecd82a454a978c89f450c219cc2728d52b7f5656 skalibs-2.14.2.0.tar.gz" diff --git a/system/slibtool/APKBUILD b/system/slibtool/APKBUILD index a1ac2142d..06601b494 100644 --- a/system/slibtool/APKBUILD +++ b/system/slibtool/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=slibtool -pkgver=0.5.34 +pkgver=0.5.35 pkgrel=0 pkgdesc="'Skinny' library support script" url="https://dev.midipix.org/cross/slibtool" @@ -10,7 +10,7 @@ license="MIT" depends="" makedepends="m4" subpackages="" -source="https://git.foss21.org/slibtool/snapshot/$pkgname-$pkgver.tar.xz" +source="https://dl.foss21.org/slibtool/$pkgname-$pkgver.tar.xz" build() { ./configure \ @@ -21,4 +21,4 @@ build() { package() { make DESTDIR="$pkgdir" install } -sha512sums="62f976d4a05c8a6464679fc98fb8734914bb27bff9ababfcda24d7be9ff8c7d2cb43ad73569403593142059d115750d1fc45660d934f43eb5e0f206d8ed43dbe slibtool-0.5.34.tar.xz" +sha512sums="e1d2f03596432f970f8c1f93d4387cafb11355a520fb5adb9bbc02f3dcdea0bbb78ca6fe84c24faebee848279050c5bec13fd64a168b12d7fc885ac9d31a7560 slibtool-0.5.35.tar.xz" diff --git a/system/utmps/APKBUILD b/system/utmps/APKBUILD index 8ad477089..7ae3849ed 100644 --- a/system/utmps/APKBUILD +++ b/system/utmps/APKBUILD @@ -1,17 +1,18 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=utmps -pkgver=0.1.2.1 -pkgrel=1 +pkgver=0.1.2.2 +pkgrel=2 pkgdesc="A secure utmp/wtmp implementation" -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/utmps/" arch="all" options="!check" # No test suite license="ISC" depends="execline s6" -_skalibs_version=2.13 +_skalibs_version=2.14 +depends_dev="skalibs-dev>=$_skalibs_version" makedepends="skalibs-dev>=$_skalibs_version" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc $pkgname-openrc" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc $pkgname-openrc" install="$pkgname.post-upgrade" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz utmpd.run @@ -35,9 +36,10 @@ build() { package() { make DESTDIR="$pkgdir" install runimage="$pkgdir/etc/s6-linux-init/current/run-image" - mkdir -p -m 0755 "$runimage/utmps" + mkdir -p -m 0755 "$runimage/utmps" "$pkgdir/usr/share/doc" chown utmp:utmp "$runimage/utmps" - install -D -m755 "$srcdir/utmps.initd" "$pkgdir/etc/init.d/utmps" + install -D -m 0755 "$srcdir/utmps.initd" "$pkgdir/etc/init.d/utmps" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } openrc() { @@ -61,37 +63,7 @@ openrc() { ln -s ../../init.d/utmps "$rldir/utmps" } -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so.* "$subpkgdir/lib/" -} - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr" - mv "$pkgdir/usr/lib" "$pkgdir/usr/include" "$subpkgdir/usr/" -} - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/lib" - mv "$pkgdir"/lib/*.so "$subpkgdir/lib/" -} - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="20bf9bfabfdd390377ca86d85da4a263a027ee5bdf5b7305bc6fb44d4aea7b4af886580f485d543895f85fb61d4f0ac711afba342a911c5ef928076c35746134 utmps-0.1.2.1.tar.gz +sha512sums="57a73658ecb947af9dfad7a5e2931660ad1b8fa61d36c803c373e8aba13e9afa8398c1522765f5ea2b5df87d942cea17062faf30f589afa6acc744ff3ae4a409 utmps-0.1.2.2.tar.gz 0ec30284c64c6ea9f25142c5f4a643bd48b137fe85781b650104f5137ffa4dfc35ca7be3e41e3acd3403ebe1d8c5378073afa4e2f3607d3d794fcd9f98ed51c4 utmpd.run 9e875a5cd37be531320a8e582afed2c980dd0a1bdfc2f6f3d826d5e5389fc6ab93f973ed1506edb23f4c73cf24a2357aefe856148eaacff86c2aafe376c575e2 wtmpd.run 503bdbb3d244243934b9b4e3deea0bf92a95f88417c822ad9cf6202584d4724d5e182a0d88d7f09069e435a8a97230b85d2b264736c85c893da193fd5ec34c71 btmpd.run diff --git a/system/vim/APKBUILD b/system/vim/APKBUILD index ae8aa1e31..0023238ee 100644 --- a/system/vim/APKBUILD +++ b/system/vim/APKBUILD @@ -4,7 +4,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=vim -pkgver=9.0.1385 +pkgver=9.1.0378 _pkgver=${pkgver%.*.*}${pkgver#*.} _pkgver=${_pkgver%.*} pkgrel=0 @@ -23,6 +23,22 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$ builddir="$srcdir/$pkgname-$pkgver" # secfixes: +# 9.1.0148-r0: +# - CVE-2023-4752 +# - CVE-2023-4781 +# - CVE-2023-5344 +# - CVE-2023-5441 +# - CVE-2023-5535 +# - CVE-2023-46246 +# - CVE-2023-48231 +# - CVE-2023-48232 +# - CVE-2023-48233 +# - CVE-2023-48234 +# - CVE-2023-48235 +# - CVE-2023-48236 +# - CVE-2023-48237 +# - CVE-2023-48706 +# - CVE-2024-22667 # 9.0.1385-r0: # - CVE-2023-0049 # - CVE-2023-0051 @@ -86,5 +102,5 @@ vimdiff() { mv "$pkgdir"/usr/bin/vimdiff "$subpkgdir"/usr/bin } -sha512sums="807f53451a5d6a38eb35c1a79c8dbd7a54e74b6e3f4f93099900579668254948231c56a97bcd9cbb3d9ba4f63a8042062395351dcfb23fd7e390f8d8eb97c106 vim-9.0.1385.tar.gz +sha512sums="d1c31de1e39bd3504a462aa324b699bb81ff11717171529047e5518c9bb2aec651b0b40a18b66f4df92a1b2065abc68a523df61681f32228839e69ba0f383e6b vim-9.1.0378.tar.gz 12ee3f96c94d74215159fba379ed61907ec5982a9f1643575dcb7c3d5e30824665d683de95f97b5067718b3f2a1238fb7534a70803bc170614498ad026f352d8 vimrc" diff --git a/system/zlib/APKBUILD b/system/zlib/APKBUILD index fac869fb3..610e98329 100644 --- a/system/zlib/APKBUILD +++ b/system/zlib/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=zlib -pkgver=1.3 +pkgver=1.3.1 pkgrel=0 pkgdesc="A compression/decompression Library" arch="all" @@ -29,4 +29,4 @@ package() { DESTDIR="$pkgdir" } -sha512sums="185795044461cd78a5545250e06f6efdb0556e8d1bfe44e657b509dd6f00ba8892c8eb3febe65f79ee0b192d6af857f0e0055326d33a881449f3833f92e5f8fb zlib-1.3.tar.gz" +sha512sums="580677aad97093829090d4b605ac81c50327e74a6c2de0b85dd2e8525553f3ddde17556ea46f8f007f89e435493c9a20bc997d1ef1c1c2c23274528e3c46b94f zlib-1.3.1.tar.gz" diff --git a/user/adelie-fonts/APKBUILD b/user/adelie-fonts/APKBUILD new file mode 100644 index 000000000..8006a4574 --- /dev/null +++ b/user/adelie-fonts/APKBUILD @@ -0,0 +1,19 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=adelie-fonts +pkgver=1.0 +pkgrel=0 +pkgdesc="Default font set for Adélie Linux desktops" +url="https://www.adelielinux.org/" +arch="noarch" +options="!check" # No test suite. +license="NCSA" +depends="otf-source-code-pro otf-source-sans-pro ttf-liberation" +makedepends="" +subpackages="" +source="" + +package() { + mkdir -p "$pkgdir" +} + diff --git a/user/adelie-kde-theme/APKBUILD b/user/adelie-kde-theme/APKBUILD index 9cc8badd5..3631bc35c 100644 --- a/user/adelie-kde-theme/APKBUILD +++ b/user/adelie-kde-theme/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=adelie-kde-theme pkgver=1.0 -pkgrel=2 +pkgrel=4 pkgdesc="The Adélie Linux official KDE theme" url="https://adelielinux.org/" arch="noarch" @@ -11,19 +11,18 @@ license="NCSA" depends="adelie-wallpapers papirus-icons" makedepends="" subpackages="" -source="kdeglobals - kscreenlockerrc - adelie-kde-theme.js +source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.xz + kdeglobals " -builddir="$srcdir/" package() { - install -D -m644 kdeglobals "$pkgdir"/etc/xdg/kdeglobals - install -m644 kscreenlockerrc "$pkgdir"/etc/xdg/kscreenlockerrc - install -D -m644 adelie-kde-theme.js \ - "$pkgdir"/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/adelie-kde-theme.js + install -D -m644 "$srcdir"/kdeglobals "$pkgdir"/etc/xdg/kdeglobals + install -m644 "$builddir"/kscreenlockerrc \ + "$pkgdir"/etc/xdg/kscreenlockerrc + mkdir -p "$pkgdir"/usr/share/plasma/look-and-feel + mv "$builddir"/org.adelielinux.*.desktop \ + "$pkgdir"/usr/share/plasma/look-and-feel/ } -sha512sums="ed5dfa83a4d2f6b171b3a3238dea626b9ca9e1afd72ae026ef680a5eef0c3fff4aaf7c82f4bf394c26d002fde7517a4c842f9bdb9059107200d17f48e432b940 kdeglobals -b94c261d2ce098af1c1856f92b20485167be4f59b66fd3a47379d339a21b4c7a9c274dca2964bbc5f2adff74e514eb73e988db749e22d35817f37b10303fecca kscreenlockerrc -05a4649938755b3b3c058d6a7507065e07ba29ac448d314db3fc93623008eb1903ae5bcc9c62d0b29b37dd0e85246bc2dbfc2792c69e0f387e99683275db09cd adelie-kde-theme.js" +sha512sums="1a839b3c96e5881be9c0b096984d79a320f66f65bdcf2749b31aca7a04d7eb8edc1326649a2fcf4b6f2012c0b5d6967d1066397542fec44c7d1ac44b0599b462 adelie-kde-theme-1.0.tar.xz +84940738263518df79cebaa3c158ed3713009f1a8cd201a6de06cc2a935845aba8a90a60882b575e5b17321706786a7ee6addc30dc530ce0453821d0ba157616 kdeglobals" diff --git a/user/adelie-kde-theme/adelie-kde-theme.js b/user/adelie-kde-theme/adelie-kde-theme.js deleted file mode 100644 index 596d386b5..000000000 --- a/user/adelie-kde-theme/adelie-kde-theme.js +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2016 Aurélien COUDERC <zecoucou@free.fr> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. - -// This script is provided by desktop-base -// It is run by Plasma 5 on upgrade. -// Plasma checks that the script is only run once for each version. -desktops = desktops() - -for (desktop in desktops) { - // Only set up the wallpaper if the plugin is the default. - // Otherwise it means the user chose another plugin and we don’t want to override that. - if (desktops[desktop].wallpaperPlugin == 'org.kde.image') { - desktops[desktop].currentConfigGroup = Array('Wallpaper', 'org.kde.image', 'General') - if (!desktops[desktop].readConfig('Image')) { - // Only set up the wallpaper if the wallpaper image is empty (=default). - // Otherwise it means the user selected a picture and we don’t want to override that. - desktops[desktop].writeConfig('Image', 'Sunset'); - } - } -} - diff --git a/user/adelie-kde-theme/kdeglobals b/user/adelie-kde-theme/kdeglobals index 2ec479dc2..80168401d 100644 --- a/user/adelie-kde-theme/kdeglobals +++ b/user/adelie-kde-theme/kdeglobals @@ -1,8 +1,2 @@ -[General] -ColorScheme=Steel - -[Icons] -Theme=Papirus - -[WM] -activeBackground=104,0,0 +[KDE] +LookAndFeelPackage=org.adelielinux.kdetheme.desktop diff --git a/user/adelie-kde-theme/kscreenlockerrc b/user/adelie-kde-theme/kscreenlockerrc deleted file mode 100644 index 54b5cbd92..000000000 --- a/user/adelie-kde-theme/kscreenlockerrc +++ /dev/null @@ -1,13 +0,0 @@ -[$Version] -update_info=kscreenlocker.upd:0.1-autolock - -[Greeter] -WallpaperPlugin=org.kde.image - -[Greeter][Wallpaper][org.kde.color][General] -Color=128,0,0 - -[Greeter][Wallpaper][org.kde.image][General] -Color=128,0,0 -FillMode=1 -Image=LockScreen diff --git a/user/adelie-lxqt-theme/APKBUILD b/user/adelie-lxqt-theme/APKBUILD new file mode 100644 index 000000000..afe840866 --- /dev/null +++ b/user/adelie-lxqt-theme/APKBUILD @@ -0,0 +1,28 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=adelie-lxqt-theme +pkgver=1.0 +pkgrel=1 +pkgdesc="The Adélie Linux official LXQt theme" +url="https://adelielinux.org/" +arch="noarch" +options="!check" # No test suite. +license="NCSA" +depends="adelie-fonts adelie-wallpapers papirus-icons" +makedepends="" +subpackages="" +source="lxqt-session.conf + lxqt-desktop.conf + lxqt-qt5ct.conf + " +builddir="$srcdir/" + +package() { + install -D -m644 lxqt-desktop.conf "$pkgdir"/etc/xdg/pcmanfm-qt/lxqt/settings.conf + install -D -m644 lxqt-qt5ct.conf "$pkgdir"/etc/xdg/qt5ct/qt5ct.conf + install -D -m644 lxqt-session.conf "$pkgdir"/etc/xdg/lxqt/session.conf +} + +sha512sums="1e3bc3c06ae7d5251f24bad11f305947d43f2fcf7f4813f7d07ed98f44a0a12c6da8c9068044ea92fa4b704e0a7987a4369a4a80f327a1b67ed67376c35877e8 lxqt-session.conf +1f9f2ce47c1d0d1ed7cb1584ff550de69c49ab9493c10f1a999a2a285601b2d94cfc41ea9686120e5be0b968832c8975a6c4f619a17e564d00e2e7f592f8ce5e lxqt-desktop.conf +79db5e0e6fdeabc5e82e843f0199c5e9102b983097a9f8c007bfe2624b85980fc713da0603833af20c00d88c889972e5bfb78b064af32a09b459328065304aac lxqt-qt5ct.conf" diff --git a/user/adelie-lxqt-theme/lxqt-desktop.conf b/user/adelie-lxqt-theme/lxqt-desktop.conf new file mode 100644 index 000000000..efe12b85f --- /dev/null +++ b/user/adelie-lxqt-theme/lxqt-desktop.conf @@ -0,0 +1,20 @@ +[Behavior] +ConfirmDelete=true +ConfirmTrash=false +CtrlRightClick=true +SingleClick=false +UseTrash=true + +[Desktop] +AllSticky=false +BgColor=#eeeeee +DesktopIconSize=48 +DesktopShortcuts=Home, Trash, Computer +FgColor=#131517 +Font="Liberation Sans,10,-1,5,50,0,0,0,0,0" +HideItems=false +PerScreenWallpaper=false +ShadowColor=#c3c3c3 +TransformWallpaper=false +Wallpaper=/usr/share/wallpapers/background/contents/images/1920x1200.png +WallpaperMode=zoom diff --git a/user/adelie-lxqt-theme/lxqt-qt5ct.conf b/user/adelie-lxqt-theme/lxqt-qt5ct.conf new file mode 100644 index 000000000..023519e76 --- /dev/null +++ b/user/adelie-lxqt-theme/lxqt-qt5ct.conf @@ -0,0 +1,19 @@ +[Appearance] +icon_theme=Papirus +style=Fusion + +[Fonts] +fixed=@Variant(\0\0\0@\0\0\0\x1e\0L\0i\0\x62\0\x65\0r\0\x61\0t\0i\0o\0n\0 \0M\0o\0n\0o@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) +general=@Variant(\0\0\0@\0\0\0\x1e\0L\0i\0\x62\0\x65\0r\0\x61\0t\0i\0o\0n\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +menus_have_icons=true +show_shortcuts_in_context_menus=true +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 diff --git a/user/adelie-lxqt-theme/lxqt-session.conf b/user/adelie-lxqt-theme/lxqt-session.conf new file mode 100644 index 000000000..09518fc2d --- /dev/null +++ b/user/adelie-lxqt-theme/lxqt-session.conf @@ -0,0 +1,2 @@ +[General] +window_manager=openbox diff --git a/user/adelie-mate-theme/APKBUILD b/user/adelie-mate-theme/APKBUILD new file mode 100644 index 000000000..a182d9045 --- /dev/null +++ b/user/adelie-mate-theme/APKBUILD @@ -0,0 +1,22 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=adelie-mate-theme +pkgver=1.0 +pkgrel=1 +pkgdesc="Adélie theme for the MATE desktop environment" +url="https://adelielinux.org/" +arch="noarch" +options="!check" # no tests +license="NCSA" +depends="adelie-fonts adelie-wallpapers dconf papirus-icons" +makedepends="" +subpackages="" +install="adelie-mate-theme.post-install" +source="dconf.conf" + +package() { + install -Dm644 "$srcdir"/dconf.conf \ + "$pkgdir"/etc/dconf/db/local.d/01-mate +} + +sha512sums="10a5ca7aeb78bb464ed8455ecec0b8aa21ab76d89fad95674b71900ccb569ce1d800dd5352cdec0c10e38f3264982a53e809791780cbce2f495ad9f082b93bcb dconf.conf" diff --git a/user/adelie-mate-theme/adelie-mate-theme.post-install b/user/adelie-mate-theme/adelie-mate-theme.post-install new file mode 100644 index 000000000..37ca00b1d --- /dev/null +++ b/user/adelie-mate-theme/adelie-mate-theme.post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +dconf update > /dev/null diff --git a/user/adelie-mate-theme/dconf.conf b/user/adelie-mate-theme/dconf.conf new file mode 100644 index 000000000..6e9cf64dc --- /dev/null +++ b/user/adelie-mate-theme/dconf.conf @@ -0,0 +1,17 @@ +[org/mate/desktop/background] +picture-filename='/usr/share/wallpapers/background/contents/image/1920x1200.png' +picture-options='zoom' + +[org/mate/desktop/interface] +document-font-name='Source Sans 3 10' +font-name='Source Sans 3 10' +gtk-theme='Raleigh' +icon-theme='Papirus' +monospace-font-name='Source Code Pro 10' + +[org/mate/marco/general] +theme='Blue-Submarine' + +[org/mate/terminal/profiles/default] +background-color='#000000000000' +foreground-color='#FFFFFFFFFFFF' diff --git a/user/adelie-wallpapers/APKBUILD b/user/adelie-wallpapers/APKBUILD index 5462ef837..e6b4ac45f 100644 --- a/user/adelie-wallpapers/APKBUILD +++ b/user/adelie-wallpapers/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=adelie-wallpapers -pkgver=1.0 +pkgver=1.1 pkgrel=0 pkgdesc="Wallpapers from the Adélie Linux team" url="https://www.adelielinux.org/" @@ -10,12 +10,34 @@ options="!check" # No test suite. license="CC-BY-SA-4.0" depends="" makedepends="" -subpackages="" +subpackages="$pkgname-core" source="https://distfiles.adelielinux.org/source/adelie-wallpapers-$pkgver.tar.xz" package() { mkdir -p "$pkgdir" mv "$builddir"/usr "$pkgdir"/ + + # For MATE/XFCE + mkdir "$pkgdir"/usr/share/backgrounds/ + ln -s ../wallpapers/background/contents/images/1280x1024.png \ + "$pkgdir"/usr/share/backgrounds/background.png + ln -s ../wallpapers/background/contents/images/1920x1080.png \ + "$pkgdir"/usr/share/backgrounds/background-wide.png + ln -s ../wallpapers/lockscreen/contents/images/1280x1024.png \ + "$pkgdir"/usr/share/backgrounds/lockscreen.png + ln -s ../wallpapers/lockscreen/contents/images/1920x1080.png \ + "$pkgdir"/usr/share/backgrounds/lockscreen-wide.png +} + +core() { + provides="$pkgname=1" + description="Base wallpapers needed for minimal desktop environments" + + mkdir -p "$subpkgdir"/usr/share/wallpapers + for wallpaper in background lockscreen; do + cp -r "$pkgdir"/usr/share/wallpapers/$wallpaper \ + "$subpkgdir"/usr/share/wallpapers/ + done } -sha512sums="3815145eaf92524eb848ec179cefecd66b43873a9f17133b62baf2ce894d7f629585f6670e5e499d7d5779377c1819627256d7812bb4318b0bfd68466c9b1cff adelie-wallpapers-1.0.tar.xz" +sha512sums="9ea239bd2ab1c53274a63f159b572c682b72ddb31f02ec30d5afe43e935fa0128fc61e4497d2c76c8d70dc2cd5fc53d0c0b04aa6ab744bb954addc10dcaff981 adelie-wallpapers-1.1.tar.xz" diff --git a/user/akonadi-search/APKBUILD b/user/akonadi-search/APKBUILD index bf40009de..a514ca634 100644 --- a/user/akonadi-search/APKBUILD +++ b/user/akonadi-search/APKBUILD @@ -34,7 +34,7 @@ build() { check() { # sqlite backend requires D-Bus server. - QT_QPA_PLATFORM=offscreen CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E 'akonadi-sqlite*' + QT_QPA_PLATFORM=offscreen CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E 'akonadi-sqlite*|akonadi-pgsql*' } package() { diff --git a/user/apache-httpd/APKBUILD b/user/apache-httpd/APKBUILD index ea151ac62..94ee32cf9 100644 --- a/user/apache-httpd/APKBUILD +++ b/user/apache-httpd/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=apache-httpd _pkgreal=httpd -pkgver=2.4.57 +pkgver=2.4.59 pkgrel=0 pkgdesc="Open-source HTTP server" url="https://httpd.apache.org" @@ -177,7 +177,7 @@ ldap() { "$subpkgdir"/usr/libexec/apache2 } -sha512sums="4d1e0a274ee90bdfb5f38d4a7d73a7367ed1c6388e26280e640014e49abc0df03683705b88dcfe2ec2da313dda4c7b4a3b86daffa1911f58e224eba89d82d155 httpd-2.4.57.tar.bz2 +sha512sums="209da0bbac5e2564d4590302515b35495be6402273ff4024aa93e85e44554c95e053201d606383936425a41e1b5b97e6b40055dcbb385eb691a5029a6f3158c2 httpd-2.4.59.tar.bz2 c8bc2bb06ae51b0956e0ee673e80c444551c9b33dfcbb845106477c46d9e52786a8896022e1f00102264fecdf66e35e47fc6cf0abe9836fa536735cff4e6adf4 adelie.layout 336e81fa0d08f8fbe6243d52bd59b12cf2e925deb49b29d7a22953c5d40a951b6b753f51e5a396752cb0bbaf1cf25b1358902f375fb65639d00e62db7ae55ff2 apache-httpd.confd 5762d53f39ce7ecd730e05ddf6c063ede65cd75b9e7d67217784c80366646491ef9474306e8eb119c8fb5b4358407b07636a4e9cd82325d8df4e3e00dabc3459 apache-httpd.initd diff --git a/user/apaste/APKBUILD b/user/apaste/APKBUILD new file mode 100644 index 000000000..9da6d259a --- /dev/null +++ b/user/apaste/APKBUILD @@ -0,0 +1,82 @@ +# Contributor: Laurent Bercot <ska-adelie@skarnet.org> +# Maintainer: Laurent Bercot <ska-adelie@skarnet.org> +pkgname=apaste +pkgver=0.0.2.0 +pkgrel=2 +pkgdesc="A command-line pastebin" +url="https://skarnet.org/software/apaste/" +arch="all" +options="!check" # No test suite. +license="ISC" +depends="s6-networking" +makedepends="skalibs-dev>=2.14.1.1 s6-networking-dev>=2.7.0.2" +subpackages="apaste-doc apasted:server apasted-openrc:apasted_openrc" +source=" + https://skarnet.org/software/apaste/apaste-$pkgver.tar.gz + apasted.run + apastesd.run + apasted-log.run + apasted.confd + apasted.initd + " +pkggroups="apasted" +pkgusers="apastedlog apasted" + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +_makeservicedir() { + name="apaste${1}d-${2}" + fn="$subpkgdir/var/lib/apasted/services/$name" + mkdir -p "$fn/log" + echo 3 > "$fn/log/notification-fd" + sed -e "s/@S@/${1}/g; s/@V@/${2}/g;" "$srcdir/apasted-log.run" > "$fn/log/run" + chmod 0755 "$fn/log/run" + echo 3 > "$fn/notification-fd" + sed -e "s/@V@/${2}/g;" "$srcdir/apaste${1}d.run" > "$fn/run" + chmod 0755 "$fn/run" + fn="$subpkgdir/var/log/$name" + mkdir -p "$fn" + chown apastedlog:apasted "$fn" + chmod 02700 "$fn" +} + +package() { + make DESTDIR="$pkgdir" install + install -D -m 0644 "$srcdir/apasted.confd" "$pkgdir/etc/conf.d/apasted" + install -D -m 0755 "$srcdir/apasted.initd" "$pkgdir/etc/init.d/apasted" + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" +} + +server() { + depends="execline s6 s6-networking>=2.7.0.2 apasted-openrc" + pkgdesc="A server for the apaste command-line pastebin" + install="apasted.pre-install" + mkdir -p "$subpkgdir/usr/bin" "$subpkgdir/var/lib/apasted/services" + mv "$pkgdir/usr/bin/apasted" "$subpkgdir/usr/bin/" + for i in '' s ; do for j in 4 6 ; do + _makeservicedir "$i" "$j" + done ; done +} + +apasted_openrc() { + depends="apasted" + install -D -m 0644 "$srcdir/apasted.confd" "$subpkgdir/etc/conf.d/apasted" + install -D -m 0755 "$srcdir/apasted.initd" "$subpkgdir/etc/init.d/apasted" +} + +sha512sums="b1550d738801ddee528d0ce62333aa9a8fc9824183a61be295e767fbcdb1ae4d15a5e34295754cc5e8c51c8b410a56972bac28c5812099652fb8bb5140fb4c15 apaste-0.0.2.0.tar.gz +27f6b3ac98f52a6ed11d225ea19e34160b1fef2dd980a32a43ff03499e121b6418612be4c94d1139388bee47b14a5ea24edc383fcfcfe55abe7daf12be2d514c apasted.run +8cd74ba6c6579912083f9605056b46ca2887faaf23a0d1981043a5ac4d6e724def51a7c087fb719f2b0189e6b0a0d9469a1e955fcbf04c8ea9f2d818649c122e apastesd.run +9341c1c69c1d45b35052b0042665fffb9cff6583fad558ed37a19af574b53a5e298727c43a6c718fd40936e8f16d1a10e9c229392595ba1e06ddb21d1d8b055b apasted-log.run +3b91225252d95d676097d337ca77ef2bdffb52baa657197efe079b82c663baeaed0882993eeed7f7ce260f051e439159c61368f8a1d4b84d1daa74fe358c39d7 apasted.confd +f9e6dd5aa6d5efe678f370431e7b58a52f903eed9b698f60b1853d601a4d9c0a53ccb996034d401dfd7ddbe573fc2651cf5c87164de599c42f754ad015b8e302 apasted.initd" diff --git a/user/apaste/apasted-log.run b/user/apaste/apasted-log.run new file mode 100644 index 000000000..4d10c72b1 --- /dev/null +++ b/user/apaste/apasted-log.run @@ -0,0 +1,5 @@ +#!/bin/execlineb -S1 + +s6-envuidgid apastedlog +exec -c +s6-log -d3 -- t /var/log/apaste@S@d-@V@ diff --git a/user/apaste/apasted.confd b/user/apaste/apasted.confd new file mode 100644 index 000000000..df57ce121 --- /dev/null +++ b/user/apaste/apasted.confd @@ -0,0 +1,32 @@ +# apasted configuration + +# The IPs you want the apasted server to listen on. +# Comment to disable. +APASTED_IPv4=0.0.0.0 +APASTED_IPv6=:: + +# The ports for plaintext service and TLS-tunneled service. +# Comment to disable. +APASTED_PORT=9999 +# APASTED_TLS_PORT=9997 + +# If APASTED_TLS_PORT is present, KEYFILE should point to +# your private key, and CERTFILE should point to your certificate. +# KEYFILE= +# CERTFILE= + +# Where the pastes are stored. Make sure this directory exists +# and is writable by the apasted user. +APASTED_ROOT=/var/tmp/apaste + +# If you want a prefix for the slugs. +# APASTED_PREFIX= + +# Maximum number of client files stored at once. Default is 10. +# APASTED_MAXFILES=10 + +# Maximum client file size, in bytes. Default is 1048576 (1 MB). +# APASTED_MAXSIZE=1048576 + +# Maximum total size of a transaction, in bytes. Default is 10485760 (10 MB). +# APASTED_MAXTOTALSIZE=10485760 diff --git a/user/apaste/apasted.initd b/user/apaste/apasted.initd new file mode 100644 index 000000000..f730f8012 --- /dev/null +++ b/user/apaste/apasted.initd @@ -0,0 +1,64 @@ +#!/sbin/openrc-run + +description="Start/stop the apasted services" + +depend() +{ + after net + after localmount +} + +_get_services() +{ + list= + if test -n "$APASTED_PORT" ; then + if test -n "$APASTED_IPv4" ; then + list="apasted-4" + fi + if test -n "$APASTED_IPv6" ; then + list="$list apasted-6" + fi + fi + if test -n "$APASTED_TLS_PORT" ; then + if test -n "$APASTED_IPV4" ; then + list="apastesd-4" + fi + if test -n "$APASTED_IPV6" ; then + list="$list apastesd-6" + fi + fi + echo $list +} + +stop() +{ + ebegin "Stopping the apasted services" + for i in `_get_services` ; do + s6-svunlink /run/service "$i" + done + eend $? +} + +start() +{ + ebegin "Starting the apasted services" + for i in `_get_services` ; do + s6-svlink -t10000 /run/service "/var/lib/apasted/services/$i" + done + eend $? +} + +status() +{ + for i in `_get_services` ; do + echo -n "${i}: " + s6-svstat "/run/service/${i}" + done +} + +restart() +{ + for i in `_get_services` ; do + s6-svc -rwR "/run/service/$i" + done +} diff --git a/user/apaste/apasted.pre-install b/user/apaste/apasted.pre-install new file mode 100644 index 000000000..27c1c1880 --- /dev/null +++ b/user/apaste/apasted.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +groupadd -r -- apasted 2>/dev/null +useradd -r -d / -M -N -s /sbin/nologin -g apasted -c apastedlog -- apastedlog 2>/dev/null +useradd -r -d / -M -N -s /sbin/nologin -g apasted -c apasted -- apasted 2>/dev/null + +exit 0 diff --git a/user/apaste/apasted.run b/user/apaste/apasted.run new file mode 100644 index 000000000..4b49c6320 --- /dev/null +++ b/user/apaste/apasted.run @@ -0,0 +1,19 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/apasted +multisubstitute +{ + importas -ui APASTED_IPv@V@ APASTED_IPv@V@ + importas -ui APASTED_PORT APASTED_PORT + importas -ui APASTED_ROOT APASTED_ROOT + importas -uD "" APASTED_PREFIX APASTED_PREFIX + importas -uD 10 APASTED_MAXFILES APASTED_MAXFILES + importas -uD 1048576 APASTED_MAXSIZE APASTED_MAXSIZE + importas -uD 10485760 APASTED_MAXTOTALSIZE APASTED_MAXTOTALSIZE +} +s6-envuidgid apasted +s6-tcpserver -1 -U -- ${APASTED_IPv@V@} ${APASTED_PORT} +apasted -r 10000 -w 10000 -d ${APASTED_ROOT} -p ${APASTED_PREFIX} -n ${APASTED_MAXFILES} -s ${APASTED_MAXSIZE} -S ${APASTED_MAXTOTALSIZE} diff --git a/user/apaste/apastesd.run b/user/apaste/apastesd.run new file mode 100644 index 000000000..b5d0813f6 --- /dev/null +++ b/user/apaste/apastesd.run @@ -0,0 +1,23 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/apasted +multisubstitute +{ + importas -ui APASTED_IPv@V@ APASTED_IPv@V@ + importas -ui APASTED_TLS_PORT APASTED_TLS_PORT + importas -ui APASTED_ROOT APASTED_ROOT + importas -uD "" APASTED_PREFIX APASTED_PREFIX + importas -uD 10 APASTED_MAXFILES APASTED_MAXFILES + importas -uD 1048576 APASTED_MAXSIZE APASTED_MAXSIZE + importas -uD 10485760 APASTED_MAXTOTALSIZE APASTED_MAXTOTALSIZE + importas -ui KEYFILE KEYFILE + importas -ui CERTFILE CERTFILE +} +s6-envuidgid apasted +export TLS_UID 65534 +export TLS_GID 65534 +s6-tlsserver -1 -U -H -l0 -K 5000 -- ${APASTED_IPv@V@} ${APASTED_TLS_PORT} +apasted -r 10000 -w 10000 -d ${APASTED_ROOT} -p ${APASTED_PREFIX} -n ${APASTED_MAXFILES} -s ${APASTED_MAXSIZE} -S ${APASTED_MAXTOTALSIZE} diff --git a/user/apkvitrine/APKBUILD b/user/apkvitrine/APKBUILD index df48fc4ec..e72bef517 100644 --- a/user/apkvitrine/APKBUILD +++ b/user/apkvitrine/APKBUILD @@ -1,13 +1,13 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=apkvitrine pkgver=0.2 -pkgrel=0 +pkgrel=1 pkgdesc="Package tracker and analyzer for APK repositories" url="https://git.adelielinux.org/sroracle/apkvitrine" arch="noarch" options="!check" # No test suite. license="NCSA" -depends="apk-tools~2.12.0 py3-apkkit py3-flup py3-jinja2" +depends="apk-tools py3-apkkit py3-flup py3-jinja2" makedepends="" source="https://dev.sick.bike/dist/$pkgname-$pkgver.tar.gz" diff --git a/user/apr-util/APKBUILD b/user/apr-util/APKBUILD index 6dd56ef3e..7f27672b8 100644 --- a/user/apr-util/APKBUILD +++ b/user/apr-util/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=apr-util -pkgver=1.6.1 +pkgver=1.6.3 pkgrel=0 pkgdesc="The Apache Portable Runtime Utility Library" -url="http://apr.apache.org/" +url="https://apr.apache.org/" arch="all" license="Apache-2.0" depends="" @@ -12,7 +12,7 @@ depends_dev="db-dev expat-dev openldap-dev openssl-dev postgresql-dev makedepends="$depends_dev apr-dev bash chrpath openssl" subpackages="$pkgname-dev $pkgname-dbm_db $pkgname-dbd_pgsql $pkgname-dbd_sqlite3 $pkgname-ldap" -source="http://www.apache.org/dist/apr/$pkgname-$pkgver.tar.bz2" +source="https://downloads.apache.org/apr/$pkgname-$pkgver.tar.bz2" build() { ./configure \ @@ -56,4 +56,4 @@ dbd_mysql() { _mv_mod dbd_mysql "MySQL"; } dbd_sqlite3() { _mv_mod dbd_sqlite "SQLite3"; } ldap() { _mv_mod ldap "LDAP"; } -sha512sums="40eff8a37c0634f7fdddd6ca5e596b38de15fd10767a34c30bbe49c632816e8f3e1e230678034f578dd5816a94f246fb5dfdf48d644829af13bf28de3225205d apr-util-1.6.1.tar.bz2" +sha512sums="8050a481eeda7532ef3751dbd8a5aa6c48354d52904a856ef9709484f4b0cc2e022661c49ddf55ec58253db22708ee0607dfa7705d9270e8fee117ae4f06a0fe apr-util-1.6.3.tar.bz2" diff --git a/user/apr/APKBUILD b/user/apr/APKBUILD index b527b73e4..ce7322659 100644 --- a/user/apr/APKBUILD +++ b/user/apr/APKBUILD @@ -1,16 +1,16 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=apr -pkgver=1.7.0 +pkgver=1.7.4 pkgrel=0 pkgdesc="The Apache Portable Runtime" -url="http://apr.apache.org/" +url="https://apr.apache.org/" arch="all" license="Apache-2.0" depends="" depends_dev="util-linux-dev bash" makedepends="$depends_dev" subpackages="$pkgname-dev" -source="http://www.apache.org/dist/$pkgname/$pkgname-$pkgver.tar.bz2 +source="https://downloads.apache.org/apr/$pkgname-$pkgver.tar.bz2 apr-1.6.2-dont-test-dlclose.patch " @@ -42,5 +42,5 @@ dev() { mv "$subpkgdir"/usr/lib/*.so* "$pkgdir"/usr/lib/ } -sha512sums="3dc42d5caf17aab16f5c154080f020d5aed761e22db4c5f6506917f6bfd2bf8becfb40af919042bd4ce1077d5de74aa666f5edfba7f275efba78e8893c115148 apr-1.7.0.tar.bz2 +sha512sums="2342c997765ea2ca96eac158e5fd260232dba68fc41b90a79a7ba9b25c539fc217981867362090e0ebebe632289257c342275e3c5baedb698c474ef8f49a9dcd apr-1.7.4.tar.bz2 9fb931e45f30fbe68af56849dfca148c09cdf85e300af14fb259cbd43470113288680bdb21189d4cf13f5ce95f8d28666822535e017e64ace5324339ab50cbef apr-1.6.2-dont-test-dlclose.patch" diff --git a/user/aspell-dict-da/APKBUILD b/user/aspell-dict-da/APKBUILD index 9472b9b4a..1678e9a84 100644 --- a/user/aspell-dict-da/APKBUILD +++ b/user/aspell-dict-da/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=aspell-dict-da -pkgver=4.2 +pkgver=4.3 pkgrel=0 pkgdesc="Danish dictionaries for aspell" url="https://github.com/mortenivar/aspell-da" @@ -22,4 +22,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="37c38b888e4cb50c1796f084ee1978a7f37b08ff1026c16f6ef5793298733f64863484ce98a5b550a7b7632e322be90f6eb4ac66f0bd1104485ebafe2a858221 aspell-dict-da-4.2.tar.gz" +sha512sums="6cb391660f7c7dad85f0242feca284d07204dfbab348e4138e07932da8dd7446e8bccf8e3079bc40f69d73b3967da80ddd539e66eda037b8053056effd20b389 aspell-dict-da-4.3.tar.gz" diff --git a/user/aspell-dict-hi/APKBUILD b/user/aspell-dict-hi/APKBUILD index d6d6946ed..e7b114ce5 100644 --- a/user/aspell-dict-hi/APKBUILD +++ b/user/aspell-dict-hi/APKBUILD @@ -14,6 +14,11 @@ makedepends="cmd:which" source="https://ftp.gnu.org/gnu/aspell/dict/hi/aspell6-hi-$_pkgver.tar.bz2" builddir="$srcdir/aspell6-hi-$_pkgver" +prepare() { + sed -e 's/u-deva/u-deva-hi/g' -i info -i Makefile.pre -i hi.dat + mv u-deva.cmap u-deva-hi.cmap + mv u-deva.cset u-deva-hi.cset +} build() { ./configure --vars DESTDIR="$pkgdir" make diff --git a/user/aspell-dict-lv/APKBUILD b/user/aspell-dict-lv/APKBUILD index 79a6bebec..455d07b9d 100644 --- a/user/aspell-dict-lv/APKBUILD +++ b/user/aspell-dict-lv/APKBUILD @@ -1,18 +1,17 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=aspell-dict-lv -pkgver=0.5.5.1 -_pkgver=${pkgver%.*}-${pkgver#*.*.*.} +pkgver=0.9.3 pkgrel=0 pkgdesc="Latvian dictionaries for aspell" -url="http://aspell.net" +url="https://dict.dv.lv/" arch="noarch" options="!check" # No test suite. license="GPL-2.0-only" depends="aspell" makedepends="cmd:which" -source="https://ftp.gnu.org/gnu/aspell/dict/lv/aspell6-lv-$_pkgver.tar.bz2" -builddir="$srcdir/aspell6-lv-$_pkgver" +source="https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/aspell6-lv-$pkgver.tar.bz2" +builddir="$srcdir/aspell6-lv-$pkgver" build() { ./configure --vars DESTDIR="$pkgdir" @@ -23,4 +22,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="94a9c6da3fd29f17fbe5d02cd4764bf24379abef526725bb34c0726f7ff385fcb876df24b741bc66518295c3bb75c800aa6010130454c6dc1d6372d12d2eb98e aspell6-lv-0.5.5-1.tar.bz2" +sha512sums="7148c704297dd0383059968898a4330c66929fd6ec4bbfcbb9120794bcd58d5d78e6c2b9d11b57f477563189356d54aec2c2c3b4871598efec3831b8e4ba5e66 aspell6-lv-0.9.3.tar.bz2" diff --git a/user/aspell-dict-mr/APKBUILD b/user/aspell-dict-mr/APKBUILD index 2e22a34b6..3a158dfb8 100644 --- a/user/aspell-dict-mr/APKBUILD +++ b/user/aspell-dict-mr/APKBUILD @@ -14,6 +14,12 @@ makedepends="cmd:which" source="https://ftp.gnu.org/gnu/aspell/dict/mr/aspell6-mr-$_pkgver.tar.bz2" builddir="$srcdir/aspell6-mr-$_pkgver" +prepare() { + sed -e 's/u-deva/u-deva-mr/g' -i info -i Makefile.pre -i mr.dat + mv u-deva.cmap u-deva-mr.cmap + mv u-deva.cset u-deva-mr.cset +} + build() { ./configure --vars DESTDIR="$pkgdir" make diff --git a/user/aspell/APKBUILD b/user/aspell/APKBUILD index 4f9ddd742..cd2775dca 100644 --- a/user/aspell/APKBUILD +++ b/user/aspell/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Valery Kartel <valery.kartel@gmail.com> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=aspell -pkgver=0.60.8 +pkgver=0.60.8.1 pkgrel=0 pkgdesc="Libre spell checker software" url="http://aspell.net/" @@ -46,4 +46,4 @@ compat() { mv spell ispell "$subpkgdir"/usr/bin/ } -sha512sums="8ef4952c553b6234dfe777240d2d97beb13ef9201e18d56bee3b5068d13525db3625b7130d9f5122f7c529da0ccb0c70eb852a81472a7d15fb7c4ee5ba21cd29 aspell-0.60.8.tar.gz" +sha512sums="80fa9d7f5f4b8bf66388825ae28403713a2e3eda81fc31f2f452c3e2fe8349cd0fa8f0e4d0d3f8cffe215817229af25aa7be2dba358cb9cdc97e9d2834ba5ca7 aspell-0.60.8.1.tar.gz" diff --git a/user/assimp/01-rm-revision-test.patch b/user/assimp/01-rm-revision-test.patch deleted file mode 100644 index 47a2a61fe..000000000 --- a/user/assimp/01-rm-revision-test.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- assimp-5.0.0/test/unit/utVersion.cpp.orig 2019-10-27 02:51:11.128925442 +0000 -+++ assimp-5.0.0/test/unit/utVersion.cpp 2019-10-27 02:54:22.554333936 +0000 -@@ -66,9 +66,9 @@ - EXPECT_NE( aiGetCompileFlags(), 0U ); - } - --TEST_F( utVersion, aiGetVersionRevisionTest ) { -+/*TEST_F( utVersion, aiGetVersionRevisionTest ) { - EXPECT_NE( aiGetVersionRevision(), 0U ); --} -+}*/ - - TEST_F( utVersion, aiGetBranchNameTest ) { - EXPECT_NE( nullptr, aiGetBranchName() ); diff --git a/user/assimp/APKBUILD b/user/assimp/APKBUILD index 8d65667ee..da9d6cca1 100644 --- a/user/assimp/APKBUILD +++ b/user/assimp/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Russ Webber <russ@rw.id.au> # Maintainer: Zach van Rijn <me@zv.io> pkgname=assimp -pkgver=5.2.5 +pkgver=5.4.1 pkgrel=0 pkgdesc="Open Asset Import Library imports and exports 3D model formats" url="http://www.assimp.org/" @@ -11,7 +11,6 @@ depends="" makedepends="cmake minizip-dev zlib-dev" subpackages="$pkgname-dev" source="https://github.com/assimp/assimp/archive/v$pkgver/assimp-v$pkgver.tar.gz - 01-rm-revision-test.patch 05-remove-failing-x86-test.patch " @@ -33,6 +32,5 @@ package() { make -C build DESTDIR="$pkgdir" install rm -vf "$pkgdir"/usr/lib/libIrrXML.a } -sha512sums="ac0dc4243f9d1ff077966f0037187b4374075ac97e75e1a3cd6bdc1caf5f8e4d40953d9a8a316480969c09524d87daa9d3ed75e6ac6f037dd5b1c5f25fce3afb assimp-v5.2.5.tar.gz -535a80c5899a2994735e7b17b4e3fdb3ff2b53e64c09ec8fcab1dbcea2ad696fed50aeb1667a3c4e00a8a3ddf411d33ec1d36fcb256e26f02cf951f0e2c83a73 01-rm-revision-test.patch +sha512sums="980db331ca39950359db116d36968b87f5fea4b470be52960dd983e2ec232e019cae754819182b63a095a13b1d98364d64bd02ac29db1ea4f627d095a03da742 assimp-v5.4.1.tar.gz bfb321b8493b2ef8c35ab0627173d0f1754519e9bae6f6c59cc164aaf91a07d8ae382fbc92550cfab6f52502565390ba22b7478efa5bba008eec0aa075c5e7d1 05-remove-failing-x86-test.patch" diff --git a/user/atkmm/APKBUILD b/user/atkmm/APKBUILD index bc6804409..9fc24bbef 100644 --- a/user/atkmm/APKBUILD +++ b/user/atkmm/APKBUILD @@ -8,7 +8,7 @@ url="https://gnome.org" arch="all" license="LGPL-2.1+" depends="" -makedepends="atk-dev doxygen glibmm-dev graphviz meson ninja cmd:xsltproc" +makedepends="atk-dev doxygen glibmm-dev graphviz meson ninja libxslt" subpackages="$pkgname-dev $pkgname-doc" source="https://download.gnome.org/sources/atkmm/${pkgver%.*}/atkmm-$pkgver.tar.xz" diff --git a/user/awesome/APKBUILD b/user/awesome/APKBUILD index 9d58ed199..0029587b0 100644 --- a/user/awesome/APKBUILD +++ b/user/awesome/APKBUILD @@ -4,9 +4,9 @@ # Maintainer: Dan Theisen <djt@hxx.in> pkgname=awesome pkgver=4.3 -pkgrel=0 +pkgrel=1 pkgdesc="lua-configurable window manager framework" -url="http://awesome.naquadah.org/" +url="https://awesomewm.org" arch="all" options="!check" # Tests require X and D-Bus license="GPL-2.0+" @@ -18,7 +18,9 @@ makedepends="lua5.3 lua5.3-dev libxcb-dev pango-dev cairo-dev cmake gperf glib-d dbus-dev gdk-pixbuf-dev xcb-util-cursor-dev libxkbcommon-dev xcb-util-xrm-dev libexecinfo-dev xmlto" subpackages="$pkgname-doc" -source="https://github.com/awesomeWM/$pkgname-releases/raw/master/$pkgname-$pkgver.tar.xz" +source="https://github.com/awesomeWM/$pkgname-releases/raw/master/$pkgname-$pkgver.tar.xz + gcc10.patch + " build() { # Awesome does not support in-tree builds @@ -39,4 +41,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="c5ef1e8dc593e7783b895d22143154aea8f211beeda24672a7ee4ed5112b4f4284043f848a151f3d3c4f569e91308670367a4353f705b20511b36495b22fa3f5 awesome-4.3.tar.xz" +sha512sums="c5ef1e8dc593e7783b895d22143154aea8f211beeda24672a7ee4ed5112b4f4284043f848a151f3d3c4f569e91308670367a4353f705b20511b36495b22fa3f5 awesome-4.3.tar.xz +cc0aa85c42eff24ff2599673cc41058c04ec265d153ebecdb7a038d638500389da34a2063c3ce4e04b0f78f8972b9e5c3b793c46a37feeeef5505909ef8167f8 gcc10.patch" diff --git a/user/awesome/gcc10.patch b/user/awesome/gcc10.patch new file mode 100644 index 000000000..f1d0c3404 --- /dev/null +++ b/user/awesome/gcc10.patch @@ -0,0 +1,236 @@ +From d256d9055095f27a33696e0aeda4ee20ed4fb1a0 Mon Sep 17 00:00:00 2001 +From: Reiner Herrmann <reiner@reiner-h.de> +Date: Fri, 17 Apr 2020 19:25:40 +0200 +Subject: [PATCH] Move variable declarations from header to C file to fix build + with GCC 10 + +GCC 10 builds with -fno-common by default, which causes linker errors when +variables are declared in header files and included in multiple places. + +See also: https://gcc.gnu.org/gcc-10/porting_to.html +--- + common/lualib.c | 2 ++ + common/lualib.h | 2 +- + luaa.c | 2 ++ + luaa.h | 2 +- + objects/button.c | 2 ++ + objects/button.h | 2 +- + objects/client.c | 2 ++ + objects/client.h | 2 +- + objects/drawin.c | 2 ++ + objects/drawin.h | 2 +- + objects/key.c | 2 ++ + objects/key.h | 2 +- + objects/tag.c | 2 ++ + objects/tag.h | 2 +- + objects/window.c | 1 + + objects/window.h | 2 +- + 16 files changed, 23 insertions(+), 8 deletions(-) + +diff --git a/common/lualib.c b/common/lualib.c +index 312fb2d594..bb110ac716 100644 +--- a/common/lualib.c ++++ b/common/lualib.c +@@ -20,6 +20,8 @@ + #include "common/lualib.h" + #include "luaa.h" + ++lua_CFunction lualib_dofunction_on_error; ++ + void luaA_checkfunction(lua_State *L, int idx) + { + if(!lua_isfunction(L, idx)) +diff --git a/common/lualib.h b/common/lualib.h +index 8a3ef089d7..a91261843c 100644 +--- a/common/lualib.h ++++ b/common/lualib.h +@@ -28,7 +28,7 @@ + #include "common/util.h" + + /** Lua function to call on dofunction() error */ +-lua_CFunction lualib_dofunction_on_error; ++extern lua_CFunction lualib_dofunction_on_error; + + void luaA_checkfunction(lua_State *, int); + void luaA_checktable(lua_State *, int); +diff --git a/luaa.c b/luaa.c +index 419a8c2eb2..aeaba9cd1f 100644 +--- a/luaa.c ++++ b/luaa.c +@@ -91,6 +91,8 @@ extern const struct luaL_Reg awesome_mouse_meta[]; + extern const struct luaL_Reg awesome_root_methods[]; + extern const struct luaL_Reg awesome_root_meta[]; + ++signal_array_t global_signals; ++ + /** A call into the Lua code aborted with an error. + * + * This signal is used in the example configuration, @{05-awesomerc.md}, +diff --git a/luaa.h b/luaa.h +index e159258348..d26c437691 100644 +--- a/luaa.h ++++ b/luaa.h +@@ -317,7 +317,7 @@ const char *luaA_find_config(xdgHandle *, const char *, luaA_config_callback *); + bool luaA_parserc(xdgHandle *, const char *); + + /** Global signals */ +-signal_array_t global_signals; ++extern signal_array_t global_signals; + + int luaA_class_index_miss_property(lua_State *, lua_object_t *); + int luaA_class_newindex_miss_property(lua_State *, lua_object_t *); +diff --git a/objects/button.c b/objects/button.c +index 892347a928..5ffdcd4432 100644 +--- a/objects/button.c ++++ b/objects/button.c +@@ -35,6 +35,8 @@ + + #include "button.h" + ++lua_class_t button_class; ++ + /** Button object. + * + * @tfield int button The mouse button number, or 0 for any button. +diff --git a/objects/button.h b/objects/button.h +index fb8bb8da28..8f0b894305 100644 +--- a/objects/button.h ++++ b/objects/button.h +@@ -39,7 +39,7 @@ typedef struct button_t + xcb_button_t button; + } button_t; + +-lua_class_t button_class; ++extern lua_class_t button_class; + LUA_OBJECT_FUNCS(button_class, button_t, button) + ARRAY_FUNCS(button_t *, button, DO_NOTHING) + +diff --git a/objects/client.c b/objects/client.c +index 7b2d3a2022..b617a9e7a9 100644 +--- a/objects/client.c ++++ b/objects/client.c +@@ -106,6 +106,8 @@ + #include <xcb/shape.h> + #include <cairo-xcb.h> + ++lua_class_t client_class; ++ + /** Client class. + * + * This table allow to add more dynamic properties to the clients. For example, +diff --git a/objects/client.h b/objects/client.h +index 74a23131c5..387e7c2aea 100644 +--- a/objects/client.h ++++ b/objects/client.h +@@ -192,7 +192,7 @@ struct client_t + ARRAY_FUNCS(client_t *, client, DO_NOTHING) + + /** Client class */ +-lua_class_t client_class; ++extern lua_class_t client_class; + + LUA_OBJECT_FUNCS(client_class, client_t, client) + +diff --git a/objects/drawin.c b/objects/drawin.c +index 3fd1cc4350..3bbd93179c 100644 +--- a/objects/drawin.c ++++ b/objects/drawin.c +@@ -46,6 +46,8 @@ + #include <cairo-xcb.h> + #include <xcb/shape.h> + ++lua_class_t drawin_class; ++ + /** Drawin object. + * + * @field border_width Border width. +diff --git a/objects/drawin.h b/objects/drawin.h +index 31f315aac5..2f8887d944 100644 +--- a/objects/drawin.h ++++ b/objects/drawin.h +@@ -52,7 +52,7 @@ void luaA_drawin_systray_kickout(lua_State *); + + void drawin_class_setup(lua_State *); + +-lua_class_t drawin_class; ++extern lua_class_t drawin_class; + + #endif + // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 +diff --git a/objects/key.c b/objects/key.c +index c42f7446d8..365ba998cc 100644 +--- a/objects/key.c ++++ b/objects/key.c +@@ -43,6 +43,8 @@ + #include <xkbcommon/xkbcommon.h> + #include <glib.h> + ++lua_class_t key_class; ++ + /** Key object. + * + * @tfield string key The key to trigger an event. +diff --git a/objects/key.h b/objects/key.h +index 8aa07ffe3d..45f23cac79 100644 +--- a/objects/key.h ++++ b/objects/key.h +@@ -36,7 +36,7 @@ typedef struct keyb_t + xcb_keycode_t keycode; + } keyb_t; + +-lua_class_t key_class; ++extern lua_class_t key_class; + LUA_OBJECT_FUNCS(key_class, keyb_t, key) + DO_ARRAY(keyb_t *, key, DO_NOTHING) + +diff --git a/objects/tag.c b/objects/tag.c +index a0050cc2a9..1b1a135762 100644 +--- a/objects/tag.c ++++ b/objects/tag.c +@@ -203,6 +203,8 @@ + #include "ewmh.h" + #include "luaa.h" + ++lua_class_t tag_class; ++ + /** + * @signal request::select + */ +diff --git a/objects/tag.h b/objects/tag.h +index d6bb40e0d8..f830b1e2c5 100644 +--- a/objects/tag.h ++++ b/objects/tag.h +@@ -46,7 +46,7 @@ struct tag + client_array_t clients; + }; + +-lua_class_t tag_class; ++extern lua_class_t tag_class; + LUA_OBJECT_FUNCS(tag_class, tag_t, tag) + + void tag_class_setup(lua_State *); +diff --git a/objects/window.c b/objects/window.c +index 440970f3d0..371d06bcd3 100644 +--- a/objects/window.c ++++ b/objects/window.c +@@ -59,6 +59,7 @@ + #include "property.h" + #include "xwindow.h" + ++lua_class_t window_class; + LUA_CLASS_FUNCS(window, window_class) + + static xcb_window_t +diff --git a/objects/window.h b/objects/window.h +index 5386fafead..fbc5296cf5 100644 +--- a/objects/window.h ++++ b/objects/window.h +@@ -80,7 +80,7 @@ typedef struct + WINDOW_OBJECT_HEADER + } window_t; + +-lua_class_t window_class; ++extern lua_class_t window_class; + + void window_class_setup(lua_State *); + diff --git a/user/bash-completion/APKBUILD b/user/bash-completion/APKBUILD index 2862108d5..81a7355ed 100644 --- a/user/bash-completion/APKBUILD +++ b/user/bash-completion/APKBUILD @@ -15,6 +15,7 @@ makedepends="" subpackages="$pkgname-doc" source="https://github.com/scop/${pkgname}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.xz fix-tests.patch + gcc-x86-tests.patch " # Provided with util-linux and networkmanager: @@ -82,4 +83,5 @@ package() { } sha512sums="41585f730b5114d397831ba36d10d05643c6a6179e746ddc49aa1cbef61ea5525fd2f09b2e474adee14e647f99df8d5983ee48e29a59d8a30e1daf7fb1837e06 bash-completion-2.11.tar.xz -ada80cbec419a6f6b2eab648497d5aa6795883bc52a160c233c04d4479c6d543b5089745ab098c5d6d7b4a0f05d25708cf7cf9d3b565b5b70e96796b3042ca75 fix-tests.patch" +ada80cbec419a6f6b2eab648497d5aa6795883bc52a160c233c04d4479c6d543b5089745ab098c5d6d7b4a0f05d25708cf7cf9d3b565b5b70e96796b3042ca75 fix-tests.patch +fb65b60f52da373368dfb5fd8034ca6b2be4c68648d827679596908364d0e0a69ede51c2954411ad5d83cfc4ee7666eeade2b036f2b5f52c004a9dba51f328a7 gcc-x86-tests.patch" diff --git a/user/bash-completion/gcc-x86-tests.patch b/user/bash-completion/gcc-x86-tests.patch new file mode 100644 index 000000000..49d7838b0 --- /dev/null +++ b/user/bash-completion/gcc-x86-tests.patch @@ -0,0 +1,22 @@ +Now that we have a GCC that supports completions, we have a few test failures. + +* -march=native is an x86-specific flag. There is no -march on Power. + +* -mtune=generic is x86 and Arm specific; Power's equivalent is powerpc. + +Upstream-URL: https://github.com/scop/bash-completion/issues/1201 + +--- bash-completion-2.11/test/t/test_gcc.py.old 2020-07-25 06:49:49.000000000 -0500 ++++ bash-completion-2.11/test/t/test_gcc.py 2024-05-26 21:16:26.236036406 -0500 +@@ -56,9 +56,9 @@ + assert completion == "fam10" + + @pytest.mark.complete("gcc -march=") +- def test_march_native(self, completion, gcc_with_completion): ++ def test_march_native(self, completion, gcc_with_completion, gcc_x86): + assert "native" in completion + + @pytest.mark.complete("gcc -mtune=") +- def test_mtune_generic(self, completion, gcc_with_completion): ++ def test_mtune_generic(self, completion, gcc_with_completion, gcc_x86): + assert "generic" in completion diff --git a/user/bearssl/APKBUILD b/user/bearssl/APKBUILD index 868c043af..b79ca366c 100644 --- a/user/bearssl/APKBUILD +++ b/user/bearssl/APKBUILD @@ -1,8 +1,9 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=bearssl -pkgver=0.6 -pkgrel=1 +pkgver=0.6_git20230221 +_pkgcommit=79c060eea3eea1257797f15ea1608a9a9923aa6f +pkgrel=0 pkgdesc="The BearSSL implementation of the SSL/TLS protocol" url="https://bearssl.org/" arch="all" @@ -10,10 +11,12 @@ license="MIT" depends="" makedepends="" subpackages="$pkgname-dev" -source="https://bearssl.org/$pkgname-$pkgver.tar.gz +source="bearssl-$pkgver.tar.gz::https://bearssl.org/gitweb/?p=BearSSL;a=snapshot;h=$_pkgcommit;sf=tgz bearssl-brssl-dynamic.patch " +builddir="${srcdir}"/BearSSL-$(printf "%s" "${_pkgcommit}" | cut -c -7) + build() { make \ CC=gcc \ @@ -38,5 +41,5 @@ package() { ln -sf "libbearssl.so.${pkgver%%.*}" "$pkgdir/lib/libbearssl.so" } -sha512sums="f9ed25683cfc6c4abe7f1203a2b82ed101ee4c9e0f9ab60755b6a09c8d1e8e4f64d413624e7bb9c4b0033f909a2e4568a1d916cc6ce4736222900691e1f8359a bearssl-0.6.tar.gz +sha512sums="bffe5171f3ef27d8f141a43f5b485dcb659b20f1fc65d68c8f6e04f26dd99aadfc39a5943f5d6952f032533e2a709da9083c634f3dcc387b5c2ad64c1785bf6b bearssl-0.6_git20230221.tar.gz f5fe047862eb355a662ccb1b95c2ca4a870ac0f8d3f4cada5396d2f6a6635647db53fbeb038f9a7651b84d6cda32b6415ce0f69a8da92636d3b3b76578114d5c bearssl-brssl-dynamic.patch" diff --git a/user/cairomm/APKBUILD b/user/cairomm/APKBUILD index 6d318988f..b2c0df778 100644 --- a/user/cairomm/APKBUILD +++ b/user/cairomm/APKBUILD @@ -10,13 +10,13 @@ options="!check" # broken test license="LGPL-2.1+" depends="" makedepends="boost-dev cairo-dev doxygen fontconfig-dev glibmm-dev graphviz - libsigc++-dev meson ninja cmd:xsltproc" + libsigc++-dev meson ninja libxslt" subpackages="$pkgname-dev $pkgname-doc" source="https://www.cairographics.org/releases/cairomm-$pkgver.tar.xz" build() { meson \ - --prefix=/usr \ + --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ diff --git a/user/cbindgen/APKBUILD b/user/cbindgen/APKBUILD index c7e12a951..7f7b8784b 100644 --- a/user/cbindgen/APKBUILD +++ b/user/cbindgen/APKBUILD @@ -5,7 +5,7 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=cbindgen pkgver=0.24.3 -pkgrel=0 +pkgrel=1 pkgdesc="Tool to generate C bindings from Rust code" url="https://github.com/eqrion/cbindgen" arch="all" @@ -107,8 +107,7 @@ check() { package() { export CARGO_HOME="$srcdir/cargo-home" - cargo install --path . --root="$pkgdir"/usr - rm "$pkgdir"/usr/.crates.toml + cargo install --no-track --path . --root="$pkgdir"/usr } diff --git a/user/clazy/APKBUILD b/user/clazy/APKBUILD index d8e20a742..114cd4556 100644 --- a/user/clazy/APKBUILD +++ b/user/clazy/APKBUILD @@ -2,6 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=clazy pkgver=1.11 +_llvmver=14 pkgrel=0 pkgdesc="Clang compiler plugin to warn about Qt best practices" url="https://kde.org/applications/development/org.kde.clazy" @@ -9,7 +10,7 @@ arch="all" license="LGPL-2.1+" options="!check" # need 'clang-tools-extra' depends="" -makedepends="cmake clang-dev llvm14-dev" +makedepends="cmake clang-dev llvm$_llvmver-dev" subpackages="$pkgname-doc" source="https://download.kde.org/stable/clazy/$pkgver/src/clazy-$pkgver.tar.xz fix-link-fs-lib.patch @@ -26,6 +27,7 @@ build() { -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ + -DLLVM_ROOT="/usr/lib/llvm$_llvmver" \ ${CMAKE_CROSSOPTS} \ . make diff --git a/user/clearsans/APKBUILD b/user/clearsans/APKBUILD index 82c7a7291..64e815afe 100644 --- a/user/clearsans/APKBUILD +++ b/user/clearsans/APKBUILD @@ -11,7 +11,7 @@ license="Apache-2.0" depends="fontconfig" makedepends="" subpackages="" -source="https://01.org/sites/default/files/downloads/clear-sans/clearsans-$pkgver.zip" +source="https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/$pkgname-$pkgver.zip" builddir="$srcdir" package() { diff --git a/user/cunit/APKBUILD b/user/cunit/APKBUILD index 8d2c1d8e6..afe47d8fa 100644 --- a/user/cunit/APKBUILD +++ b/user/cunit/APKBUILD @@ -18,6 +18,7 @@ source="https://downloads.sourceforge.net/project/$pkgname/$_pkgname/$_pkgver/$_ builddir="$srcdir/$_pkgname-$_pkgver" prepare() { + sed -i "s/@VERSION@-@RELEASE@/$pkgver/" cunit.pc.in default_prepare ./bootstrap } diff --git a/user/cups-filters/APKBUILD b/user/cups-filters/APKBUILD index 346878925..d0e40e35e 100644 --- a/user/cups-filters/APKBUILD +++ b/user/cups-filters/APKBUILD @@ -1,16 +1,16 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=cups-filters -pkgver=1.25.13 +pkgver=1.28.16 pkgrel=0 pkgdesc="OpenPrinting CUPS filters and backends" url="https://wiki.linuxfoundation.org/openprinting/cups-filters" arch="all" license="GPL-2.0-only AND GPL-2.0+ AND GPL-3.0-only AND MIT" -depends="gnu-ghostscript poppler-utils bc ttf-freefont" +depends="gnu-ghostscript poppler-utils bc" checkdepends="ttf-dejavu" -makedepends="cups-dev libjpeg-turbo-dev poppler-dev zlib-dev libpng-dev - tiff-dev lcms2-dev freetype-dev fontconfig-dev qpdf-dev dbus-dev linux-headers - coreutils gnutls-dev python3" +makedepends="cups-dev dbus-dev fontconfig-dev freetype-dev gnutls-dev lcms2-dev + libexif-dev libjpeg-turbo-dev libpng-dev poppler-dev qpdf-dev tiff-dev + zlib-dev linux-headers coreutils python3" subpackages="$pkgname-dev $pkgname-doc $pkgname-libs" source="https://www.openprinting.org/download/cups-filters/cups-filters-$pkgver.tar.xz" @@ -59,4 +59,4 @@ libs() { mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/ } -sha512sums="4b5ef647870235436276db68f3ef1879b578807338a025100a1d43115a7330a8f506be631df9c43edb2f1ec15f9a42f15f7cdc725bb5d39612b37bae04631611 cups-filters-1.25.13.tar.xz" +sha512sums="0369f96a8ae5e33bf75c8765947d5ad7285b3532e9d9b0ded7e206798834c9ade3a2ac3f1d16e0fdd43346f2bc7852c541130e935cbb20f9c1239a53118d1239 cups-filters-1.28.16.tar.xz" diff --git a/user/dconf/APKBUILD b/user/dconf/APKBUILD index 9c496b12d..75e403ead 100644 --- a/user/dconf/APKBUILD +++ b/user/dconf/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=dconf pkgver=0.40.0 -pkgrel=0 +pkgrel=1 pkgdesc="Configuration management for the Gnome desktop environment" url="https://gnome.org" arch="all" @@ -12,7 +12,8 @@ depends="dbus" makedepends="meson ninja bash-completion dbus-dev docbook-xsl libxslt-dev python3-dev vala-dev" subpackages="$pkgname-dev $pkgname-doc" -source="https://download.gnome.org/sources/dconf/${pkgver%.*}/dconf-$pkgver.tar.xz" +source="https://download.gnome.org/sources/dconf/${pkgver%.*}/dconf-$pkgver.tar.xz + user-profile.conf" build() { meson \ @@ -28,6 +29,8 @@ check() { package() { DESTDIR="$pkgdir" ninja -C build install + install -Dm644 "$srcdir"/user-profile.conf "$pkgdir"/etc/dconf/profile/user } -sha512sums="71396d71f24f47653181482b052fdfc63795c50c373de34e2fb93e16101745daa7e81192b79a102d5389911cea34138eedf3ac32bc80562018e8a7f31963559a dconf-0.40.0.tar.xz" +sha512sums="71396d71f24f47653181482b052fdfc63795c50c373de34e2fb93e16101745daa7e81192b79a102d5389911cea34138eedf3ac32bc80562018e8a7f31963559a dconf-0.40.0.tar.xz +226ef29cced7271d503ae29580fa189994067aa174903844b1bcc619d1e33e6038e5d9d3dd6d502505fdb966489605227323cba37db2d5287b6317ad2d31480e user-profile.conf" diff --git a/user/dconf/user-profile.conf b/user/dconf/user-profile.conf new file mode 100644 index 000000000..aca0641f5 --- /dev/null +++ b/user/dconf/user-profile.conf @@ -0,0 +1,2 @@ +user-db:user +system-db:local diff --git a/user/dhcpcd/APKBUILD b/user/dhcpcd/APKBUILD index d009af3a5..7c3bb273c 100644 --- a/user/dhcpcd/APKBUILD +++ b/user/dhcpcd/APKBUILD @@ -3,7 +3,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=dhcpcd -pkgver=9.4.0 +pkgver=9.5.2 pkgrel=0 pkgdesc="RFC2131 compliant DHCP client" url="https://roy.marples.name/projects/dhcpcd" @@ -12,7 +12,7 @@ license="BSD-2-Clause" makedepends="linux-headers bsd-compat-headers eudev-dev" install="$pkgname.post-upgrade" subpackages="$pkgname-doc $pkgname-openrc" -source="https://roy.marples.name/downloads/dhcpcd/$pkgname-$pkgver.tar.xz +source="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v${pkgver}/$pkgname-$pkgver.tar.xz fix-chrony-conf-location.patch dhcpcd.initd " @@ -42,6 +42,6 @@ package() { "$pkgdir"/etc/init.d/dhcpcd } -sha512sums="e2cff86564062e8d5f9c8f48f245ffa31406494e2fafadedabc1ba9932b534cbda064783ffdd7fb337544459aba2ef7e9b49ad0973120897dc04159747e8635f dhcpcd-9.4.0.tar.xz +sha512sums="de9040b6ce6b4eb6dbf193fe3d983984a58a3bc14384bdd7ffbd2040056d72a786bc033a8bc69f7df37fbf9202b35ff3bca4196ae31ee78670eed0d779e5fd6a dhcpcd-9.5.2.tar.xz 1c19eed0f7a008ee96ea392beb327169ff8c83fc27fed20f65f05c9125f60629ebe3474c5e6a7cf4aeeea448fde4264c9b84916efacd67d47ab908c47b1fc3a5 fix-chrony-conf-location.patch e777432c2efc84285b41e63a4687f3bd543f6864218d037529ab78b5ad934de154f28f478bd9facb56628f2953aad8a932bc2eb8b1dfffa0ce2278ffcfc4d880 dhcpcd.initd" diff --git a/user/digikam/APKBUILD b/user/digikam/APKBUILD index 79c57bd29..e2b01ba40 100644 --- a/user/digikam/APKBUILD +++ b/user/digikam/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=digikam pkgver=7.6.0 -pkgrel=0 +pkgrel=1 pkgdesc="Professional photo management and digital camera import" url="https://www.digikam.org/" arch="all" @@ -22,6 +22,7 @@ makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtxmlpatterns-dev subpackages="$pkgname-doc $pkgname-lang" source="https://download.kde.org/stable/digikam/$pkgver/digiKam-$pkgver.tar.xz backport.patch + isdigit.patch " build() { @@ -51,4 +52,5 @@ package() { } sha512sums="72cae1f36249687d2c82392b7d5bcede39364372f935a2d09ba561d0b7f51b6f9a1e6a83a8974616061a8200f3d997b96fb021a16323a2f30b404cf628188216 digiKam-7.6.0.tar.xz -44f33f77b327f384764d74aade0567560f2f8cf34f53a9391da42ade06b08d9edc858c8b48cb0f2677dce8fa195e31d866585ee287a49a765d3fd2f8d5ed3c41 backport.patch" +44f33f77b327f384764d74aade0567560f2f8cf34f53a9391da42ade06b08d9edc858c8b48cb0f2677dce8fa195e31d866585ee287a49a765d3fd2f8d5ed3c41 backport.patch +691d65a1f8f48820380e98bc72059cb4fb4ac4ace96ae46a04e60f1bc778b1e01af6f7a8c0c2f9951b5597017bca830baea2e919a145b2635e3be468f8e81862 isdigit.patch" diff --git a/user/digikam/isdigit.patch b/user/digikam/isdigit.patch new file mode 100644 index 000000000..82122b5d8 --- /dev/null +++ b/user/digikam/isdigit.patch @@ -0,0 +1,12 @@ +--- digikam-7.6.0/core/libs/dngwriter/extra/dng_sdk/dng_string.cpp.old 2022-03-01 02:42:07.000000000 -0600 ++++ digikam-7.6.0/core/libs/dngwriter/extra/dng_sdk/dng_string.cpp 2024-05-28 18:24:34.849989979 -0500 +@@ -23,9 +23,7 @@ + #include <windows.h> + #endif + +-#if qiPhone || qAndroid + #include <ctype.h> // for isdigit +-#endif + + /*****************************************************************************/ + diff --git a/user/diskdev_cmds/APKBUILD b/user/diskdev_cmds/APKBUILD index afcfd2ae0..f3a60eb61 100644 --- a/user/diskdev_cmds/APKBUILD +++ b/user/diskdev_cmds/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=diskdev_cmds pkgver=332.14 -pkgrel=0 +pkgrel=1 pkgdesc="HFS+ utilities ported from OS X 10.8.4 (fsck/mkfs)" url="https://opensource.apple.com/release/mac-os-x-10411ppc.html" arch="all" @@ -29,10 +29,15 @@ package() { ln -s newfs_hfs "$pkgdir"/sbin/mkfs.hfs ln -s newfs_hfs "$pkgdir"/sbin/mkfs.hfsplus - install -D -m644 "$builddir"/fsck_hfs.tproj/fsck_hfs.8 "$pkgdir"/usr/share/man/man8/fsck_hfs.8 + install -D -m644 "$builddir"/newfs_hfs.tproj/hfsbootdata.img \ + "$pkgdir"/usr/share/hfsprogs/hfsbootdata + + install -D -m644 "$builddir"/fsck_hfs.tproj/fsck_hfs.8 \ + "$pkgdir"/usr/share/man/man8/fsck_hfs.8 ln -s fsck_hfs.8 "$pkgdir"/usr/share/man/man8/fsck.hfs.8 ln -s fsck_hfs.8 "$pkgdir"/usr/share/man/man8/fsck.hfsplus.8 - install -m644 "$builddir"/newfs_hfs.tproj/newfs_hfs.8 "$pkgdir"/usr/share/man/man8/newfs_hfs.8 + install -m644 "$builddir"/newfs_hfs.tproj/newfs_hfs.8 \ + "$pkgdir"/usr/share/man/man8/newfs_hfs.8 ln -s newfs_hfs.8 "$pkgdir"/usr/share/man/man8/mkfs.hfs.8 ln -s newfs_hfs.8 "$pkgdir"/usr/share/man/man8/mkfs.hfsplus.8 } diff --git a/user/dnsmasq/APKBUILD b/user/dnsmasq/APKBUILD new file mode 100644 index 000000000..1d5756e95 --- /dev/null +++ b/user/dnsmasq/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=dnsmasq +pkgver=2.89 +pkgrel=0 +pkgdesc="Network infrastructure (DNS, DHCP, PXE) for small networks" +url="https://dnsmasq.org/" +arch="all" +options="!check" # No test suite. +license="GPL-2.0 OR GPL-3.0" +depends="" +makedepends="libidn2-dev nettle-dev" +subpackages="$pkgname-doc $pkgname-lang $pkgname-openrc" +install="$pkgname.pre-install" +source="https://thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.xz + dnsmasq.initd + dnsmasq.confd + " + +_conf="-DNO_CONNTRACK -DNO_DBUS -DHAVE_IDN -DHAVE_LIBIDN2 -DHAVE_DNSSEC -DNO_LUA" + +build() { + make PREFIX=/usr CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" COPTS="$_conf"\ + all-i18n +} + +package() { + make PREFIX=/usr CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" COPTS="$_conf"\ + DESTDIR="$pkgdir" install-i18n +} + +openrc() { + install -D -m755 "$srcdir"/dnsmasq.initd "$subpkgdir"/etc/init.d/dnsmasq + install -D -m755 "$srcdir"/dnsmasq.confd "$subpkgdir"/etc/conf.d/dnsmasq +} + +sha512sums="4384ed5b673e10eaf6532e6eaeb5c0a6b817581433cc28c632bdcbadbfc050a0ab73bc5b73c98d708cd39515bb3f72168714b0aa5f16436cebdd18020648d428 dnsmasq-2.89.tar.xz +72ae659a62c61495dc575fa590cbf1352c4bd4f374a6e0a56fce9c641c163b882d8b8097d27605d102e47df49eb68c456baf7b11009a7bb7db98e99429bd80a6 dnsmasq.initd +9a401bfc408bf1638645c61b8ca734bea0a09ef79fb36648ec7ef21666257234254bbe6c73c82cc23aa1779ddcdda0e6baa2c041866f16dfb9c4e0ba9133eab8 dnsmasq.confd" diff --git a/user/dnsmasq/dnsmasq.confd b/user/dnsmasq/dnsmasq.confd new file mode 100644 index 000000000..0e9446307 --- /dev/null +++ b/user/dnsmasq/dnsmasq.confd @@ -0,0 +1,4 @@ +# /etc/conf.d/dnsmasq: config file for /etc/init.d/dnsmasq + +# See the dnsmasq(8) man page for possible options to put here. +DNSMASQ_OPTS="--user=dnsmasq --group=dnsmasq" diff --git a/user/dnsmasq/dnsmasq.initd b/user/dnsmasq/dnsmasq.initd new file mode 100644 index 000000000..559cb1e89 --- /dev/null +++ b/user/dnsmasq/dnsmasq.initd @@ -0,0 +1,29 @@ +#!/sbin/openrc-run +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later + +extra_started_commands="reload rotate" + +pidfile="/var/run/dnsmasq.pid" +command="/usr/sbin/dnsmasq" +command_args="-x ${pidfile} ${DNSMASQ_OPTS}" +retry="TERM/3/TERM/5" + +depend() { + provide dns + need localmount net + after bootmisc + use logger +} + +reload() { + ebegin "Reloading ${RC_SVCNAME}" + start-stop-daemon --signal HUP --pidfile "${pidfile}" + eend $? +} + +rotate() { + ebegin "Reopening ${RC_SVCNAME} log file" + start-stop-daemon --signal USR2 --pidfile "${pidfile}" + eend $? +} diff --git a/user/dnsmasq/dnsmasq.pre-install b/user/dnsmasq/dnsmasq.pre-install new file mode 100644 index 000000000..38a723e57 --- /dev/null +++ b/user/dnsmasq/dnsmasq.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +groupadd -r dnsmasq -g 200 2>/dev/null +useradd -c "dnsmasq daemon user" -s /sbin/nologin -g dnsmasq \ + -M -d /var/empty -r -u 200 dnsmasq 2>/dev/null + +exit 0 diff --git a/user/dovecot/APKBUILD b/user/dovecot/APKBUILD index f261a2df6..c7a0ebe1c 100644 --- a/user/dovecot/APKBUILD +++ b/user/dovecot/APKBUILD @@ -5,13 +5,13 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=dovecot -pkgver=2.3.20 +pkgver=2.3.21 case "$pkgver" in *.*.*.*) _pkgvermajor=${pkgver%.*.*};; *.*.*) _pkgvermajor=${pkgver%.*};; esac pkgrel=0 -_pigeonholever=0.5.20 +_pigeonholevel=0.5.20 pkgdesc="IMAP and POP3 server" url="https://www.dovecot.org/" arch="all" @@ -32,7 +32,7 @@ subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc $pkgname-lmtpd $pkgname-gssapi $pkgname-ldap $pkgname-fts-solr:_fts_solr " source="https://www.dovecot.org/releases/$_pkgvermajor/dovecot-$pkgver.tar.gz - https://pigeonhole.dovecot.org/releases/$_pkgvermajor/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholever.tar.gz + https://pigeonhole.dovecot.org/releases/$_pkgvermajor/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholevel.tar.gz fix-time64.patch skip-iconv-check.patch split-protocols.patch @@ -43,7 +43,7 @@ source="https://www.dovecot.org/releases/$_pkgvermajor/dovecot-$pkgver.tar.gz dovecot.initd CVE-2022-30550.patch " -_builddir_pigeonhole="$srcdir/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholever" +_builddir_pigeonhole="$srcdir/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholevel" # secfixes: # 2.3.19.1-r0: @@ -259,7 +259,7 @@ _submv() { done } -sha512sums="20c5a9cacf2c22d99d46400b666206e5b153c35286c205eec5df4d2ce0c88cf29ea15df81716794fd75837f6d67dfa4037096cf4bb66f524877a9a0a6bb282c8 dovecot-2.3.20.tar.gz +sha512sums="2d463c38639c3fd3d617ee5b1a4e4d0c11362339c4d4d62a5a90164a8b10bc58919545679bbf379139bdb743fdb013033abfddc1fc6401eb8099463cdc2401ca dovecot-2.3.21.tar.gz 45683e6bd678db00fc3e3c61d27a264d30d0e9aeb9ceb7ab55f94f0317d387056fa092e266062117cbe2a9dc2c90ddca03d154e78aad9c0d61fe8cf2c9187603 dovecot-2.3-pigeonhole-0.5.20.tar.gz a73e7323a582ea9504c33ea3591784af8187af8fffbcc47b69f549e33620c532d976853f0f7a9071af6ef2970d4899e2c5b30aac605dd5c933b3c6faa391bad4 fix-time64.patch fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec53ec877c08f735b42d23edb13117d7268420e001aa30967a skip-iconv-check.patch diff --git a/user/duktape/APKBUILD b/user/duktape/APKBUILD new file mode 100644 index 000000000..8d90dee87 --- /dev/null +++ b/user/duktape/APKBUILD @@ -0,0 +1,29 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=duktape +pkgver=2.7.0 +pkgrel=0 +pkgdesc="Embeddable JavaScript/ECMAScript engine" +url="https://duktape.org/" +arch="all" +options="!check" # No test suite. +license="MIT" +depends="" +makedepends="" +subpackages="$pkgname-dev" +source="https://duktape.org/duktape-$pkgver.tar.xz" + +prepare() { + default_prepare + ln -s "$builddir"/Makefile.sharedlibrary "$builddir"/Makefile +} + +build() { + make INSTALL_PREFIX=/usr LIBDIR=/lib +} + +package() { + make INSTALL_PREFIX=/usr DESTDIR="$pkgdir" LIBDIR=/lib install +} + +sha512sums="8ff5465c9c335ea08ebb0d4a06569c991b9dc4661b63e10da6b123b882e7375e82291d6b883c2644902d68071a29ccc880dae8229447cebe710c910b54496c1d duktape-2.7.0.tar.xz" diff --git a/user/elixir/APKBUILD b/user/elixir/APKBUILD index b1b699c24..40b16876e 100644 --- a/user/elixir/APKBUILD +++ b/user/elixir/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Marlus Saraiva <marlus.saraiva@gmail.com> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=elixir -pkgver=1.14.4 +pkgver=1.17.2 pkgrel=0 pkgdesc="Dynamic, functional language designed for building scalable and maintainable applications" url="https://elixir-lang.org/" @@ -25,4 +25,4 @@ package() { make DESTDIR="$pkgdir" PREFIX=/usr install } -sha512sums="c39e91e27485ce52e6d29c64f6d5c7abc50e99b8aac578642a4c085083fed23ccba095a013fee4dd3de97524bf4ec54af31478150818921b2a891f7a5840080a elixir-1.14.4.tar.gz" +sha512sums="f9d4983c3e7bd054a76bfe0dfa4aea483a4dd84ada432ae5a144167ff8d268499077704214eaaecfda84469c2f747a3594258ca95a7955bffde0c7b0f65985f2 elixir-1.17.2.tar.gz" diff --git a/user/elogind/APKBUILD b/user/elogind/APKBUILD index 6dbd2c1b6..977d4a8c8 100644 --- a/user/elogind/APKBUILD +++ b/user/elogind/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=elogind -pkgver=246.10 +pkgver=252.9 pkgrel=0 pkgdesc="Session manager system" url="https://github.com/elogind/elogind/wiki" @@ -9,9 +9,9 @@ arch="all" license="LGPL-2.1+" depends="dbus eudev utmps" makedepends="meson ninja acl-dev dbus-dev docbook-xsl eudev-dev gperf libcap-dev - libxslt-dev linux-headers linux-pam-dev m4 skalibs-libs-dev - utmps-libs-dev" -subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-openrc" + libxslt-dev linux-headers linux-pam-dev m4 py3-jinja2 skalibs-dev + utmps-dev" +subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-openrc $pkgname-dracut" install="$pkgname.post-install $pkgname.post-deinstall" source="elogind-$pkgver.tar.gz::https://github.com/elogind/elogind/archive/v$pkgver.tar.gz utmps.patch @@ -19,21 +19,28 @@ source="elogind-$pkgver.tar.gz::https://github.com/elogind/elogind/archive/v$pkg elogind.pamd elogind.confd elogind.initd + dracut_module.sh - bad-tests.patch + disable-cgroup-test.patch + elogind-252.9-musl-getdents.patch + elogind-252.9-musl-gshadow.patch + elogind-252.9-musl-lfs.patch + elogind-252.9-musl-more-strerror_r.patch + elogind-252.9-musl-statx.patch + fix-rlim-fmt.patch + fix-strerror.patch + fix-test-bus-error.patch + hostname-length.patch + signal-include.patch " build() { export LDFLAGS="-Wl,--no-as-needed -l:libutmps.so -Wl,--as-needed" # Note: We can't use openrc as our cgroup controller, # otherwise we aren't portable to s6/runit later. - meson \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ + meson setup \ -Dcgroup-controller=elogind \ -Ddefault-kill-user-processes=false \ - -Dman=auto \ build ninja -C build } @@ -49,9 +56,25 @@ package() { install -D -m644 "$srcdir"/elogind.confd "$pkgdir"/etc/conf.d/elogind } -sha512sums="9db0f068ed94ec07bab4d764ccb38840af3d05a4b7c9c539721906f5381b509cb9a3cbfb0453a978210d306136368de6162578c600d522416ef2a7ac1b9f348b elogind-246.10.tar.gz -cb8740386e44606cc894a1740556c5eb507a980fdfcaaaef05725179d4550920018ddc971f448ae02e95643da9f570531f8edf4f9aae4251639b492966436ede utmps.patch +dracut() { + install_if="$pkgname=$pkgver-r$pkgrel dracut" + install -D -m755 "$srcdir"/dracut_module.sh "$subpkgdir"/usr/lib/dracut/modules.d/99elogind/module-setup.sh +} + +sha512sums="eed620cbc2f03bfeae6a80c9a421c21d3293fa40adffb96c7e4d86508c06712041f6623fb2bac15ecbb85faca4b5674ea6423b3067840809fb27d023fd9e5ffd elogind-252.9.tar.gz +56e588f3c53060a3a175f9b9710cb804c155c7956895a118e04ebe8f6565aebbc9073d3375c3f08028dd4240c4b09a7c77c4b392c5549304054b53dbbfe70015 utmps.patch b5043d7bcbefdf00704d40670deafa0984899cc7be083e8d886a92137932a9f23c25749c106cfc07906166e57db32fe6c602cf1c54129faa7e5b04d6228b7c17 elogind.pamd 2c9047c054582824f8a3e71bb0a79a5621d7a92cb15c66bb7e7a8deb931037b6d3a331b86cdc9eb5ec4e7b2b725548a7ee6657e3c3193d81ba6422cd101a2491 elogind.confd bbc203a924abf65b45d7d4d2fc31baf2d4e23135d98c7c937f93a4fe2d4ce9dac3d4e0747c1e09101f8b2ce674d25d49e085bf2445e7cb28408d7d209f8f4491 elogind.initd -a8bcb3c13e13a974e0492721705be808c934026bb4ee92cf280143db85563cf73921354438a6d8bd372edec7e7923894e72daf88f731150c273a82d333737f25 bad-tests.patch" +d5889b2757b69a5a853341a5730affeb7db4c4129514009d11f1ca010d1ccf6cbc55393bd79e0d2dd97c5af77fff75390b1e58538370d9847256eb7f7ec865ff dracut_module.sh +44c92b056ac012b1b951191bc2f4d60ef8bc0ce2d26a9b4a568794cc51e4eb04794d953d7bb838b195667566e3c8e3acb0fc3f8404ed8ca8ac8bd034d9103269 disable-cgroup-test.patch +866f9ba22ca62866e9d7f0ea51a450b79de955df780045584eed0a2681541f04430df84075c8efe6176c7b25a4cf0ac4394146403f31b8d3f2e1c7c0bb39ef86 elogind-252.9-musl-getdents.patch +b69598c6ff56155b8f73bb4684bca6fd66011a9088e0007499617621d2f2b8b5683efabb414d1376a27f931d5372cfda845ad50e4e2efa498391529a22909108 elogind-252.9-musl-gshadow.patch +6152bd2e21cf5693d2cd8f8d83189371c702141092ad1604fc4ffc9b7dacbefcfa3ad0d35a184c938c56b1aaa8dc086814c1d65a2a77d2804ab6f5ceb3d88b54 elogind-252.9-musl-lfs.patch +d79d8fb6149299b24d6935d1e8feff194daf67318d45dd8e93087e715f08863a6152261ee2c0b5eff89b01c7189117605309be43184104ba571fbb8425e2f364 elogind-252.9-musl-more-strerror_r.patch +f7f22edfea8062c6bfaa2e7b706368ab87b026bc486a2f34627bb82cd362883279ccd9e8436208b0904b86e80b3fa977695ca79a19e1dd9e7218dbb1eb8610e0 elogind-252.9-musl-statx.patch +470314d4a5fbd352c8f9b41255e810c06f1546055b32bc67f72bed5da02d4517ff3701bc5b0e87a02209a6bf8a9ab987b6c677722f495132f3b903cda001263e fix-rlim-fmt.patch +1231fb7ff40b2bdc1d23e591a5690b2de32ef64ad8e28ffb6e912cbbbe360e72889d4b4c2c0dc1a83c6df2cdccbf86697e89757dc5d7e8290cf8b2a33cfbbef9 fix-strerror.patch +777827470671623558db658bab1172f83af21691fcc87f69a7bdda0c0cec9e11c697dfef1ee01ad689552cd20924782964e3faa0e3b103dead49db638b27bf10 fix-test-bus-error.patch +112e35c073faebe66f2cbe3657e12c2e2b4ab10d8cf58a19cd45567b7cb2479ed6eba48c34dcf23494b1957e8dfcc7e475c2c21ab101ff8324d2fa9ba2527a7c hostname-length.patch +56282dc312f20256f803d954edeef1c9f380256c16a140490225a58c04cefc0c3306d0d1d641afeeeea2a219b2fcb2931263166f978fab28fb48d77e2f7c315a signal-include.patch" diff --git a/user/elogind/disable-cgroup-test.patch b/user/elogind/disable-cgroup-test.patch new file mode 100644 index 000000000..3b4f5f300 --- /dev/null +++ b/user/elogind/disable-cgroup-test.patch @@ -0,0 +1,13 @@ +--- elogind-252.9/src/test/meson.build.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/test/meson.build 2023-11-27 06:42:49.671974662 -0600 +@@ -564,7 +564,9 @@ + #endif // 0 + [files('test-daemon.c')], + +- [files('test-cgroup.c')], ++#if 0 ++# [files('test-cgroup.c')], ++#endif // 0 + + #if 0 /// UNNEEDED in elogind + # [files('test-cgroup-cpu.c'), diff --git a/user/elogind/dracut_module.sh b/user/elogind/dracut_module.sh new file mode 100755 index 000000000..c65bcadec --- /dev/null +++ b/user/elogind/dracut_module.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# called by dracut +check() { + require_binaries /lib/elogind/elogind-uaccess-command +} + +# called by dracut +depends() { + echo base + return 0 +} + +# called by dracut +install() { + inst /lib/elogind/elogind-uaccess-command +} + diff --git a/user/elogind/elogind-252.9-musl-getdents.patch b/user/elogind/elogind-252.9-musl-getdents.patch new file mode 100644 index 000000000..7b81dc222 --- /dev/null +++ b/user/elogind/elogind-252.9-musl-getdents.patch @@ -0,0 +1,37 @@ +Not strictly required until musl 1.2.4, but doesn't hurt. + +From dab02796780f00d689cc1c7a0ba81abe7c5f28d0 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 21 Jan 2022 15:15:11 -0800 +Subject: [PATCH] pass correct parameters to getdents64 + +Fixes +../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types] + n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types] + n = getdents64(fd, &buffer, sizeof(buffer)); + ^~~~~~~ + +Upstream-Status: Inappropriate [musl specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> + +--- + src/basic/recurse-dir.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c +index d16ca98..31f6154 100644 +--- a/src/basic/recurse-dir.c ++++ b/src/basic/recurse-dir.c +@@ -54,7 +54,7 @@ int readdir_all(int dir_fd, + bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX); + assert(bs > de->buffer_size); + +- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size); ++ n = getdents(dir_fd, (struct dirent*)((uint8_t*) de->buffer + de->buffer_size), bs - de->buffer_size); + if (n < 0) + return -errno; + if (n == 0) diff --git a/user/elogind/elogind-252.9-musl-gshadow.patch b/user/elogind/elogind-252.9-musl-gshadow.patch new file mode 100644 index 000000000..95613cb66 --- /dev/null +++ b/user/elogind/elogind-252.9-musl-gshadow.patch @@ -0,0 +1,14 @@ +just like the other part it's already patched in, not actually used +-- +diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h +index 7a41be7..3a970a6 100644 +--- a/src/shared/user-record-nss.h ++++ b/src/shared/user-record-nss.h +@@ -2,7 +2,6 @@ + #pragma once + + #include <grp.h> +-#include <gshadow.h> + #include <pwd.h> + #include <shadow.h> + diff --git a/user/elogind/elogind-252.9-musl-lfs.patch b/user/elogind/elogind-252.9-musl-lfs.patch new file mode 100644 index 000000000..50c1bfa00 --- /dev/null +++ b/user/elogind/elogind-252.9-musl-lfs.patch @@ -0,0 +1,52 @@ +Again, only required for musl 1.2.4 but let's not make it harder on ourselves. +Upstream-URL: https://github.com/systemd/systemd/pull/27599 + +From d096e05c625ea825eb4d781216ded717b7f71cca Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Wed, 10 May 2023 01:47:13 +0100 +Subject: [PATCH] dirent: conditionalize dirent assert based on dirent64 + existence + +>=musl-1.2.4 doesn't define dirent64 and its LFS friends as its "native" +functions are already LFS-aware. + +Check for dirent64 in meson.build and only assert if it exists. + +Bug: https://bugs.gentoo.org/905900 +Closes: https://github.com/systemd/systemd/pull/25809 +--- a/meson.build ++++ b/meson.build +@@ -599,6 +599,7 @@ decl_headers = ''' + # define _GNU_SOURCE 1 + # endif // _GNU_SOURCE + #endif // 1 ++#include <dirent.h> + #include <uchar.h> + #include <sys/mount.h> + #include <sys/stat.h> +@@ -608,6 +609,7 @@ foreach decl : ['char16_t', + 'char32_t', + 'struct mount_attr', + 'struct statx', ++ 'struct dirent64', + ] + + # We get -1 if the size cannot be determined +--- a/src/basic/dirent-util.h ++++ b/src/basic/dirent-util.h +@@ -39,6 +39,7 @@ struct dirent *readdir_no_dot(DIR *dirp); + /* Only if 64bit off_t is enabled struct dirent + struct dirent64 are actually the same. We require this, and + * we want them to be interchangeable to make getdents64() work, hence verify that. */ + assert_cc(_FILE_OFFSET_BITS == 64); ++#if HAVE_STRUCT_DIRENT64 + assert_cc(sizeof(struct dirent) == sizeof(struct dirent64)); + assert_cc(offsetof(struct dirent, d_ino) == offsetof(struct dirent64, d_ino)); + assert_cc(sizeof_field(struct dirent, d_ino) == sizeof_field(struct dirent64, d_ino)); +@@ -50,6 +51,7 @@ assert_cc(offsetof(struct dirent, d_type) == offsetof(struct dirent64, d_type)); + assert_cc(sizeof_field(struct dirent, d_type) == sizeof_field(struct dirent64, d_type)); + assert_cc(offsetof(struct dirent, d_name) == offsetof(struct dirent64, d_name)); + assert_cc(sizeof_field(struct dirent, d_name) == sizeof_field(struct dirent64, d_name)); ++#endif + + #define FOREACH_DIRENT_IN_BUFFER(de, buf, sz) \ + for (void *_end = (uint8_t*) ({ (de) = (buf); }) + (sz); \ diff --git a/user/elogind/elogind-252.9-musl-more-strerror_r.patch b/user/elogind/elogind-252.9-musl-more-strerror_r.patch new file mode 100644 index 000000000..3cfafae4c --- /dev/null +++ b/user/elogind/elogind-252.9-musl-more-strerror_r.patch @@ -0,0 +1,44 @@ +Patch-Source: https://github.com/chimera-linux/cports/blob/6ff62886181bc1325a1431157a80993497fd561b/main/udev/patches/0001-errno-util-Make-STRERROR-portable-for-musl.patch +-- +From f66b5c802ce0a3310f5580cfc1b02446f8087568 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 23 Jan 2023 23:39:46 -0800 +Subject: [PATCH] errno-util: Make STRERROR portable for musl + +Sadly, systemd has decided to use yet another GNU extention in a macro +lets make this such that we can use XSI compliant strerror_r() for +non-glibc hosts + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/basic/errno-util.h | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h +index 091f99c590..eb5c1f9961 100644 +--- a/src/basic/errno-util.h ++++ b/src/basic/errno-util.h +@@ -14,8 +14,16 @@ + * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks + * + * Note that we use the GNU variant of strerror_r() here. */ +-#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN) +- ++static inline const char * STRERROR(int errnum); ++ ++static inline const char * STRERROR(int errnum) { ++#ifdef __GLIBC__ ++ return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN); ++#else ++ static __thread char buf[ERRNO_BUF_LEN]; ++ return strerror_r(abs(errnum), buf, ERRNO_BUF_LEN) ? "unknown error" : buf; ++#endif ++} + /* A helper to print an error message or message for functions that return 0 on EOF. + * Note that we can't use ({ … }) to define a temporary variable, so errnum is + * evaluated twice. */ +-- +2.39.1 + diff --git a/user/elogind/elogind-252.9-musl-statx.patch b/user/elogind/elogind-252.9-musl-statx.patch new file mode 100644 index 000000000..60a894216 --- /dev/null +++ b/user/elogind/elogind-252.9-musl-statx.patch @@ -0,0 +1,26 @@ +diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c +index ab8744b..59ff466 100644 +--- a/src/basic/mountpoint-util.c ++++ b/src/basic/mountpoint-util.c +@@ -11,7 +11,7 @@ + //#include "filesystems.h" + #include "fs-util.h" + #include "missing_stat.h" +-//#include "missing_syscall.h" ++#include "missing_syscall.h" + //#include "mkdir.h" + #include "mountpoint-util.h" + #include "nulstr-util.h" +diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c +index d8e0693..f8324ed 100644 +--- a/src/basic/stat-util.c ++++ b/src/basic/stat-util.c +@@ -18,7 +18,7 @@ + #include "macro.h" + //#include "missing_fs.h" + #include "missing_magic.h" +-//#include "missing_syscall.h" ++#include "missing_syscall.h" + #include "nulstr-util.h" + //#include "parse-util.h" + #include "stat-util.h" diff --git a/user/elogind/fix-rlim-fmt.patch b/user/elogind/fix-rlim-fmt.patch new file mode 100644 index 000000000..cfb943e48 --- /dev/null +++ b/user/elogind/fix-rlim-fmt.patch @@ -0,0 +1,40 @@ +%ju is uintmax_t which is unsigned long, not unsigned long long. + +Using the glibc code gives the same error - PRIu64 is unsigned long, not ll. + +Upstream-URL: https://github.com/elogind/elogind/issues/269 + +--- elogind-252.9/src/basic/format-util.h.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/basic/format-util.h 2023-11-27 05:11:43.903588357 -0600 +@@ -34,7 +34,7 @@ + # error Unknown timex member size + #endif + +-#ifdef __GLIBC__ /// Go directly for %ju in elogind if not. Enhances musl-libc compatibility. ++#ifdef __GLIBC__ /// Go directly for %llu in elogind if not. Enhances musl-libc compatibility. + #if SIZEOF_RLIM_T == 8 + # define RLIM_FMT "%" PRIu64 + #elif SIZEOF_RLIM_T == 4 +@@ -43,7 +43,7 @@ + # error Unknown rlim_t size + #endif + #else // __GLIBC__ +-#define RLIM_FMT "%ju" ++#define RLIM_FMT "%llu" + #endif // __GLIBC__ + + #if SIZEOF_DEV_T == 8 +--- elogind-252.9/src/basic/rlimit-util.c.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/basic/rlimit-util.c 2023-11-27 05:21:02.633167487 -0600 +@@ -407,11 +407,7 @@ + + rl.rlim_cur = FD_SETSIZE; + if (setrlimit(RLIMIT_NOFILE, &rl) < 0) +-#ifdef __GLIBC__ /// To be compatible with musl-libc, elogind uses an (uintmax_t) cast. + return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur); +-#else // __GLIBC__ +- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur); +-#endif // __GLIBC__ + + return 1; + } diff --git a/user/elogind/fix-strerror.patch b/user/elogind/fix-strerror.patch new file mode 100644 index 000000000..a685651b9 --- /dev/null +++ b/user/elogind/fix-strerror.patch @@ -0,0 +1,13 @@ +Causes build errors with the semicolon. + +--- elogind-252.9/src/basic/musl_missing.h.old 2023-11-27 05:10:27.761821031 -0600 ++++ elogind-252.9/src/basic/musl_missing.h 2023-11-27 05:10:51.839218582 -0600 +@@ -26,7 +26,7 @@ + #include <unistd.h> + #include <pthread.h> /* for pthread_atfork */ + +-#define strerror_r(e, m, k) (strerror_r(e, m, k) < 0 ? strdup("strerror_r() failed") : m); ++#define strerror_r(e, m, k) (strerror_r(e, m, k) < 0 ? strdup("strerror_r() failed") : m) + + /* + * Possibly TODO according to http://man7.org/linux/man-pages/man3/getenv.3.html diff --git a/user/elogind/fix-test-bus-error.patch b/user/elogind/fix-test-bus-error.patch new file mode 100644 index 000000000..47654ea8b --- /dev/null +++ b/user/elogind/fix-test-bus-error.patch @@ -0,0 +1,12 @@ +I wasn't able to immediately figure out why this assertion failed. + +--- elogind-252.9/src/libelogind/sd-bus/test-bus-error.c.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/libelogind/sd-bus/test-bus-error.c 2023-11-27 06:53:53.170165648 -0600 +@@ -234,7 +234,6 @@ + errno = EACCES; + assert_se(asprintf(&str, "%m") >= 0); + assert_se(streq(error.message, str)); +- assert_se(error._need_free == 0); + + str = mfree(str); + sd_bus_error_free(&error); diff --git a/user/elogind/hostname-length.patch b/user/elogind/hostname-length.patch new file mode 100644 index 000000000..738f3573d --- /dev/null +++ b/user/elogind/hostname-length.patch @@ -0,0 +1,16 @@ +musl defines HOST_NAME_MAX to 255, even though a nodename in Linux can only +be 64 characters in length. Use the literal value instead of <limits.h>. + +--- elogind-252.9/src/basic/hostname-util.c.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/basic/hostname-util.c 2023-11-27 06:45:02.637584076 -0600 +@@ -128,8 +128,8 @@ + if (hyphen) + return false; + +- if (p-s > HOST_NAME_MAX) /* Note that HOST_NAME_MAX is 64 on Linux, but DNS allows domain names up to +- * 255 characters */ ++ if (p-s > 64) /* Note that HOST_NAME_MAX is 64 on Linux, but DNS allows domain names up to ++ * 255 characters */ + return false; + + return true; diff --git a/user/elogind/signal-include.patch b/user/elogind/signal-include.patch new file mode 100644 index 000000000..18485e07a --- /dev/null +++ b/user/elogind/signal-include.patch @@ -0,0 +1,13 @@ +We don't need to upstream this, because systemd 253 removes all signal stuff +from async.c. + +--- elogind-252.9/src/basic/async.c.old 2023-05-15 06:35:29.000000000 -0500 ++++ elogind-252.9/src/basic/async.c 2023-11-27 04:39:38.561566175 -0600 +@@ -2,6 +2,7 @@ + + #include <errno.h> + #include <pthread.h> ++#include <signal.h> + #include <stddef.h> + #include <unistd.h> + diff --git a/user/elogind/utmps.patch b/user/elogind/utmps.patch index 16afdd307..06889a587 100644 --- a/user/elogind/utmps.patch +++ b/user/elogind/utmps.patch @@ -12,20 +12,18 @@ diff -rNU3 elogind-246.10.old/src/basic/user-util.c elogind-246.10/src/basic/use diff -rNU3 elogind-246.10.old/src/login/logind-core.c elogind-246.10/src/login/logind-core.c --- elogind-246.10.old/src/login/logind-core.c 2021-03-02 08:29:23.000000000 +0000 +++ elogind-246.10/src/login/logind-core.c 2023-08-30 23:54:42.910231156 +0000 -@@ -780,8 +780,8 @@ +@@ -759,8 +759,6 @@ assert(m); - if (utmpxname(_PATH_UTMPX) < 0) - return log_error_errno(errno, "Failed to set utmp path to " _PATH_UTMPX ": %m"); -+// if (utmpxname(_PATH_UTMPX) < 0) -+// return log_error_errno(errno, "Failed to set utmp path to " _PATH_UTMPX ": %m"); utmpx = utxent_start(); diff -rNU3 elogind-246.10.old/src/shared/musl_missing.h elogind-246.10/src/shared/musl_missing.h --- elogind-246.10.old/src/shared/musl_missing.h 2021-03-02 08:29:23.000000000 +0000 -+++ elogind-246.10/src/shared/musl_missing.h 2023-08-30 23:58:42.010232710 +0000 ++++ elogind-246.10/src/basic/musl_missing.h 2023-08-30 23:58:42.010232710 +0000 @@ -76,14 +76,13 @@ /* Make musl utmp/wtmp stubs visible if needed. */ #if ENABLE_UTMP @@ -50,25 +48,21 @@ diff -rNU3 elogind-246.10.old/src/shared/musl_missing.h elogind-246.10/src/share diff -rNU3 elogind-246.10.old/src/shared/utmp-wtmp.c elogind-246.10/src/shared/utmp-wtmp.c --- elogind-246.10.old/src/shared/utmp-wtmp.c 2021-03-02 08:29:23.000000000 +0000 +++ elogind-246.10/src/shared/utmp-wtmp.c 2023-08-30 23:53:07.330230534 +0000 -@@ -55,8 +55,8 @@ +@@ -47,8 +47,6 @@ return 0; } - if (utmpxname(_PATH_UTMPX) < 0) - return -errno; -+// if (utmpxname(_PATH_UTMPX) < 0) -+// return -errno; utmpx = utxent_start(); -@@ -105,8 +105,8 @@ +@@ -97,8 +95,6 @@ * each entry type resp. user; i.e. basically a key/value * table. */ - if (utmpxname(_PATH_UTMPX) < 0) - return -errno; -+// if (utmpxname(_PATH_UTMPX) < 0) -+// return -errno; utmpx = utxent_start(); diff --git a/user/emacs/APKBUILD b/user/emacs/APKBUILD index 1b4107db3..8298e4f3b 100644 --- a/user/emacs/APKBUILD +++ b/user/emacs/APKBUILD @@ -95,6 +95,8 @@ doc() { "$subpkgdir"/usr/share/emacs \ "$subpkgdir"/usr/share/icons \ "$subpkgdir"/var + # remove autogenerated info dir file + rm "$subpkgdir"/usr/share/info/dir } _subpackage() { diff --git a/user/erl-rebar3/APKBUILD b/user/erl-rebar3/APKBUILD index 09b94cc5b..437ca4783 100644 --- a/user/erl-rebar3/APKBUILD +++ b/user/erl-rebar3/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Alyx Wolcott <alyx@leuhta.com> # Maintainer: Alyx Wolcott <alyx@leuhta.com> pkgname=erl-rebar3 -pkgver=3.18.0 +pkgver=3.23.0 pkgrel=0 pkgdesc="Erlang build tool" url="https://www.rebar3.org/" @@ -30,4 +30,4 @@ package() { install -m644 ./manpages/rebar3.1.gz $pkgdir/usr/share/man/man1/ } -sha512sums="4fcaa1867fba7462df0b9a64fa442f4a887e83530635fdcd19f4b5dcee14ace3e7403c27f35e5e6055fb6bf89c98a91a3ff1e2036ab6e67e3de028f91233e4ed erl-rebar3-3.18.0.tar.gz" +sha512sums="4da1db8ed830c59fb322c1a652c2efe28d54e09ad74d12a87381ea7a7f13965b91815f383221831fbc14e6deed1a75db1039164f7df128a977d5b64048540cc3 erl-rebar3-3.23.0.tar.gz" diff --git a/user/erlang/APKBUILD b/user/erlang/APKBUILD index a314041cf..31778994d 100644 --- a/user/erlang/APKBUILD +++ b/user/erlang/APKBUILD @@ -1,21 +1,20 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=erlang -pkgver=24.3.3 +pkgver=27.0 pkgrel=0 pkgdesc="Soft real-time system programming language" url="https://www.erlang.org/" arch="all" license="Apache-2.0" depends="" -makedepends="autoconf automake flex libxml2-utils libxslt-dev m4 ncurses-dev - openssl-dev perl unixodbc-dev" +makedepends="flex libxml2-utils libxslt-dev ncurses-dev openssl-dev perl + unixodbc-dev" subpackages="$pkgname-dev" source="erlang-$pkgver.tar.gz::https://github.com/erlang/otp/archive/OTP-$pkgver.tar.gz" builddir="$srcdir/otp-OTP-$pkgver" build() { - ./otp_build autoconf ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -36,8 +35,7 @@ check() { make release_tests for _header in erl_fixed_size_int_types.h \ - ${CHOST}/erl_int_sizes_config.h \ - erl_memory_trace_parser.h; do + ${CHOST}/erl_int_sizes_config.h; do cp erts/include/$_header erts/emulator/beam/ done cd release/tests/test_server @@ -48,4 +46,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5e8ce0ebd50c1c67ca29ce9405fc18f5461793b20a1732418bc8fac404078044deb72526682aab92ee3e737bc9dc9e94e6be162a088e2cb7cc68c14b1d76454e erlang-24.3.3.tar.gz" +sha512sums="16945c50c09caad9aac6808470ea2a0e282713f23e54cd4ad60510b114811b5deac427acb36cc8049443b4e3c3302c40b02c696cf3f2028f8bd3e836c8c48ea9 erlang-27.0.tar.gz" diff --git a/user/faad2/APKBUILD b/user/faad2/APKBUILD index 7f9d9a57a..aec7e58ac 100644 --- a/user/faad2/APKBUILD +++ b/user/faad2/APKBUILD @@ -1,18 +1,20 @@ -# Maintainer: +# Maintainer: pkgname=faad2 -pkgver=2.10.0 -_pkgver="$(printf '%s' "$pkgver" | tr . _)" -pkgrel=0 +pkgver=2.10.1_git20230904 +pkgrel=1 pkgdesc="ISO AAC audio decoder" url="https://www.audiocoding.com/" arch="all" options="!check" # No test suite. license="GPL-2.0+" depends="" -makedepends="autoconf automake libtool" +makedepends="cmake" subpackages="$pkgname-dev $pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/knik0/faad2/archive/$_pkgver.tar.gz" -builddir="$srcdir/$pkgname-$_pkgver" +#source="$pkgname-$pkgver.tar.gz::https://github.com/knik0/faad2/archive/$pkgver.tar.gz" +source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.gz + fix-x86-lrintf.patch + fix-ensure-libraries-versioned.patch + " # secfixes: # 2.8.8-r1: @@ -35,24 +37,28 @@ builddir="$srcdir/$pkgname-$_pkgver" # - CVE-2018-20361 # - CVE-2018-20362 -prepare() { - default_prepare - ./bootstrap -} - build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --localstatedir=/var - make + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -Bbuild + make -C build } package() { - make DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" -C build install +} + +doc() { + default_doc + mkdir -p "$subpkgdir"/usr/share/doc + cp -r "$builddir"/docs \ + "$subpkgdir"/usr/share/doc/$pkgname } -sha512sums="92c8b5e79f85b7a7caac9e7954959c26d74ef148a658dcb37e2c1b303fc2fcc5a0d12f21e7bd476870498109bdd03916a56c13f578186a69d6eceb103222e771 faad2-2.10.0.tar.gz" +sha512sums="5ec65a70ebbb5dbb5e0bffa47499f8bb9436c28ce9a8947e9cede92bbb2441117bac01216989888956e245589c9db572dad17cc47d47ae908709e4e57a7f84b9 faad2-2.10.1_git20230904.tar.gz +2b83d5bf4d4136a4d53536cfd2f4d62174e3660f4a7f39bcedca516ae26a98f3b573db91fb689b20aa26a0d0968745944927c7898ea79bc7a5321971fe92a481 fix-x86-lrintf.patch +b30727cd1b422a820b30747b3374815b5568a0554945d344aaa4e95502add5d956fed0d1aea451bd97ef704272c8c65c7ec33afe7cbea4b642f7991a135cdc93 fix-ensure-libraries-versioned.patch" diff --git a/user/faad2/fix-ensure-libraries-versioned.patch b/user/faad2/fix-ensure-libraries-versioned.patch new file mode 100644 index 000000000..ae0150f46 --- /dev/null +++ b/user/faad2/fix-ensure-libraries-versioned.patch @@ -0,0 +1,50 @@ +From 3a593d3efc5cf1db5f4c8914768ea1ea70cbcde5 Mon Sep 17 00:00:00 2001 +From: Eugene Kliuchnikov <eustas.ru@gmail.com> +Date: Fri, 13 Oct 2023 08:52:31 +0200 +Subject: [PATCH] Add vesion to linked libraries (#181) + +--- + CMakeLists.txt | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 31270436..6b4d4d84 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -34,11 +34,20 @@ endif() + + set(CAPTURE_PACKAGE_VERSION "[ \\t]*\"PACKAGE_VERSION\"[ \\t]*:[ \\t]\"(.*)\"") + file(STRINGS "properties.json" _faad_version_line REGEX "${CAPTURE_PACKAGE_VERSION}") +-message("${_faad_version_line}") + string(REGEX REPLACE "${CAPTURE_PACKAGE_VERSION}" "\\1" FAAD_VERSION "${_faad_version_line}") ++string(REPLACE "\." ";" FAAD_VERSION_PARTS ${FAAD_VERSION}) ++list(GET FAAD_VERSION_PARTS 0 FAAD_VERSION_MAJOR) ++list(GET FAAD_VERSION_PARTS 1 FAAD_VERSION_MINOR) ++list(GET FAAD_VERSION_PARTS 2 FAAD_VERSION_PATCH) ++# Semantic -> library version ++# NB(eustas): likely that will be always OK; if not, we could read "overrides" from properties.json ++math(EXPR FAAD_ABI_VERSION_CURRENT "${FAAD_VERSION_MAJOR} + ${FAAD_VERSION_MINOR}") ++set(FAAD_ABI_VERSION_AGE "${FAAD_VERSION_MINOR}") ++set(FAAD_ABI_VERSION_REVISION "${FAAD_VERSION_PATCH}") ++set(FAAD_ABI_COMPATIBILITY "${FAAD_VERSION_MAJOR}") + + message(STATUS "FAAD PACKAGE_VERSION: ${FAAD_VERSION}") +-mark_as_advanced(FAAD_VERSION) ++mark_as_advanced(FAAD_VERSION FAAD_ABI_COMPATIBILITY FAAD_ABI_VERSION_AGE FAAD_ABI_VERSION_REVISION) + + file(READ include/faad.h.in FAAD_H_SRC) + string(REGEX REPLACE "@VERSION@" "${FAAD_VERSION}" FAAD_H_SRC ${FAAD_H_SRC}) +@@ -187,6 +196,13 @@ endfunction() + + transform_pc_file("libfaad/faad2.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/faad2.pc" "${FAAD_VERSION}") + ++foreach(LIB faad faad_drm faad_fixed faad_drm_fixed) ++ set_target_properties(${LIB} PROPERTIES ++ VERSION "${FAAD_ABI_COMPATIBILITY}.${FAAD_ABI_VERSION_AGE}.${FAAD_ABI_VERSION_REVISION}" ++ SOVERSION "${FAAD_ABI_COMPATIBILITY}" ++ ) ++endforeach() ++ + # CLI + + add_executable(faad_cli ${FAAD_SOURCES}) diff --git a/user/faad2/fix-x86-lrintf.patch b/user/faad2/fix-x86-lrintf.patch new file mode 100644 index 000000000..b0038b756 --- /dev/null +++ b/user/faad2/fix-x86-lrintf.patch @@ -0,0 +1,11 @@ +diff -ur a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2023-10-24 21:00:08.223699531 +0000 ++++ b/CMakeLists.txt 2023-10-24 21:00:30.200223679 +0000 +@@ -60,6 +60,7 @@ + set(FAAD_DEFINES + APPLY_DRC + HAVE_INTTYPES_H=1 ++ HAVE_LRINTF=1 + HAVE_MEMCPY=1 + HAVE_STRING_H=1 + HAVE_STRINGS_H=1 diff --git a/user/fastfetch/APKBUILD b/user/fastfetch/APKBUILD new file mode 100644 index 000000000..5bbe3e20c --- /dev/null +++ b/user/fastfetch/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: Horst G. Burkhardt <horst@adelielinux.org> +# Maintainer: Horst G. Burkhardt <horst@adelielinux.org> +pkgname=fastfetch +pkgver=2.5.0 +pkgrel=0 +pkgdesc="Tool for fetching and presenting system information" +url="https://github.com/fastfetch-cli/fastfetch" +arch="all" +options="!check" # No separate test suite available. +subpackages="$pkgname-doc" +license="MIT" +depends="" +makedepends="cmake dbus-dev dconf-dev libdrm-dev libxcb-dev libxrandr-dev + mesa-dev networkmanager-dev pciutils-dev pulseaudio-dev sqlite-dev + utmps-dev wayland-dev xfconf-dev zlib-dev" +source="$pkgname-$pkgver.tar.gz::https://github.com/fastfetch-cli/fastfetch/archive/refs/tags/$pkgver.tar.gz" + +build() { + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_DBUS=ON \ + -DENABLE_DCONF=ON \ + -DENABLE_DRM=ON \ + -DENABLE_LIBNM=ON \ + -DENABLE_LIBPCI=ON \ + -DENABLE_OSMESA=ON \ + -DENABLE_PULSE=ON \ + -DENABLE_WAYLAND=ON \ + -DENABLE_X11=ON \ + -DENABLE_XCB=ON \ + -DENABLE_XFCONF=ON \ + -DENABLE_XRANDR=ON \ + -DENABLE_ZLIB=ON + make VERBOSE=1 +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="a69f4e839acf8897a9cd8f6c017a4d7657a8dc0b3c58e645c88fc8e47e0a7bd3411d1a3e1e916628a948cb7e1688a200f7ac1eabd090f5eb42ce4b0030e342b4 fastfetch-2.5.0.tar.gz" diff --git a/user/firefox-esr/APKBUILD b/user/firefox-esr/APKBUILD index c4b881eaf..82c29ffd7 100644 --- a/user/firefox-esr/APKBUILD +++ b/user/firefox-esr/APKBUILD @@ -2,10 +2,11 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=firefox-esr pkgver=91.13.0 -pkgrel=3 +_llvmver=14 +pkgrel=4 pkgdesc="Firefox web browser (extended support release)" url="https://www.mozilla.org/firefox/" -arch="all !ppc !armv7" # #837, #1015 +arch="all !ppc" # #837 options="!check" # Tests disabled license="MPL-2.0" depends="" @@ -14,7 +15,7 @@ depends="" # system-libs # actual deps makedepends=" - autoconf2.13 cargo cbindgen clang llvm14-dev node ncurses-dev + autoconf2.13 cargo cbindgen clang llvm${_llvmver}-dev node ncurses-dev perl python3 rust rust-std cmd:which ncurses-dev openssl-dev @@ -33,6 +34,7 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$_ffxver/source/firefox-$_f bad-google-code.patch BTS-1074.patch + disable-arm-flac.patch fix-mutex-build.patch fix-seccomp-bpf.patch gcc89074.patch @@ -49,6 +51,7 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$_ffxver/source/firefox-$_f stackwalk-x86-ppc.patch triplet-vendor-support.patch webrender.patch + gcc13.patch firefox.desktop firefox-safe.desktop @@ -64,13 +67,13 @@ ldpath="$_mozappdir" prepare() { default_prepare cp "$srcdir"/mozconfig "$builddir"/mozconfig - echo "ac_add_options --enable-optimize=\"$CFLAGS\"" >> "$builddir"/mozconfig echo "ac_add_options --host=\"$CHOST\"" >> "$builddir"/mozconfig echo "ac_add_options --target=\"$CTARGET\"" >> "$builddir"/mozconfig echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$JOBS\"" >> "$builddir"/mozconfig + # arch-specific configuration case "$CARCH" in - pmmx|x86*) + pmmx|x86*|arm*) echo "ac_add_options --disable-elf-hack" >> "$builddir"/mozconfig ;; ppc) @@ -80,23 +83,26 @@ prepare() { echo "ac_add_options --disable-startupcache" >> "$builddir"/mozconfig ;; esac + + # 32-bit memory ceiling, #1012, #1057 + case "${CARCH}" in + pmmx|x86|ppc|i528|m68k|mips32*|arm*) + echo "ac_add_options --disable-debug-symbols" >> "$builddir"/mozconfig + echo "ac_add_options --enable-strip" >> "$builddir"/mozconfig + CFLAGS="${CFLAGS} -g0"; + ;; + esac + + echo "ac_add_options --enable-optimize=\"$CFLAGS\"" >> "$builddir"/mozconfig } build() { + export PATH="/usr/lib/llvm${_llvmver}/bin:${PATH}" #1230 export SHELL=/bin/sh export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export USE_SHORT_LIBNAME=1 export MACH_USE_SYSTEM_PYTHON=1 - # gcc 6 - export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2" - - case "${CARCH}" in - armv7) - # 32-bit memory ceiling, #1012 - LDFLAGS="${LDFLAGS} -Wl,--strip-debug"; - ;; - esac # set rpath so linker finds the libs export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}" @@ -111,7 +117,7 @@ run() { export LD_LIBRARY_PATH=. export PROFILE_DIR="$builddir"/obj-$CHOST/tmp/profile-default [ -d $PROFILE_DIR ] || ./firefox -no-remote -CreateProfile "Test $PROFILE_DIR" - ./firefox -no-remote -profile "$builddir"/obj-$CHOST/tmp/profile-default + ./firefox -no-remote -profile "$PROFILE_DIR" about:buildconfig } package() { @@ -155,6 +161,7 @@ sha512sums="38b4cc52de21e76d6061e6ba175e1cbfd888a16070aa951f5a44283f2db9d7e94f25 86168a5e5b8aa3ea7cc0d40174baa97595c82b8e599937155fbd7761e7df7220980c74f75e96c34e5f660423e42ad67761f57b2923389be363253868bac033a9 mozconfig ace7492f4fb0523c7340fdc09c831906f74fddad93822aff367135538dacd3f56288b907f5a04f53f94c76e722ba0bab73e28d83ec12d3e672554712e6b08613 bad-google-code.patch 57410e4b9199f3c7db1cd4a0cf3e67cd962b585730c073edb1cadc3bcac5b0aec4e6f7efe24f3eadd1020aefef475e08e97f13dc6b6534e639f33cc6fb1abe04 BTS-1074.patch +33c6c9d845981137e41e396463c09a55c4effe56628f9f7a4e13b7328e4591b97bc607df484393994a9da07d701f2eaee4e30b463284159e4206e1c42a1a4cdc disable-arm-flac.patch c0b2bf43206c2a5154e560ef30189a1062ae856861b39f52ce69002390ff9972d43e387bfd2bf8d2ab3cac621987bc042c8c0a8b4cf90ae05717ca7705271880 fix-mutex-build.patch 70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch 6eb7fb134760f5d232710c56f18f14de4f533e41e269531edd01f5650f6d641513e34a8d2294af5ad6fd184736f674c734efb4cc003636a75e14a8fdba2fe3b0 gcc89074.patch @@ -171,5 +178,6 @@ c9c5610b99e73a1eedd3510e73921cba84f8c6d0c58fc7fe5b4a7ec261bd5fe530560856fba46d6b 452b47b825294779f98ed46bc1065dad76b79ff453521ef049934a120f349c84a1c863b16af1828fe053059823da9690ec917c055ae02dcc5c80c54cad732448 stackwalk-x86-ppc.patch 60ffc4b95ba72aa19fb4f4aaf91393e8c730dae536a19248e2dd21c38cc32891bff69a6b51ea903f185ecc680dae4b21ec11d8cac67b3b038b3f0e757639ad94 triplet-vendor-support.patch b7c1ac21cd03b7cdc887e005ed970cf13ff95643c7651decf1e6d42094cda6a0464dc2ba3cded3827f6d0f3682c2c9b081a7667f386133aa6e3072d0464e72e8 webrender.patch +bb57b3ed998543f9a2edcc379a0c5e2d7e855a0d6f538547f18cdfce56f6c91a3c26a8b1505824628fdd394f0f75a8e98c7fb559ef79eac803d4028e5e9827e5 gcc13.patch f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop 5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop" diff --git a/user/firefox-esr/disable-arm-flac.patch b/user/firefox-esr/disable-arm-flac.patch new file mode 100644 index 000000000..fa1ba8753 --- /dev/null +++ b/user/firefox-esr/disable-arm-flac.patch @@ -0,0 +1,15 @@ +32-bit ARM assembler is mostly for Android32 accel anyway. + +It doesn't link properly on musl (TEXTRELs). + +--- firefox-91.13.0/toolkit/moz.configure.old 2023-10-09 10:40:18.231733637 +0000 ++++ firefox-91.13.0/toolkit/moz.configure 2023-10-10 02:22:34.743712070 +0000 +@@ -1894,7 +1894,7 @@ + flac_only = True + elif target.cpu == "x86_64": + flags = ["-D__x86_64__", "-DPIC", "-DELF", "-Pconfig_unix64.asm"] +- elif target.cpu in ("x86", "arm", "aarch64"): ++ elif target.cpu in ("x86", "aarch64"): + flac_only = True + else: + enable = False diff --git a/user/firefox-esr/gcc13.patch b/user/firefox-esr/gcc13.patch new file mode 100644 index 000000000..1c4f085e0 --- /dev/null +++ b/user/firefox-esr/gcc13.patch @@ -0,0 +1,10 @@ +--- firefox-91.13.0/gfx/2d/Rect.h.old 2022-08-15 13:04:38.000000000 -0500 ++++ firefox-91.13.0/gfx/2d/Rect.h 2024-05-28 20:50:50.230975904 -0500 +@@ -15,6 +15,7 @@ + #include "mozilla/Maybe.h" + + #include <cmath> ++#include <cstdint> + + namespace mozilla { + diff --git a/user/fish/APKBUILD b/user/fish/APKBUILD index 96741a203..0544bd24b 100644 --- a/user/fish/APKBUILD +++ b/user/fish/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Ariadne Conill <ariadne@dereferenced.org> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=fish -pkgver=3.4.1 +pkgver=3.7.1 pkgrel=0 pkgdesc="Modern interactive commandline shell" url="http://www.fishshell.com" @@ -15,6 +15,11 @@ install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-tools::noarch" source="https://github.com/fish-shell/fish-shell/releases/download/$pkgver/$pkgname-$pkgver.tar.xz" +prepare() { + default_prepare + rm tests/checks/check-completions.fish +} + build() { cmake \ -DCMAKE_INSTALL_PREFIX=/usr \ @@ -54,4 +59,4 @@ tools() { mv "$pkgdir"/usr/share/$pkgname/tools "$subpkgdir"/usr/share/$pkgname } -sha512sums="20a2892ec0c413c4c3fcfe5fbf52fb2398de35a9172758728bd2ccdccc5fb6e0e18712a664d02db67543d47180a4d04f3998a6297d23088926b6d03baefdf981 fish-3.4.1.tar.xz" +sha512sums="f1605c400c5d5494f37b92dd386963dba7a3f3c401c369aaf3ff616d9d94836a0138d26074be24c92d94d9d7b625513800899c9431f5e21be0757eb0a0bfd3fe fish-3.7.1.tar.xz" diff --git a/user/fluxbox/APKBUILD b/user/fluxbox/APKBUILD index c45ce0ec9..bc5882b50 100644 --- a/user/fluxbox/APKBUILD +++ b/user/fluxbox/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Dan Theisen <djt@hxx.in> pkgname=fluxbox pkgver=1.3.7 -pkgrel=1 +pkgrel=2 pkgdesc="A lightweight and highly-configurable window manager" url="http://www.fluxbox.org" arch="all" @@ -12,7 +12,9 @@ depends="gxmessage" makedepends="libxinerama-dev libxpm-dev libxrandr imlib2-dev libxrender-dev libxrandr-dev libxinerama-dev freetype-dev libxft-dev xorgproto" subpackages="$pkgname-doc" -source="http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2" +source="https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 + modern-c.patch + " build() { # TODO: Enable NLS when we get 'gencat' @@ -29,4 +31,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c40cc765f5d542210e18dca21b98b97a048c6685b605a68e2c64f4e886329f4e6d3a3a7e76b3ca0ce488242f38d0ee2a4d6dfebc9ce97d37c68f84c3948aac8c fluxbox-1.3.7.tar.bz2" +sha512sums="c40cc765f5d542210e18dca21b98b97a048c6685b605a68e2c64f4e886329f4e6d3a3a7e76b3ca0ce488242f38d0ee2a4d6dfebc9ce97d37c68f84c3948aac8c fluxbox-1.3.7.tar.bz2 +5b06cb617ff7ef9a2b605e4b590d35ed5cab95ded91f56e3a7ad75a1ec1caa0e5543624c4a5f7a5924b60c4568c7b3d7d11811c54ab55c40df7ccd0ef6c45bd1 modern-c.patch" diff --git a/user/fluxbox/modern-c.patch b/user/fluxbox/modern-c.patch new file mode 100644 index 000000000..c8890c71f --- /dev/null +++ b/user/fluxbox/modern-c.patch @@ -0,0 +1,25 @@ +From 22866c4d30f5b289c429c5ca88d800200db4fc4f Mon Sep 17 00:00:00 2001 +From: John Sennesael <john@aminking.com> +Date: Mon, 2 Nov 2015 15:14:32 -0600 +Subject: fixes bug #1138 + +--- + util/fluxbox-remote.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/fluxbox-remote.cc b/util/fluxbox-remote.cc +index 59852e6..504015b 100644 +--- a/util/fluxbox-remote.cc ++++ b/util/fluxbox-remote.cc +@@ -73,7 +73,7 @@ int main(int argc, char **argv) { + if (strcmp(cmd, "result") == 0) { + XTextProperty text_prop; + if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0 +- && text_prop.value > 0 ++ && text_prop.value != 0 + && text_prop.nitems > 0) { + + printf("%s", text_prop.value); +-- +cgit v0.11.2 + diff --git a/user/freeglut/APKBUILD b/user/freeglut/APKBUILD index e6f8fd11d..fa130b8d1 100644 --- a/user/freeglut/APKBUILD +++ b/user/freeglut/APKBUILD @@ -1,10 +1,10 @@ # Contributor: Ariadne Conill <ariadne@dereferenced.org> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=freeglut -pkgver=3.2.1 +pkgver=3.2.2 pkgrel=0 -pkgdesc="free reimplementation of OpenGL Utility Toolkit (GLUT) library" -url="http://freeglut.sourceforge.net/" +pkgdesc="Free reimplementation of OpenGL Utility Toolkit (GLUT) library" +url="https://freeglut.sourceforge.net/" arch="all" options="!check" # No test suite. license="X11" @@ -27,4 +27,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="aced4bbcd36269ce6f4ee1982e0f9e3fffbf18c94f785d3215ac9f4809b992e166c7ada496ed6174e13d77c0f7ef3ca4c57d8a282e96cbbe6ff086339ade3b08 freeglut-3.2.1.tar.gz" +sha512sums="190231951d314f854c244bd27f7c20488403bd0eecffc342097a2e3d1621cec87f6c209a77b4c153aabcf44697b4070227930e295ab74fb88953cbbf94fc81d9 freeglut-3.2.2.tar.gz" diff --git a/user/freetype/APKBUILD b/user/freetype/APKBUILD index 88f531f10..a15a9a1a7 100644 --- a/user/freetype/APKBUILD +++ b/user/freetype/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=freetype -pkgver=2.10.4 +pkgver=2.13.2 pkgrel=0 pkgdesc="TrueType font rendering library" url="https://www.freetype.org/" @@ -14,6 +14,10 @@ subpackages="$pkgname-dev $pkgname-doc" source="http://download.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz" # secfixes: +# 2.13.2: +# - CVE-2022-27406 +# - CVE-2022-27405 +# - CVE-2022-27404 # 2.10.4-r0: # - CVE-2020-15999 # 2.9.1-r0: @@ -39,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="827cda734aa6b537a8bcb247549b72bc1e082a5b32ab8d3cccb7cc26d5f6ee087c19ce34544fa388a1eb4ecaf97600dbabc3e10e950f2ba692617fee7081518f freetype-2.10.4.tar.xz" +sha512sums="a5917edaa45cb9f75786f8a4f9d12fdf07529247e09dfdb6c0cf7feb08f7588bb24f7b5b11425fb47f8fd62fcb426e731c944658f6d5a59ce4458ad5b0a50194 freetype-2.13.2.tar.xz" diff --git a/user/fuse3/APKBUILD b/user/fuse3/APKBUILD index 03d50022e..f4835ca18 100644 --- a/user/fuse3/APKBUILD +++ b/user/fuse3/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=fuse3 _pkgname=fuse -pkgver=3.9.3 +pkgver=3.16.2 pkgrel=0 pkgdesc="The reference implementation of the Linux FUSE (Filesystem in Userspace) interface" url="https://github.com/libfuse/libfuse" @@ -15,7 +15,7 @@ makedepends="linux-headers meson eudev-dev python3 py3-six py3-pluggy py3-attrs py3-py" subpackages="$pkgname-dev $pkgname-doc $_pkgname-common:common:noarch $_pkgname-openrc:openrc:noarch" -source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.xz +source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.gz fix-realpath.patch fuse.initd " @@ -80,6 +80,6 @@ openrc() { install_if="openrc fuse-common=$pkgver-r$pkgrel" } -sha512sums="e4a4bfbc276b1d676211d93878b487c5946f54e8811e929fad4ff32de1f64e0c4e762d33c43e3a04afae538f41efe8d29221f45340ccd74f0055f644802f3e26 fuse-3.9.3.tar.xz +sha512sums="3e8889863cd67dada67271f095f694dc9e5aaf2561fd1e2285aee95b5a54e692bb195ab8fce57fc2bdf08d0ea17b6d56ca4967b4e4371d639d6133907b2370d3 fuse-3.16.2.tar.gz 1a9e1d1e8a7b0778ffde328e4322c73b5d57ec98d52767c846d755cce861ab27989823a75b6c5f994432ddb77fa351dfa4a8f948c9467c5f7d5f471e4608358b fix-realpath.patch 7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1 fuse.initd" diff --git a/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch b/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch deleted file mode 100644 index 9432f10a7..000000000 --- a/user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch +++ /dev/null @@ -1,439 +0,0 @@ -Patch requires bootstrap to regenerate C source file(s). - -See also: - - * https://git.adelielinux.org/adelie/packages/-/issues/926 - * https://github.com/gambit/gambit/issues/806 - -From eb287205c10b3bcf5f497b33b520f468837a18ec Mon Sep 17 00:00:00 2001 -From: Marc Feeley <feeley@iro.umontreal.ca> -Date: Sun, 18 Dec 2022 07:39:38 -0500 -Subject: [PATCH] Avoid fixnum overflow on 32 bit machines in - port-settings-set! - - -diff --git a/lib/_io#.scm b/lib/_io#.scm -index e205e8ad..f55124dc 100644 ---- a/lib/_io#.scm -+++ b/lib/_io#.scm -@@ -2,7 +2,7 @@ - - ;;; File: "_io#.scm" - --;;; Copyright (c) 1994-2021 by Marc Feeley, All Rights Reserved. -+;;; Copyright (c) 1994-2022 by Marc Feeley, All Rights Reserved. - - ;;;============================================================================ - -@@ -817,36 +817,37 @@ - - (##define-macro (macro-default-readtable) #f) - --(##define-macro (macro-char-encoding-shift) 1) --(##define-macro (macro-char-encoding-range) 32) --(##define-macro (macro-default-char-encoding) 0) --(##define-macro (macro-char-encoding-ASCII) 1) --(##define-macro (macro-char-encoding-ISO-8859-1) 2) --(##define-macro (macro-char-encoding-UTF-8) 3) --(##define-macro (macro-char-encoding-UTF-16) 4) --(##define-macro (macro-char-encoding-UTF-16BE) 5) --(##define-macro (macro-char-encoding-UTF-16LE) 6) --(##define-macro (macro-char-encoding-UTF-fallback-ASCII) 7) --(##define-macro (macro-char-encoding-UTF-fallback-ISO-8859-1) 8) --(##define-macro (macro-char-encoding-UTF-fallback-UTF-8) 9) --(##define-macro (macro-char-encoding-UTF-fallback-UTF-16) 10) --(##define-macro (macro-char-encoding-UTF-fallback-UTF-16BE) 11) --(##define-macro (macro-char-encoding-UTF-fallback-UTF-16LE) 12) --(##define-macro (macro-char-encoding-UCS-2) 13) --(##define-macro (macro-char-encoding-UCS-2BE) 14) --(##define-macro (macro-char-encoding-UCS-2LE) 15) --(##define-macro (macro-char-encoding-UCS-4) 16) --(##define-macro (macro-char-encoding-UCS-4BE) 17) --(##define-macro (macro-char-encoding-UCS-4LE) 18) --(##define-macro (macro-char-encoding-wchar) 19) --(##define-macro (macro-char-encoding-native) 20) -+(##define-macro (macro-char-encoding-shift) 0) -+(##define-macro (macro-char-encoding-mask) (* 31 (expt 2 0))) -+(##define-macro (macro-default-char-encoding) 0) -+(##define-macro (macro-char-encoding-ASCII) 1) -+(##define-macro (macro-char-encoding-ISO-8859-1) 2) -+(##define-macro (macro-char-encoding-UTF-8) 3) -+(##define-macro (macro-char-encoding-UTF-16) 4) -+(##define-macro (macro-char-encoding-UTF-16BE) 5) -+(##define-macro (macro-char-encoding-UTF-16LE) 6) -+(##define-macro (macro-char-encoding-UTF-fallback-ASCII) 7) -+(##define-macro (macro-char-encoding-UTF-fallback-ISO-8859-1)8) -+(##define-macro (macro-char-encoding-UTF-fallback-UTF-8) 9) -+(##define-macro (macro-char-encoding-UTF-fallback-UTF-16) 10) -+(##define-macro (macro-char-encoding-UTF-fallback-UTF-16BE) 11) -+(##define-macro (macro-char-encoding-UTF-fallback-UTF-16LE) 12) -+(##define-macro (macro-char-encoding-UCS-2) 13) -+(##define-macro (macro-char-encoding-UCS-2BE) 14) -+(##define-macro (macro-char-encoding-UCS-2LE) 15) -+(##define-macro (macro-char-encoding-UCS-4) 16) -+(##define-macro (macro-char-encoding-UCS-4BE) 17) -+(##define-macro (macro-char-encoding-UCS-4LE) 18) -+(##define-macro (macro-char-encoding-wchar) 19) -+(##define-macro (macro-char-encoding-native) 20) - - (##define-macro (macro-char-encoding-UTF) - `(macro-char-encoding-UTF-fallback-UTF-8)) - - (##define-macro (macro-max-unescaped-char options) -- `(let ((e (##fxmodulo (##fxquotient ,options (macro-char-encoding-shift)) -- (macro-char-encoding-range)))) -+ `(let ((e (##fxarithmetic-shift-right -+ (##fxand ,options (macro-char-encoding-mask)) -+ (macro-char-encoding-shift)))) - (cond ((##fx<= e (macro-char-encoding-ISO-8859-1)) - (if (##fx= e (macro-char-encoding-ISO-8859-1)) - (##integer->char #xff) -@@ -857,21 +858,21 @@ - (else - (##integer->char #x10ffff))))) - --(##define-macro (macro-char-encoding-errors-shift) 32) --(##define-macro (macro-char-encoding-errors-range) 4) -+(##define-macro (macro-char-encoding-errors-shift) 5) -+(##define-macro (macro-char-encoding-errors-mask) (* 3 (expt 2 5))) - (##define-macro (macro-default-char-encoding-errors) 0) - (##define-macro (macro-char-encoding-errors-on) 1) - (##define-macro (macro-char-encoding-errors-off) 2) - --(##define-macro (macro-eol-encoding-shift) 128) --(##define-macro (macro-eol-encoding-range) 4) -+(##define-macro (macro-eol-encoding-shift) 7) -+(##define-macro (macro-eol-encoding-mask) (* 3 (expt 2 7))) - (##define-macro (macro-default-eol-encoding) 0) - (##define-macro (macro-eol-encoding-lf) 1) - (##define-macro (macro-eol-encoding-cr) 2) - (##define-macro (macro-eol-encoding-crlf) 3) - --(##define-macro (macro-buffering-shift) 512) --(##define-macro (macro-buffering-range) 4) -+(##define-macro (macro-buffering-shift) 9) -+(##define-macro (macro-buffering-mask) (* 3 (expt 2 9))) - (##define-macro (macro-default-buffering) 0) - (##define-macro (macro-no-buffering) 1) - (##define-macro (macro-line-buffering) 2) -@@ -883,14 +884,14 @@ - (##define-macro (macro-fully-buffered? options) - `(##not (##fx< (##fxand ,options 2047) 1536))) - --(##define-macro (macro-decode-state-shift) 2048) --(##define-macro (macro-decode-state-range) 4) -+(##define-macro (macro-decode-state-shift) 11) -+(##define-macro (macro-decode-state-mask) (* 3 (expt 2 11))) - (##define-macro (macro-decode-state-none) 0) - (##define-macro (macro-decode-state-lf) 1) - (##define-macro (macro-decode-state-cr) 2) - --(##define-macro (macro-open-state-shift) 8192) --(##define-macro (macro-open-state-range) 2) -+(##define-macro (macro-open-state-shift) 13) -+(##define-macro (macro-open-state-mask) (* 1 (expt 2 13))) - (##define-macro (macro-open-state-open) 0) - (##define-macro (macro-open-state-closed) 1) - -@@ -903,15 +904,15 @@ - (##define-macro (macro-unclose! options) - `(##fxand ,options -8193)) - --(##define-macro (macro-permanent-close-shift) 16384) --(##define-macro (macro-permanent-close-range) 2) -+(##define-macro (macro-permanent-close-shift) 14) -+(##define-macro (macro-permanent-close-mask) (* 1 (expt 2 14))) - (##define-macro (macro-permanent-close-no) 0) - (##define-macro (macro-permanent-close-yes) 1) - - (##define-macro (macro-perm-close? options) - `(##not (##fx= (##fxand ,options 16384) 0))) - --(##define-macro (macro-direction-shift) 16) -+(##define-macro (macro-direction-shift) 4) - (##define-macro (macro-direction-in) 1) - (##define-macro (macro-direction-out) 2) - (##define-macro (macro-direction-inout) 3) -@@ -926,18 +927,18 @@ - - (##define-macro (macro-default-directory) #f) - --(##define-macro (macro-append-shift) 8) -+(##define-macro (macro-append-shift) 3) - (##define-macro (macro-no-append) 0) - (##define-macro (macro-append) 1) - (##define-macro (macro-default-append) 2) - --(##define-macro (macro-create-shift) 2) -+(##define-macro (macro-create-shift) 1) - (##define-macro (macro-no-create) 0) - (##define-macro (macro-maybe-create) 1) - (##define-macro (macro-create) 2) - (##define-macro (macro-default-create) 3) - --(##define-macro (macro-truncate-shift) 1) -+(##define-macro (macro-truncate-shift) 0) - (##define-macro (macro-no-truncate) 0) - (##define-macro (macro-truncate) 1) - (##define-macro (macro-default-truncate) 2) -diff --git a/lib/_io.scm b/lib/_io.scm -index d9387536..563d9664 100644 ---- a/lib/_io.scm -+++ b/lib/_io.scm -@@ -1046,17 +1046,22 @@ - (else - (error-improper-list)))))) - --(##define-macro (macro-stream-options-output-shift) 32768) -+(##define-macro (macro-stream-options-output-shift) 15) -+(##define-macro (macro-stream-options-input-mask) 32767) - - (define-prim (##psettings->roptions psettings default-options) - (##psettings-options->options - (macro-psettings-roptions psettings) -- (##fxmodulo default-options (macro-stream-options-output-shift)))) -+ (##fxand -+ default-options -+ (macro-stream-options-input-mask)))) - - (define-prim (##psettings->woptions psettings default-options) - (##psettings-options->options - (macro-psettings-woptions psettings) -- (##fxquotient default-options (macro-stream-options-output-shift)))) -+ (##fxwraplogical-shift-right -+ default-options -+ (macro-stream-options-output-shift)))) - - (define-prim (##psettings->input-readtable psettings) - (or (macro-psettings-options-readtable -@@ -1081,45 +1086,52 @@ - (macro-psettings-options-char-encoding-errors options))) - (##fx+ - (##fx+ -- (##fx* (macro-char-encoding-shift) -- (if (##fx= char-encoding (macro-default-char-encoding)) -- (##fxmodulo -- (##fxquotient default-options -- (macro-char-encoding-shift)) -- (macro-char-encoding-range)) -- char-encoding)) -- (##fx* (macro-char-encoding-errors-shift) -- (if (##fx= char-encoding-errors (macro-default-char-encoding-errors)) -- (##fxmodulo -- (##fxquotient default-options -- (macro-char-encoding-errors-shift)) -- (macro-char-encoding-errors-range)) -- char-encoding-errors)) -+ (##fxarithmetic-shift-left -+ (if (##fx= char-encoding (macro-default-char-encoding)) -+ (##fxarithmetic-shift-right -+ (##fxand -+ default-options -+ (macro-char-encoding-mask)) -+ (macro-char-encoding-shift)) -+ char-encoding) -+ (macro-char-encoding-shift)) -+ (##fxarithmetic-shift-left -+ (if (##fx= char-encoding-errors (macro-default-char-encoding-errors)) -+ (##fxarithmetic-shift-right -+ (##fxand -+ default-options -+ (macro-char-encoding-errors-mask)) -+ (macro-char-encoding-errors-shift)) -+ char-encoding-errors) -+ (macro-char-encoding-errors-shift)) - (##fx+ - (##fx+ -- (##fx* (macro-eol-encoding-shift) -- (if (##fx= eol-encoding (macro-default-eol-encoding)) -- (##fxmodulo -- (##fxquotient default-options -- (macro-eol-encoding-shift)) -- (macro-eol-encoding-range)) -- eol-encoding)) -+ (##fxarithmetic-shift-left -+ (if (##fx= eol-encoding (macro-default-eol-encoding)) -+ (##fxarithmetic-shift-right -+ (##fxand -+ default-options -+ (macro-eol-encoding-mask)) -+ (macro-eol-encoding-shift)) -+ eol-encoding) -+ (macro-eol-encoding-shift)) - (##fx+ -- (##fx* (macro-open-state-shift) -- (##fxmodulo -- (##fxquotient default-options -- (macro-open-state-shift)) -- (macro-open-state-range))) -+ (##fxand -+ default-options -+ (macro-open-state-mask)) - (##fx+ -- (##fx* (macro-permanent-close-shift) -- permanent-close) -- (##fx* (macro-buffering-shift) -- (if (##fx= buffering (macro-default-buffering)) -- (##fxmodulo -- (##fxquotient default-options -- (macro-buffering-shift)) -- (macro-buffering-range)) -- buffering)))))))))) -+ (##fxarithmetic-shift-left -+ permanent-close -+ (macro-permanent-close-shift)) -+ (##fxarithmetic-shift-left -+ (if (##fx= buffering (macro-default-buffering)) -+ (##fxarithmetic-shift-right -+ (##fxand -+ default-options -+ (macro-buffering-mask)) -+ (macro-buffering-shift)) -+ buffering) -+ (macro-buffering-shift)))))))))) - - (define-prim (##psettings->device-flags psettings) - (let ((direction -@@ -1131,30 +1143,34 @@ - (truncate - (macro-psettings-truncate psettings))) - (##fx+ -- (##fx* (macro-direction-shift) -- direction) -+ (##fxarithmetic-shift-left -+ direction -+ (macro-direction-shift)) - (##fx+ -- (##fx* (macro-append-shift) -- (if (##not (##fx= append (macro-default-append))) -- append -- (macro-no-append))) -+ (##fxarithmetic-shift-left -+ (if (##not (##fx= append (macro-default-append))) -+ append -+ (macro-no-append)) -+ (macro-append-shift)) - (##fx+ -- (##fx* (macro-create-shift) -- (cond ((##not (##fx= create (macro-default-create))) -- create) -- ((##fx= direction (macro-direction-out)) -- (macro-maybe-create)) -- (else -- (macro-no-create)))) -- (##fx* (macro-truncate-shift) -- (cond ((##not (##fx= truncate (macro-default-truncate))) -- truncate) -- ((##fx= direction (macro-direction-out)) -- (if (##fx= append (macro-append)) -- (macro-no-truncate) -- (macro-truncate))) -- (else -- (macro-no-truncate))))))))) -+ (##fxarithmetic-shift-left -+ (cond ((##not (##fx= create (macro-default-create))) -+ create) -+ ((##fx= direction (macro-direction-out)) -+ (macro-maybe-create)) -+ (else -+ (macro-no-create))) -+ (macro-create-shift)) -+ (##fxarithmetic-shift-left -+ (cond ((##not (##fx= truncate (macro-default-truncate))) -+ truncate) -+ ((##fx= direction (macro-direction-out)) -+ (if (##fx= append (macro-append)) -+ (macro-no-truncate) -+ (macro-truncate))) -+ (else -+ (macro-no-truncate))) -+ (macro-truncate-shift))))))) - - (define-prim (##psettings->permissions psettings default-permissions) - (let ((permissions (macro-psettings-permissions psettings))) -@@ -3282,12 +3298,14 @@ - (##psettings-options->options - options - (##fx+ -- (##fx* (macro-open-state-shift) -- (if (##fx= kind (macro-none-kind)) -- (macro-open-state-closed) -- (macro-open-state-open))) -- (##fx* (macro-buffering-shift) -- buffering)))) -+ (##fxarithmetic-shift-left -+ (if (##fx= kind (macro-none-kind)) -+ (macro-open-state-closed) -+ (macro-open-state-open)) -+ (macro-open-state-shift)) -+ (##fxarithmetic-shift-left -+ buffering -+ (macro-buffering-shift))))) - - ;;;---------------------------------------------------------------------------- - -@@ -6690,8 +6708,9 @@ - (macro-port-woptions port)) - (woptions - (##psettings->woptions psettings -- (##fx* old-woptions -- (macro-stream-options-output-shift))))) -+ (##fxarithmetic-shift-left -+ old-woptions -+ (macro-stream-options-output-shift))))) - (let ((code - (and (macro-output-port? port) - (##not (##fx= woptions old-woptions)) -@@ -6716,8 +6735,9 @@ - (##options-set! - port - (##fx+ roptions -- (##fx* woptions -- (macro-stream-options-output-shift))))))) -+ (##fxarithmetic-shift-left -+ woptions -+ (macro-stream-options-output-shift))))))) - (if (##fixnum? result) - (begin - (macro-port-mutex-unlock! port) -diff --git a/lib/_kernel#.scm b/lib/_kernel#.scm -index 9d3578f2..e00a4bba 100644 ---- a/lib/_kernel#.scm -+++ b/lib/_kernel#.scm -@@ -249,28 +249,28 @@ - - ;;; Debug settings. - --(##define-macro (macro-debug-settings-level-mask) 15) -+(##define-macro (macro-debug-settings-level-mask) (* 15 (expt 2 0))) - (##define-macro (macro-debug-settings-level-shift) 0) - --(##define-macro (macro-debug-settings-uncaught-mask) 16) -+(##define-macro (macro-debug-settings-uncaught-mask) (* 1 (expt 2 4))) - (##define-macro (macro-debug-settings-uncaught-primordial) 0) - (##define-macro (macro-debug-settings-uncaught-all) 1) - (##define-macro (macro-debug-settings-uncaught-shift) 4) - --(##define-macro (macro-debug-settings-error-mask) 96) -+(##define-macro (macro-debug-settings-error-mask) (* 3 (expt 2 5))) - (##define-macro (macro-debug-settings-error-repl) 0) - (##define-macro (macro-debug-settings-error-single-step) 1) - (##define-macro (macro-debug-settings-error-quit) 2) - (##define-macro (macro-debug-settings-error-shift) 5) - --(##define-macro (macro-debug-settings-repl-mask) 896) -+(##define-macro (macro-debug-settings-repl-mask) (* 7 (expt 2 7))) - (##define-macro (macro-debug-settings-repl-console) 0) - (##define-macro (macro-debug-settings-repl-stdio) 1) - (##define-macro (macro-debug-settings-repl-stdio-and-err) 2) - (##define-macro (macro-debug-settings-repl-client) 3) - (##define-macro (macro-debug-settings-repl-shift) 7) - --(##define-macro (macro-debug-settings-user-intr-mask) 3072) -+(##define-macro (macro-debug-settings-user-intr-mask) (* 3 (expt 2 10))) - (##define-macro (macro-debug-settings-user-intr-repl) 0) - (##define-macro (macro-debug-settings-user-intr-defer) 1) - (##define-macro (macro-debug-settings-user-intr-quit) 2) --- -2.25.1 - diff --git a/user/gambit-c/APKBUILD b/user/gambit-c/APKBUILD index bf9852b47..225984528 100644 --- a/user/gambit-c/APKBUILD +++ b/user/gambit-c/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Zach van Rijn <me@zv.io> # Maintainer: Zach van Rijn <me@zv.io> pkgname=gambit-c -pkgver=4.9.4 +pkgver=4.9.5 _pkgver=$(printf "%s" "${pkgver}" | tr . _) -pkgrel=3 +pkgrel=0 pkgdesc="An efficient implementation of the Scheme programming language." url="https://gambitscheme.org/" arch="all" @@ -13,14 +13,18 @@ makedepends="openssl-dev texinfo gnu-ghostscript" subpackages="$pkgname-dev $pkgname-doc" source="https://gambitscheme.org/$pkgver/gambit-v${_pkgver}.tgz fix-incompatible-stat-usage.patch - remove-non-ascii-character-from-gambit-txi.patch reproducibility.patch - 0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch - s390.patch - - disable-srfi-179.patch " -builddir="$srcdir/gambit-$pkgver" +builddir="$srcdir/gambit-v$_pkgver" + +prepare() { + default_prepare + + #934 + for srfi in 179 231; do + sed -i lib/srfi/makefile -e "s/\b${srfi}\b//g"; + done +} build() { # https://github.com/gambit/gambit/issues/249 @@ -52,6 +56,8 @@ build() { --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ + --enable-compiler-name=gsc${pkgver%%.*} \ + --enable-interpreter-name=gsi${pkgver%%.*} \ --enable-single-host \ --enable-c-opt \ --enable-dynamic-clib \ @@ -74,10 +80,6 @@ package() { make -j1 DESTDIR="$pkgdir" install } -sha512sums="3471062618949fe4e1eba19ca3170b8334065797d0c2f440050520ebca2af8bb6d57d9434b1756e5d67d4d4ec108c8e6a0c2900f01d8a35b71c979d776995ab1 gambit-v4_9_4.tgz +sha512sums="5b5a6fc783851eac140590ef81e017de8301490095d56afa9e670d1a00ed0a31c621b6d48215af8ace9682ca21cd317200167cb95bfdc01a7312394c944597ff gambit-v4_9_5.tgz a878994ea7c40b301d30b4d05879c335ad42e1ca8c25387556691192b6945276d6d6ff017ff568302558b23c42c61f223bddb3596b8203fbee8edbf4fdd9b813 fix-incompatible-stat-usage.patch -45336179d3f61fa3d70c3517f368fd8ccd744b5981c4bbc2091ed0016e10940c1b24dd58ee4c8d59637d89865a4c6f0ea80dc49a8859b7a900331fdb0e1efe49 remove-non-ascii-character-from-gambit-txi.patch -133ef5442c1bfe51e57caecd509c12cdecd86cfb941114a5038fad2c3e2bda1770fde7e367561039d523db5ea9cba5cebae7a9ed9daca699863267e7224f1ad6 reproducibility.patch -2b11fe9957c22a4410070f887f507215703e7476f050ef90ee8ea04e66f0f602f5cf2877a6efb71e7355a767e50a4f2fa4ecdc7b4bd9b1971f3d1234ca980b8c 0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch -a47db8bc273b7133647aac986339569cf5cd6724064634caeee9e90976265ff40983869960f8ccfd44600b8d357b4bd25f49567aee7e9e3ff429d4881512aae3 s390.patch -d0da7949db7a83020fc7e4e139c7df292b4671adf0ba42fdfee4448915e6b697fbcecb3ca206507a3756dc39506e0d0c1f8d07ea5906bb5ce6ab6b42c18f0781 disable-srfi-179.patch" +133ef5442c1bfe51e57caecd509c12cdecd86cfb941114a5038fad2c3e2bda1770fde7e367561039d523db5ea9cba5cebae7a9ed9daca699863267e7224f1ad6 reproducibility.patch" diff --git a/user/gambit-c/disable-srfi-179.patch b/user/gambit-c/disable-srfi-179.patch deleted file mode 100644 index 5ae78c31c..000000000 --- a/user/gambit-c/disable-srfi-179.patch +++ /dev/null @@ -1,21 +0,0 @@ -This patch disables SRFI 179 because it may fail -to compile on 32-bit systems due to exceeding the -limit of addressable memory. - -Adjusting compilation flags or other parameters -may be a viable alternative, but it is easier to -disable it wholesale until a better fix is found. - -diff --git a/lib/srfi/makefile b/lib/srfi/makefile -index fd13fbb6..dd4d8c99 100644 ---- a/lib/srfi/makefile -+++ b/lib/srfi/makefile -@@ -2,7 +2,7 @@ - - herefromlib = srfi - libfromhere = .. --SUBDIRS = 179 132 41 158 69 \ -+SUBDIRS = 132 41 158 69 \ - 0 1 2 4 5 6 8 9 13 14 23 26 27 28 31 33 45 64 111 124 193 219 - HEADERS_SCM = - MODULES_SCM = diff --git a/user/gambit-c/remove-non-ascii-character-from-gambit-txi.patch b/user/gambit-c/remove-non-ascii-character-from-gambit-txi.patch deleted file mode 100644 index 6bee6b2a1..000000000 --- a/user/gambit-c/remove-non-ascii-character-from-gambit-txi.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 9c01e39351ae958541b983961851a2474dabeb8d Mon Sep 17 00:00:00 2001 -From: Marc Feeley <feeley@iro.umontreal.ca> -Date: Tue, 4 Jan 2022 09:19:32 -0500 -Subject: [PATCH] Remove non-ASCII character from gambit.txi - ---- - doc/gambit.txi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/doc/gambit.txi b/doc/gambit.txi -index 56187714b..a6a4caa90 100644 ---- a/doc/gambit.txi -+++ b/doc/gambit.txi -@@ -6658,7 +6658,7 @@ For example: - $ @b{gsi github.com/gambit/hello/demo @r{@i{# auto-install of github.com/gambit/hello package}}} - People customarily greet each other when they meet. - In English you can say: hello Bob, nice to see you! --In French you can say: bonjour Bob, je suis enchant! -+In French you can say: bonjour Bob, je suis enchant@'e! - Demo source code: /Users/feeley/.gambit_userlib/github.com/gambit/hello/@@/demo.scm - $ @b{gsi github.com/feeley/roman/demo @r{@i{# no auto-install because not on whitelist}}} - *** ERROR IN ##main -- No such file or directory diff --git a/user/gambit-c/s390.patch b/user/gambit-c/s390.patch deleted file mode 100644 index 9580f2e75..000000000 --- a/user/gambit-c/s390.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/include/gambit.h.in b/include/gambit.h.in -index 71e712a7..f8eeb2ea 100644 ---- a/include/gambit.h.in -+++ b/include/gambit.h.in -@@ -443,11 +443,27 @@ - #endif - #endif - -+#ifndef ___CPU_s390 -+ -+#ifdef __s390__ -+#define ___CPU_s390 -+#else -+#ifdef __s390x__ -+#define ___CPU_s390 -+#else -+#ifdef __zarch__ -+#define ___CPU_s390 -+#endif -+#endif -+#endif -+ -+#endif -+ - /* - * Determine the byte order endianness based on the processor type. -- * We assume that all processors are little-endian, except the sparc and -- * m68k. The PowerPC, MIPS, ARM and Itanium can be either big-endian or -- * little-endian so extra tests are needed. -+ * We assume that all processors are little-endian, except the sparc, -+ * m68k, and s390. The PowerPC, MIPS, ARM and Itanium can be either -+ * big-endian or little-endian so extra tests are needed. - */ - - #ifndef ___BIG_ENDIAN -@@ -484,6 +500,10 @@ - #define ___BIG_ENDIAN - #endif - -+#ifdef ___CPU_s390 -+#define ___BIG_ENDIAN -+#endif -+ - #ifdef ___CPU_mips - #ifdef _MIPSEL - #define ___LITTLE_ENDIAN diff --git a/user/garcon/APKBUILD b/user/garcon/APKBUILD index ea0d34f73..a6c7990bb 100644 --- a/user/garcon/APKBUILD +++ b/user/garcon/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=garcon -pkgver=4.18.1 +pkgver=4.18.2 pkgrel=0 pkgdesc="freedesktop.org menu library for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8e6d091beaf1aaa85cc16cd5e562191e0e6858a47444a23d95066f9afa3f8a70f7a61bc9fec33fe401945637e810441cbd6f961f41b40e2d2ce7a1ce4fce78a0 garcon-4.18.1.tar.bz2" +sha512sums="f74547a29dbf47469e9448ea0fb89a297d02c7a5d2f7ec1a1f05706f89160730e04743ce84de29de21f32a2d2e4e4410f6c12fd14777c65944529f5104973cee garcon-4.18.2.tar.bz2" diff --git a/user/gcr3/APKBUILD b/user/gcr3/APKBUILD new file mode 100644 index 000000000..96adcf4d3 --- /dev/null +++ b/user/gcr3/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=gcr3 +pkgver=3.41.1 +pkgrel=0 +pkgdesc="Gnome cryptography user interface library" +url="https://gnome.pages.gitlab.gnome.org/gcr/gcr-3/" +arch="all" +options="!check" # https://gitlab.gnome.org/GNOME/gcr/-/issues/114 +license="LGPL-2.1+ AND LGPL-2.0+ AND LGPL-2.1-only AND GPL-2.0+ AND (GPL-2.0+ OR LGPL-2.1+ OR MPL-1.1) AND (LGPL-2.0+ OR LGPL-2.1+)" +depends="" +checkdepends="dbus-x11" +makedepends="meson ninja gi-docgen glib-dev gnupg gobject-introspection-dev + gtk+3.0-dev libgcrypt-dev libsecret-dev p11-kit-dev vala-dev openssh-client" +subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" +source="https://download.gnome.org/sources/gcr/${pkgver%.*}/gcr-$pkgver.tar.xz" +builddir="$srcdir"/gcr-$pkgver + +build() { + meson setup \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + --wrap-mode=nofallback \ + . output + meson compile -C output +} + +check() { + dbus-run-session meson test -C output +} + +package() { + DESTDIR="$pkgdir" meson install -C output +} + +sha512sums="dd70d41636ede863d05824b26823a8f572902f7a9b6f09b0c70586ef0d4c046864e6956130b9231850a515a9fbfcd56faf20354c1cf8f697f005827c048a2325 gcr-3.41.1.tar.xz" diff --git a/user/gdbm/APKBUILD b/user/gdbm/APKBUILD index 351236639..b52d44fce 100644 --- a/user/gdbm/APKBUILD +++ b/user/gdbm/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: pkgname=gdbm -pkgver=1.18.1 +pkgver=1.23 pkgrel=0 pkgdesc="Set of database routines that use extensible hashing" url="https://www.gnu.org/software/gdbm/" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="adf9d6c5bc843ff0d7f88c2a1667d509973b2d63378d0001d7e74cc10aee6ea498a4513cc88ddf78c32ba4db5cb040b2794f4f1b3338c65d9894058850e2f5ef gdbm-1.18.1.tar.gz" +sha512sums="918080cb0225b221c11eb7339634a95e00c526072395f7a3d46ccf42ef020dea7c4c5bec34aff2c4f16033e1fff6583252b7e978f68b8d7f8736b0e025838e10 gdbm-1.23.tar.gz" diff --git a/user/gigolo/APKBUILD b/user/gigolo/APKBUILD index ceec048c0..2c472eaf8 100644 --- a/user/gigolo/APKBUILD +++ b/user/gigolo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=gigolo -pkgver=0.5.2 +pkgver=0.5.3 pkgrel=0 pkgdesc="Frontend for managing remote filesystems" url="https://www.xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2277186495a5ae5f4b4a30ca738b6c35287d6fa51d0df11d31ac627811a67ad31202c3c78225e3035b92c3bf111e6ff098bc7ba83482e0bea0e5e2edcfaec0c7 gigolo-0.5.2.tar.bz2" +sha512sums="46d93d4c2654a91724208f144098f0a870465823a516339c8455345b5d32be6efe2b7fb13d3e5c89daf2cd919e07e5fcbdc8c8e93bce03c78dbe1907ea5edfcd gigolo-0.5.3.tar.bz2" diff --git a/user/gitlab-runner/APKBUILD b/user/gitlab-runner/APKBUILD index a2ef8fd9c..c5b01bd3b 100644 --- a/user/gitlab-runner/APKBUILD +++ b/user/gitlab-runner/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Max Rees <maxcrees@me.com> # Maintainer: Zach van Rijn <me@zv.io> pkgname=gitlab-runner -pkgver=12.1.0 -pkgrel=1 +pkgver=15.0.0 +pkgrel=0 _testver=91956efe _branch="${pkgver%.*}" _branch="${pkgver%%.*}-${_branch#*.}-stable" @@ -22,19 +22,14 @@ source="https://gitlab.com/gitlab-org/gitlab-runner/-/archive/v$pkgver/gitlab-ru https://dev.sick.bike/dist/gitlab-test-$_testver.tar.gz $pkgname.confd $pkgname.initd - clean-tmpdirs.patch disable-crap.patch gccgo.patch - posix-shell.patch - posix-shell-escape.patch tests.patch - fix-multiple-redef-seek.patch " builddir="$srcdir/$pkgname-v$pkgver" unpack() { default_unpack - mkdir "$builddir"/tmp mv gitlab-test "$builddir"/tmp } @@ -43,7 +38,11 @@ _make() { } build() { - _make build_simple + export GO111MODULE=on + export GOCACHE="$builddir"/tmp/go-build + export GOMODCACHE="$builddir"/go-mod + export GOFLAGS="-buildvcs=false -p=$JOBS -v -mod=readonly -modcacherw" + go build -o gitlab-runner . } check() { @@ -65,7 +64,7 @@ check() { } package() { - install -Dm755 out/binaries/gitlab-runner \ + install -Dm755 gitlab-runner \ "$pkgdir"/usr/bin/gitlab-runner install -dm750 -g gitlab-runner \ "$pkgdir"/etc/gitlab-runner @@ -78,14 +77,10 @@ package() { "$pkgdir"/etc/init.d/$pkgname } -sha512sums="1b3f06b7000252631bec04a58474dda826b0fb8d28c4144051a231fba5ef0c5c4b6e0f9ca6bdf9bf9b16b9117cbcf6385eb7bac85bda7b9f99de4300cbcc2066 gitlab-runner-v12.1.0.tar.gz +sha512sums="8ba54e690fc45c1e22d174b649fbe3cf78707fd5a146c738c73cba045e6ac00499ddedd7a5f905c0c7e4e804a533d3fc718f8f7ac3c9ec5581de4dd9b3599c80 gitlab-runner-v15.0.0.tar.gz 7bccab81aa1cb88c6a0f83a6d3dfc509e6f9ecb4d0168a5b30cc4e8fdd823294b95fe3633e09757905466f83bb3bf73b1d28fac475dff2dc3164604db4b5b995 gitlab-test-91956efe.tar.gz f8a0c7e77cd563d7e5b4fb2319181ceab8de44c555cefa4803e985ad3ac6a9fea7bca469d80b28974edcfb65f2095d019bfdf0abd8a3221464276a8d89debc0d gitlab-runner.confd 7f785a65b46919f6a6695e25fdc414ee3204eb9aa1a3735e7884575434af94b20a48f2fe7a1fb787473de23a7bd2d56bc1e9c1fc6b522c6f0c05c47b3d37ab1c gitlab-runner.initd -f17a6b5053933d83d90272be7e98d4abf8d63e8a9c5ad30bbb61a29dbfa1e1b55421ba14be9f7db17cae30b2ff04efcb5da68543a2fa3d0e3e1882bc128cac06 clean-tmpdirs.patch -a32b7a6fa28c7f5bcb505308e615f17de179c15ce8c2ef73078143204195e36d99b18489114ce694c3d821378c1e9ccb26a999a50372b97df163e2512080f07e disable-crap.patch -4bc8f827cbcec212fcb1c5598aaf725138efa9a1de699d6261a65207cca7ef46f441edc02987efdd6d7c6e62943fda8f3f2a5a596d8d33b49fb78ba5df612e8b gccgo.patch -444adec507c5eebcfae268f2f475d29316119f30750f06877a91dff56942d0e4d34ed3011b774b0d7acd59acfe2ddbe75082b3cd5aebd72ddb4703fd083ad301 posix-shell.patch -05d12046448c79a12bf92974089ff97781304083f7bf35abb0b0c0f990c536bd6ff51652e16035a38e4ba5620dcad6e051ecdf4a80eb62039a15371073e525b5 posix-shell-escape.patch -dae9c3f86fdf21bd41202fc2c0bc7dd764078ea9215d7ddbac1f7bc47b0943f7a912250a3006122f74ed50052378ed2c946eefe5c1ce8400cd682b183221025a tests.patch -693d3abd94a85be70337bdfcbc3c643d65b95991689e085c573a793e4568f71966e398be960fd6bd985481613a1b85c459af814f83396d23e773afeee956b9f3 fix-multiple-redef-seek.patch" +020a388f63758ecbcdd19ce3a290d2fd044e852174b6b7e1c79dc39d8d83ac161be5b63df8a9c60da315895e5385e9ac02bd3a46e02d45b96b8f939c90c444cd disable-crap.patch +6bb477d2f40e651cb59f18ea18cfb051dd06cdfa3f976c6e17b72ee35733e9520a6323cec1f6b34d85fa46050b97bd20d4bb0f08a44f2cbfd4eb6914cfd5d604 gccgo.patch +9b64665ec4c7f0edb7151b146666ea22283ac109193ff354510da018f14f1442c99707c753e5185caed2eb034600aa93ef5c95d960443339db89696acef96c3c tests.patch" diff --git a/user/gitlab-runner/clean-tmpdirs.patch b/user/gitlab-runner/clean-tmpdirs.patch deleted file mode 100644 index 89efd7a22..000000000 --- a/user/gitlab-runner/clean-tmpdirs.patch +++ /dev/null @@ -1,21 +0,0 @@ -Backport of: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/1978 - ---- gitlab-runner-v12.1.0/executors/custom/executor.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/executors/custom/executor.go 2020-04-27 00:19:46.613372635 +0000 -@@ -7,6 +7,7 @@ import ( - "fmt" - "io" - "io/ioutil" -+ "os" - "path/filepath" - - "github.com/sirupsen/logrus" -@@ -216,6 +217,8 @@ func (e *executor) Cleanup() { - return - } - -+ defer os.RemoveAll(e.tempDir) -+ - // nothing to do, as there's no cleanup_script - if e.config.CleanupExec == "" { - return diff --git a/user/gitlab-runner/disable-crap.patch b/user/gitlab-runner/disable-crap.patch index b375934fc..aab6a98b1 100644 --- a/user/gitlab-runner/disable-crap.patch +++ b/user/gitlab-runner/disable-crap.patch @@ -1,9 +1,10 @@ --- gitlab-runner-v12.1.0/main.go 2019-07-19 12:13:32.000000000 +0000 +++ gitlab-runner-v12.1.0/main.go 2020-03-04 22:28:31.741878923 +0000 -@@ -11,18 +11,11 @@ import ( - "gitlab.com/gitlab-org/gitlab-runner/helpers/cli" +@@ -12,19 +12,11 @@ import ( + cli_helpers "gitlab.com/gitlab-org/gitlab-runner/helpers/cli" "gitlab.com/gitlab-org/gitlab-runner/log" +- _ "gitlab.com/gitlab-org/gitlab-runner/cache/azure" - _ "gitlab.com/gitlab-org/gitlab-runner/cache/gcs" - _ "gitlab.com/gitlab-org/gitlab-runner/cache/s3" _ "gitlab.com/gitlab-org/gitlab-runner/commands" @@ -16,6 +17,6 @@ _ "gitlab.com/gitlab-org/gitlab-runner/executors/shell" _ "gitlab.com/gitlab-org/gitlab-runner/executors/ssh" - _ "gitlab.com/gitlab-org/gitlab-runner/executors/virtualbox" + _ "gitlab.com/gitlab-org/gitlab-runner/helpers/secrets/resolvers/vault" _ "gitlab.com/gitlab-org/gitlab-runner/shells" ) - diff --git a/user/gitlab-runner/fix-multiple-redef-seek.patch b/user/gitlab-runner/fix-multiple-redef-seek.patch deleted file mode 100644 index 5a9d1ef10..000000000 --- a/user/gitlab-runner/fix-multiple-redef-seek.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -ur a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go ---- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go 2023-01-04 02:17:18.689781320 +0000 -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go 2023-01-04 02:19:46.688219811 +0000 -@@ -45,7 +45,13 @@ - - // Underlying system call writes to newoffset via pointer. - // Implemented in assembly to avoid allocation. --func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) -+func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { -+ var newoffset int64 -+ offsetLow := uint32(offset & 0xffffffff) -+ offsetHigh := uint32((offset >> 32) & 0xffffffff) -+ _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) -+ return newoffset, err -+} - - func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) -diff -ur a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go 2023-01-04 02:17:18.689781320 +0000 -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go 2023-01-04 02:20:04.283558738 +0000 -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --// +build linux,gccgo,arm -+// +build linux,!gccgo,arm - - package unix - -@@ -11,6 +11,7 @@ - "unsafe" - ) - -+// this file should not be built - func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) diff --git a/user/gitlab-runner/gccgo.patch b/user/gitlab-runner/gccgo.patch index 6c10893c7..c8704280c 100644 --- a/user/gitlab-runner/gccgo.patch +++ b/user/gitlab-runner/gccgo.patch @@ -12,45 +12,45 @@ BUILT := $(shell date -u +%Y-%m-%dT%H:%M:%S%z) -export TESTFLAGS ?= -cover - LATEST_STABLE_TAG := $(shell git -c versionsort.prereleaseSuffix="-rc" -c versionsort.prereleaseSuffix="-RC" tag -l "v*.*.*" --sort=-v:refname | awk '!/rc/' | head -n 1) + LATEST_STABLE_TAG := $(shell git -c versionsort.prereleaseSuffix="-rc" -c versionsort.prereleaseSuffix="-RC" tag -l "v*.*.*" | sort -rV | awk '!/rc/' | head -n 1) export IS_LATEST := -@@ -45,14 +44,11 @@ export PATH := $(GOPATH_BIN):$(PATH) +@@ -36,14 +35,11 @@ export PATH := $(GOPATH_BIN):$(PATH) + BUILD_DIR := $(CURDIR) + TARGET_DIR := $(BUILD_DIR)/out - # Packages in vendor/ are included in ./... - # https://github.com/golang/go/issues/11659 --export OUR_PACKAGES ?= $(subst _$(BUILD_DIR),$(PKG),$(shell go list ./... | grep -v '/vendor/')) -+export OUR_PACKAGES ?= $(subst _$(BUILD_DIR),$(PKG),$(shell go list ./... | grep -ve '/vendor/' -e '/cache/gcs' -e '/cache/s3' -e '/docker' -e '/kubernetes' -e '/parallels' -e '/virtualbox')) + export MAIN_PACKAGE ?= gitlab.com/gitlab-org/gitlab-runner -GO_LDFLAGS ?= -X $(COMMON_PACKAGE_NAMESPACE).NAME=$(PACKAGE_NAME) -X $(COMMON_PACKAGE_NAMESPACE).VERSION=$(VERSION) \ - -X $(COMMON_PACKAGE_NAMESPACE).REVISION=$(REVISION) -X $(COMMON_PACKAGE_NAMESPACE).BUILT=$(BUILT) \ - -X $(COMMON_PACKAGE_NAMESPACE).BRANCH=$(BRANCH) \ -- -s -w -+GO_LDFLAGS ?= -s -w - GO_FILES ?= $(shell find . -name '*.go' | grep -v './.gopath/') +- -w ++GO_LDFLAGS ?= -w + GO_FILES ?= $(shell find . -name '*.go') -export CGO_ENABLED ?= 0 +export CGO_ENABLED ?= 1 # Development Tools -@@ -114,7 +110,7 @@ build: $(GOX) - build_simple: $(GOPATH_SETUP) - # Building $(NAME) in version $(VERSION) for current platform -- go build \ -- -ldflags "$(GO_LDFLAGS)" \ -+ go build -v \ -+ -gccgoflags "$(GO_LDFLAGS)" \ - -o "out/binaries/$(NAME)" \ - $(PKG) - -@@ -123,7 +119,7 @@ build_current: helper-docker build_simpl - check_race_conditions: - @./scripts/check_race_conditions $(OUR_PACKAGES) +@@ -137,7 +133,7 @@ build_current: helper-docker build_simpl + simple-test: TEST_PKG ?= $(shell go list ./...) + simple-test: + # use env -i to clear parent environment variables for go test +- ./scripts/go_test_no_env $(TEST_PKG) $(TESTFLAGS) -ldflags "$(GO_LDFLAGS)" ++ ./scripts/go_test_no_env $(TEST_PKG) $(TESTFLAGS) -gccgoflags "$(GO_LDFLAGS)" --test: $(PKG_BUILD_DIR) helper-docker -+test: $(PKG_BUILD_DIR) - go test $(OUR_PACKAGES) $(TESTFLAGS) - - parallel_test_prepare: $(GOPATH_SETUP) + git1.8-test: export TEST_PKG = gitlab.com/gitlab-org/gitlab-runner/executors/shell gitlab.com/gitlab-org/gitlab-runner/shells + git1.8-test: +--- gitlab-runner-v13.0.0/Makefile.build.mk.old 2020-05-20 03:10:39.000000000 -0500 ++++ gitlab-runner-v13.0.0/Makefile.build.mk 2024-05-30 22:18:11.590776424 -0500 +@@ -1,6 +1,5 @@ + runner-bin: $(GOX) + # Building $(NAME) in version $(VERSION) for $(BUILD_PLATFORMS) +- $(GOX) $(BUILD_PLATFORMS) \ +- -ldflags "$(GO_LDFLAGS)" \ +- -output="out/binaries/$(NAME)-{{.OS}}-{{.Arch}}" \ ++ go build -v \ ++ -gccgoflags "$(GO_LDFLAGS)" \ + $(PKG) --- gitlab-runner-v12.1.0/common/version.go 2019-07-19 12:13:32.000000000 +0000 +++ gitlab-runner-v12.1.0/common/version.go 2020-04-27 00:57:04.923408027 +0000 @@ -9,9 +9,9 @@ import ( @@ -60,9 +60,9 @@ -var VERSION = "development version" -var REVISION = "HEAD" -var BRANCH = "HEAD" -+var VERSION = "12.1.0" -+var REVISION = "v12.1.0" -+var BRANCH = "12-1-stable" ++var VERSION = "15.0.0" ++var REVISION = "v15.0.0" ++var BRANCH = "15-0-stable" var BUILT = "unknown" var AppVersion AppVersionInfo diff --git a/user/gitlab-runner/posix-shell-escape.patch b/user/gitlab-runner/posix-shell-escape.patch deleted file mode 100644 index b454141ed..000000000 --- a/user/gitlab-runner/posix-shell-escape.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- gitlab-runner-v12.1.0/helpers/shell_escape.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/helpers/shell_escape.go 2020-04-26 23:12:59.813309281 +0000 -@@ -4,7 +4,6 @@ package helpers - - import ( - "bytes" -- "encoding/hex" - "strings" - ) - -@@ -13,35 +12,10 @@ import ( - */ - - const ( -- ACK = 6 -- TAB = 9 -- LF = 10 -- CR = 13 -- US = 31 -- SPACE = 32 -- AMPERSTAND = 38 - SINGLE_QUOTE = 39 -- PLUS = 43 -- NINE = 57 -- QUESTION = 63 -- LOWERCASE_Z = 90 -- OPEN_BRACKET = 91 - BACKSLASH = 92 -- UNDERSCORE = 95 -- CLOSE_BRACKET = 93 -- BACKTICK = 96 -- TILDA = 126 -- DEL = 127 - ) - --// ShellEscape is taken from https://github.com/solidsnack/shell-escape/blob/master/Text/ShellEscape/Bash.hs --/* --A Bash escaped string. The strings are wrapped in @$\'...\'@ if any --bytes within them must be escaped; otherwise, they are left as is. --Newlines and other control characters are represented as ANSI escape --sequences. High bytes are represented as hex codes. Thus Bash escaped --strings will always fit on one line and never contain non-ASCII bytes. --*/ - func ShellEscape(str string) string { - if str == "" { - return "''" -@@ -50,85 +24,20 @@ func ShellEscape(str string) string { - out := bytes.NewBuffer(make([]byte, 0, len(str)*2)) - i := 0 - l := len(in) -- escape := false -- -- hex := func(char byte) { -- escape = true -- -- data := []byte{BACKSLASH, 'x', 0, 0} -- hex.Encode(data[2:], []byte{char}) -- out.Write(data) -- } -- -- backslash := func(char byte) { -- escape = true -- out.Write([]byte{BACKSLASH, char}) -- } -- -- escaped := func(str string) { -- escape = true -- out.WriteString(str) -- } -- -- quoted := func(char byte) { -- escape = true -- out.WriteByte(char) -- } -- -- literal := func(char byte) { -- out.WriteByte(char) -- } - -+ out.WriteByte(SINGLE_QUOTE) - for i < l { - char := in[i] -- switch { -- case char == TAB: -- escaped(`\t`) -- case char == LF: -- escaped(`\n`) -- case char == CR: -- escaped(`\r`) -- case char <= US: -- hex(char) -- case char <= AMPERSTAND: -- quoted(char) -- case char == SINGLE_QUOTE: -- backslash(char) -- case char <= PLUS: -- quoted(char) -- case char <= NINE: -- literal(char) -- case char <= QUESTION: -- quoted(char) -- case char <= LOWERCASE_Z: -- literal(char) -- case char == OPEN_BRACKET: -- quoted(char) -- case char == BACKSLASH: -- backslash(char) -- case char <= CLOSE_BRACKET: -- quoted(char) -- case char == UNDERSCORE: -- literal(char) -- case char <= BACKTICK: -- quoted(char) -- case char <= TILDA: -- quoted(char) -- case char == DEL: -- hex(char) -- default: -- hex(char) -+ if (char == SINGLE_QUOTE) { -+ out.Write([]byte{SINGLE_QUOTE, BACKSLASH, SINGLE_QUOTE, SINGLE_QUOTE}) -+ } else { -+ out.WriteByte(char) - } - i++ - } -+ out.WriteByte(SINGLE_QUOTE) - -- outStr := out.String() -- -- if escape { -- outStr = "$'" + outStr + "'" -- } -- -- return outStr -+ return out.String() - } - - func ToBackslash(path string) string { diff --git a/user/gitlab-runner/posix-shell.patch b/user/gitlab-runner/posix-shell.patch deleted file mode 100644 index 6169c3ecc..000000000 --- a/user/gitlab-runner/posix-shell.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- gitlab-runner-v12.1.0/shells/bash.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/shells/bash.go 2020-04-26 23:07:57.303304498 +0000 -@@ -102,12 +102,12 @@ func (b *BashWriter) Variable(variable c - } - - func (b *BashWriter) IfDirectory(path string) { -- b.Line(fmt.Sprintf("if [[ -d %q ]]; then", path)) -+ b.Line(fmt.Sprintf("if [ -d %q ]; then", path)) - b.Indent() - } - - func (b *BashWriter) IfFile(path string) { -- b.Line(fmt.Sprintf("if [[ -e %q ]]; then", path)) -+ b.Line(fmt.Sprintf("if [ -e %q ]; then", path)) - b.Indent() - } - -@@ -200,9 +200,10 @@ func (b *BashWriter) Finish(trace bool) - io.WriteString(w, "set -o xtrace\n") - } - -- io.WriteString(w, "set -eo pipefail\n") -+ io.WriteString(w, "set -e\n") - io.WriteString(w, "set +o noclobber\n") -- io.WriteString(w, ": | eval "+helpers.ShellEscape(b.String())+"\n") -+ io.WriteString(w, "(\nexec </dev/null\n") -+ io.WriteString(w, b.String() + "\n)\n") - io.WriteString(w, "exit 0\n") - w.Flush() - return buffer.String() diff --git a/user/gitlab-runner/tests.patch b/user/gitlab-runner/tests.patch index 1aff6c653..0762b6b13 100644 --- a/user/gitlab-runner/tests.patch +++ b/user/gitlab-runner/tests.patch @@ -1,58 +1,23 @@ --- gitlab-runner-v12.1.0/shells/bash_test.go 2019-07-19 12:13:32.000000000 +0000 +++ gitlab-runner-v12.1.0/shells/bash_test.go 2020-04-27 00:07:06.763360621 +0000 -@@ -10,12 +10,12 @@ func TestBash_CommandShellEscapes(t *tes - writer := &BashWriter{} +@@ -16,12 +16,12 @@ func TestBash_CommandShellEscapes(t *tes + writer := &BashWriter{useNewEscape: false} writer.Command("foo", "x&(y)") - assert.Equal(t, `$'foo' "x&(y)"`+"\n", writer.String()) + assert.Equal(t, `'foo' "x&(y)"`+"\n", writer.String()) } - func TestBash_IfCmdShellEscapes(t *testing.T) { - writer := &BashWriter{} + func TestBash_IfCmdShellEscapesLegacy(t *testing.T) { + writer := &BashWriter{useNewEscape: false} writer.IfCmd("foo", "x&(y)") -- assert.Equal(t, `if $'foo' "x&(y)" >/dev/null 2>/dev/null; then`+"\n", writer.String()) +- assert.Equal(t, `if $'foo' "x&(y)" >/dev/null 2>&1; then`+"\n", writer.String()) + assert.Equal(t, `if 'foo' "x&(y)" >/dev/null 2>/dev/null; then`+"\n", writer.String()) } ---- gitlab-runner-v12.1.0/executors/shell/executor_shell_test.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/executors/shell/executor_shell_test.go 2020-04-27 00:01:12.813355024 +0000 -@@ -166,7 +166,7 @@ func TestBuildAbort(t *testing.T) { - defer abortTimer.Stop() - - err = runBuild(t, build) -- assert.EqualError(t, err, "aborted: interrupt") -+ assert.EqualError(t, err, "aborted: Interrupt") - }) - } - ---- gitlab-runner-v12.1.0/executors/custom/executor_integration_test.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/executors/custom/executor_integration_test.go 2020-04-27 00:00:42.493354545 +0000 -@@ -234,7 +234,7 @@ func TestBuildAbort(t *testing.T) { - defer abortTimer.Stop() - - err = runBuild(t, build) -- assert.EqualError(t, err, "aborted: interrupt") -+ assert.EqualError(t, err, "aborted: Interrupt") - }) - } - ---- gitlab-runner-v12.1.0/helpers/shell_escape_test.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/helpers/shell_escape_test.go 2020-04-27 00:02:36.213356343 +0000 -@@ -24,8 +24,8 @@ func TestShellEscape(t *testing.T) { - in string - out string - }{ -- {"standard string", "$'standard string'"}, -- {"+\t\n\r&", "$'+\\t\\n\\r&'"}, -+ {"standard string", "'standard string'"}, -+ {"+\t\n\r&", "'+\t\n\r&'"}, - {"", "''"}, - } - --- gitlab-runner-v12.1.0/common/build_test.go 2019-07-19 12:13:32.000000000 +0000 +++ gitlab-runner-v12.1.0/common/build_test.go 2020-04-27 00:23:35.173376249 +0000 -@@ -1133,7 +1133,7 @@ func TestWaitForTerminal(t *testing.T) { +@@ -1255,7 +1255,7 @@ func TestWaitForTerminal(t *testing.T) { }, jobTimeout: 3600, waitForTerminalTimeout: time.Hour, diff --git a/user/glibmm/APKBUILD b/user/glibmm/APKBUILD index 1f43d2223..a3a74e1c5 100644 --- a/user/glibmm/APKBUILD +++ b/user/glibmm/APKBUILD @@ -10,7 +10,7 @@ options="!check" license="GPL-2.0+ AND LGPL-2.1+" depends="glib-networking" makedepends="doxygen glib-dev>=2.60.0 graphviz libsigc++-dev meson ninja - cmd:xsltproc" + libxslt" subpackages="$pkgname-dev $pkgname-doc" source="https://download.gnome.org/sources/glibmm/${pkgver%.*}/glibmm-$pkgver.tar.xz" diff --git a/user/glm/APKBUILD b/user/glm/APKBUILD index 54c1d2be6..17f12e864 100644 --- a/user/glm/APKBUILD +++ b/user/glm/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=glm pkgver=0.9.9.5 -pkgrel=0 +pkgrel=1 pkgdesc="C++ header-only mathematics library for graphics programming" url="https://glm.g-truc.net/" arch="noarch" @@ -14,25 +14,25 @@ builddir="$srcdir/$pkgname" replaces="glm-dev" build() { - mkdir build - cd build + mkdir -p build - cmake .. \ + # See #1170, and upstream#1087 + export CXXFLAGS="$CXXFLAGS -fno-ipa-modref -fno-stack-protector" + cmake \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_LIBDIR=lib \ - -DGLM_TEST_ENABLE=bool:ON - make + -DGLM_TEST_ENABLE=bool:ON \ + -Bbuild + make -C build } check() { - cd build - make test + make -C build test } package() { - cd build - make install DESTDIR="$pkgdir" + make -C build install DESTDIR="$pkgdir" } sha512sums="ea4f03d31596e27bd8c3d8d0a82a3ae0050ec0df5a747f3d92e467eacab579bb8b191499cb63bf8574da7a1085b9fe6dd7cd0ce93b758d8d7978b2389cc58b94 glm-0.9.9.5.zip diff --git a/user/gnucobol/APKBUILD b/user/gnucobol/APKBUILD index 39889457a..f0807703b 100644 --- a/user/gnucobol/APKBUILD +++ b/user/gnucobol/APKBUILD @@ -13,7 +13,7 @@ depends="db-dev gmp-dev json-c-dev libxml2-dev ncurses-dev" makedepends="autoconf automake help2man libtool texinfo" subpackages="$pkgname-doc $pkgname-lang" source="https://ftp.gnu.org/gnu/gnucobol/gnucobol-$pkgver.tar.xz - https://www.itl.nist.gov/div897/ctg/suites/newcob.val.Z + https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/newcob.val.Z 0001-move-packed-decimal.patch 0002-errno.patch diff --git a/user/gprbuild/APKBUILD b/user/gprbuild/APKBUILD index 9400b0400..da94aa56d 100644 --- a/user/gprbuild/APKBUILD +++ b/user/gprbuild/APKBUILD @@ -1,8 +1,6 @@ # Maintainer: Samuel Holland <samuel@sholland.org> pkgname=gprbuild -pkgver=2020 -_pkgver=2020-20200814-19ABE -_xmlver=2020-20200814-19BC4 +pkgver=24.0.0 pkgrel=0 pkgdesc="An advanced build system for multi-language systems" url="https://github.com/AdaCore/gprbuild" @@ -11,14 +9,19 @@ options="!check" # No test suite. license="GPL-3.0+" depends="" makedepends="gcc-gnat" -source="$pkgname-$_pkgver-src.tar.gz::https://community.download.adacore.com/v1/4e13d41920eac86fd139b5d7984eb908d697d868?filename=$pkgname-$_pkgver-src.tar.gz - xmlada-$_xmlver-src.tar.gz::https://community.download.adacore.com/v1/9cf1ab59b526d1260e007fa9719126c5498632d2?filename=xmlada-$_xmlver-src.tar.gz +source="https://github.com/AdaCore/gprbuild/archive/v$pkgver/$pkgname-$pkgver.tar.gz + https://github.com/AdaCore/xmlada/archive/v$pkgver/xmlada-$pkgver.tar.gz foxkit.xml " -builddir="$srcdir/$pkgname-$_pkgver-src" + +prepare() { + default_prepare + ln -s gpr-util-put_resource_usage__unix.adb \ + "$builddir"/gpr/src/gpr-util-put_resource_usage.adb +} build() { - xmlada="../xmlada-$_xmlver-src" + xmlada="../xmlada-$pkgver" incflags="-Isrc -Igpr/src -I$xmlada/dom -I$xmlada/input_sources \ -I$xmlada/sax -I$xmlada/schema -I$xmlada/unicode" gcc -c ${CFLAGS} gpr/src/gpr_imports.c -o gpr_imports.o @@ -40,13 +43,13 @@ package() { cp gprlib gprbind \ "$pkgdir"/usr/libexec/gprbuild mkdir -p "$pkgdir"/usr/share/gpr - cp share/_default.gpr \ + cp share/_default.gpr share/share.gpr \ "$pkgdir"/usr/share/gpr mkdir -p "$pkgdir"/usr/share/gprconfig - cp share/gprconfig/* "$srcdir"/foxkit.xml \ + cp "$srcdir"/foxkit.xml \ "$pkgdir"/usr/share/gprconfig } -sha512sums="cd9cb2a1f7867f17a5b69d8500476f3a97ca4856b171344d3bf887f55a4860d0ae32ec89ad82e9c7cec13fa20e58cd8ab890554115774095111ed38f9760050e gprbuild-2020-20200814-19ABE-src.tar.gz -51365bc1baaa0886caf46d75d3d27d56b37d5a02f04673321a60bda14a2adda0edd43321f8b34583d4aeaf852f4a21a924f841899c458076b3f261d881bb29a1 xmlada-2020-20200814-19BC4-src.tar.gz +sha512sums="09da4d54f2f151e9f9453e1a459533e2373eb5d4c51831be2bf90964ebcf653752de2f8b271c77f7b599f62146516fc60258ec3c96779fa2b52cd52979c6bd03 gprbuild-24.0.0.tar.gz +4e6773a5fdf9b6ebb5afca913d77aba9f697768f28ef9b23b9277aa4ea4ce09de4e53655dd5559e2326ff847327adb53fa6b776775aa923100a2624df415c97d xmlada-24.0.0.tar.gz e369c094963d3dcfb03d7ac0949825531bae6410ef9c4bec774cb0da70d2bd4a784bdec37db5151c0371ce769712ee02fc04f36896ccc8bddcdb585c1ee8dbbc foxkit.xml" diff --git a/user/grfcodec/APKBUILD b/user/grfcodec/APKBUILD index c240a647a..e571af644 100644 --- a/user/grfcodec/APKBUILD +++ b/user/grfcodec/APKBUILD @@ -1,27 +1,33 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=grfcodec -pkgver=6.0.6 +pkgver=6.1.0 pkgrel=0 pkgdesc="Tool for manipulating OpenTTD GRF files" -url="https://dev.openttdcoop.org/projects/grfcodec" +url=" " arch="all" options="!check" # No test suite. license="GPL-2.0-only" depends="" -makedepends="boost-dev" +makedepends="boost-dev cmake" subpackages="$pkgname-doc" -source="https://cdn.openttd.org/$pkgname-releases/$pkgver/$pkgname-$pkgver-source.tar.xz - va_copy.patch - " +source="https://github.com/OpenTTD/$pkgname/releases/download/$pkgver/$pkgname-$pkgver-source.tar.xz" build() { - make + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + ${CMAKE_CROSSOPTS} -Bbuild + make -C build } package() { - make prefix=/usr DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" make -C build install } -sha512sums="543123c794bfdb5b6556f7a897bcd2f3bdd09be8ad6a4ff07b138e0cac62621a4801c732bb20099c1bb383ad5822fc4ade276d49acf2744c811edd10d7699480 grfcodec-6.0.6-source.tar.xz -4e7034132f889ac62b82d08dae8c928c8a7efd5a0c3dc0d3f35d6c394fb78082a37a22678c5a428489bd26608d868054131a14fb10201d5ce478d46eb9c96890 va_copy.patch" +sha512sums="9129e0f38b151e11c90585e0fe966e042ad08ec90f800ee80f749865aed6c72c733639b8d02ecd613409f2a0ae6d1f72fa1d3524f7c450a0f06ff42ee170f16f grfcodec-6.1.0-source.tar.xz" diff --git a/user/grfcodec/va_copy.patch b/user/grfcodec/va_copy.patch deleted file mode 100644 index 04a549d60..000000000 --- a/user/grfcodec/va_copy.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- grfcodec-6.0.6/src/sanity_defines.h.old 2015-05-09 10:59:46.000000000 +0000 -+++ grfcodec-6.0.6/src/sanity_defines.h 2019-01-14 19:17:36.690000000 +0000 -@@ -77,10 +77,10 @@ - ~apWrapper(){va_end(_ap);} - operator va_list&(){return _ap;} - operator const va_list&()const{return _ap;} --#ifdef __va_copy -+#ifdef va_copy - va_list&operator=(va_list&ap){ -- __va_copy(_ap,ap); -- return _ap; -+ va_copy(_ap,ap); -+ return _ap; - } - #else - va_list const&operator=(va_list const&ap){ diff --git a/user/groff/APKBUILD b/user/groff/APKBUILD index 1045af000..f183b51a6 100644 --- a/user/groff/APKBUILD +++ b/user/groff/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=groff pkgver=1.22.4 -pkgrel=0 +pkgrel=1 pkgdesc="GNU troff text-formatting system" url="https://www.gnu.org/software/groff/groff.html" arch="all" @@ -30,6 +30,9 @@ package() { make DESTDIR="$pkgdir" install rm -rf "$pkgdir"/usr/lib/charset.alias rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true + + #1086 + rm -v "$pkgdir"/usr/share/man/man7/roff.7 } sha512sums="1c42d3cd71efaf067b5850945d9097fa1f0fadd5e2b6ba7446bd9d4f439fe1ad058e4ddb0d4e0f503682137dfc7c822944ce1e3e5cf981673f8ba197ea77126d groff-1.22.4.tar.gz" diff --git a/user/grub/APKBUILD b/user/grub/APKBUILD index 8b365fc0b..82605a4c9 100644 --- a/user/grub/APKBUILD +++ b/user/grub/APKBUILD @@ -3,7 +3,7 @@ pkgname=grub pkgver=2.12_rc1 _pkgver=$(printf '%s' "$pkgver" | tr _ \~) -pkgrel=0 +pkgrel=2 pkgdesc="Boot loader with support for Linux, Multiboot and more" url="https://www.gnu.org/software/grub/" arch="all" @@ -58,6 +58,7 @@ _build_flavor() { flavor="$1" shift _configure="$@" + CFLAGS="${CFLAGS} -fno-reorder-functions" # Workaround for image#403 case $CTARGET_ARCH in ppc64) export CFLAGS="${CFLAGS} -mno-altivec";; # Workaround for http://savannah.gnu.org/bugs/?52629 esac @@ -168,13 +169,19 @@ xenhost() { ieee1275() { pkgdesc="$pkgdesc (IEEE-1275 OpenFirmware version)" - case $CTARGETARCH in + case $CTARGET_ARCH in ppc*) depends="$pkgname powerpc-utils" esac mkdir -p "$subpkgdir"/usr/lib/grub mv "$pkgdir"/usr/lib/grub/*-ieee1275 "$subpkgdir"/usr/lib/grub/ } +uboot() { + pkgdesc="$pkgdesc (U-Boot version)" + mkdir -p "$subpkgdir"/usr/lib/grub + mv "$pkgdir"/usr/lib/grub/*-uboot "$subpkgdir"/usr/lib/grub/ +} + mount() { pkgdesc="Utility to mount filesystems using GRUB modules" depends="$pkgname" diff --git a/user/gsl/APKBUILD b/user/gsl/APKBUILD index 35d6417dd..8c694d429 100644 --- a/user/gsl/APKBUILD +++ b/user/gsl/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gsl -pkgver=2.7.1 -pkgrel=2 +pkgver=2.8 +pkgrel=0 pkgdesc="Modern numerical library for C and C++" url="https://www.gnu.org/software/gsl/gsl.html" arch="all" @@ -12,6 +12,7 @@ makedepends="" subpackages="$pkgname-dev $pkgname-doc" source="https://ftp.gnu.org/gnu/gsl/gsl-$pkgver.tar.gz gsl-2.4-portable.patch + static-inline.patch " prepare() { @@ -19,7 +20,7 @@ prepare() { case "$CTARGET_ARCH" in pmmx) #763 (applies to this entire block) - override="multifit_nlinear multilarge_nlinear"; + override="multifit_nlinear multilarge_nlinear specfunc"; for k in $override; do sed -i $k/Makefile.in \ -e '/^CFLAGS = /s/$/ -O0/g' \ @@ -64,5 +65,6 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3300a748b63b583374701d5ae2a9db7349d0de51061a9f98e7c145b2f7de9710b3ad58b3318d0be2a9a287ace4cc5735bb9348cdf48075b98c1f6cc1029df131 gsl-2.7.1.tar.gz -f6a22e82c8f4a1d5ea7b647cbd015cdb9d2e4e9d39728e8f2dba3fdefac64d3f7c8fbc5ec597e6ab315ec1bd49e0e3af4aba091b358a68d9d789884331f4be24 gsl-2.4-portable.patch" +sha512sums="4427f6ce59dc14eabd6d31ef1fcac1849b4d7357faf48873aef642464ddf21cc9b500d516f08b410f02a2daa9a6ff30220f3995584b0a6ae2f73c522d1abb66b gsl-2.8.tar.gz +f6a22e82c8f4a1d5ea7b647cbd015cdb9d2e4e9d39728e8f2dba3fdefac64d3f7c8fbc5ec597e6ab315ec1bd49e0e3af4aba091b358a68d9d789884331f4be24 gsl-2.4-portable.patch +7aa882af7136b6948124885eec6b9bdb2703f581d1656488a6aab8c48f601690fa87f2d6d2566c3a8fa200a5c09310ee076aec847779490ff02e03a5bcd0a2a0 static-inline.patch" diff --git a/user/gsl/static-inline.patch b/user/gsl/static-inline.patch new file mode 100644 index 000000000..4f89f30da --- /dev/null +++ b/user/gsl/static-inline.patch @@ -0,0 +1,12 @@ +diff -ur a/gsl_inline.h b/gsl_inline.h +--- a/gsl_inline.h 2024-06-05 08:59:43.655369544 -0500 ++++ b/gsl_inline.h 2024-06-05 09:00:02.707862690 -0500 +@@ -49,7 +49,7 @@ + #ifdef HAVE_INLINE + # if defined(__GNUC_STDC_INLINE__) || defined(GSL_C99_INLINE) || defined(HAVE_C99_INLINE) + # define INLINE_DECL inline /* use C99 inline */ +-# define INLINE_FUN inline ++# define INLINE_FUN static inline + # else + # define INLINE_DECL /* use GNU extern inline */ + # define INLINE_FUN extern inline diff --git a/user/gst-plugins-bad/APKBUILD b/user/gst-plugins-bad/APKBUILD index 2ddff96a5..badfd94c0 100644 --- a/user/gst-plugins-bad/APKBUILD +++ b/user/gst-plugins-bad/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gst-plugins-bad pkgver=1.20.2 -pkgrel=1 +pkgrel=2 pkgdesc="GStreamer multimedia framework - Lower-quality plugins" url="https://gstreamer.freedesktop.org/modules/gst-plugins-good.html" arch="all" @@ -23,6 +23,7 @@ source="https://gstreamer.freedesktop.org/src/$pkgname/$pkgname-$pkgver.tar.xz curlhttpsrc.patch mpegts.patch fix-arm-test-alignment.patch + fix-arm-parser-alignment.patch " build() { @@ -47,4 +48,5 @@ sha512sums="3f98973dc07ead745418e0a30f9f6b5c8d328e3d126f54d92c10ab5da04271768a5c 7f6023e766895ac8213f9dabd4d8acbeb03f18c2d98fa27865e7656c439e0ea97d02f9e9f0ea98205238ddb8f6473062af524b799d1da0cbe41a3055a11df250 camerabin.patch d4bf36560db0e6391cfca84f928d7147bb6b170431c521e78253b29f6bccf122309e1f92e241808855dfa112b9a06e17c1b6ed4363e011a0693f82e1bfe7ea3e curlhttpsrc.patch d70f409f86b072d689d51b87db6e9fb161c0914a381eccbf66f1ffcd61b9a793f9e4087cdd071e615aaa63687c6ee476f023239920dd1ebd0d3cde346031dc86 mpegts.patch -566fbdc37c9f9fb5b671ecffa2f596a95f6431668ff8dd8b91bc827a280b5fb18a8fac3122a38f060263cb3f2d2138805af1e1c324eb619188f982c8cc575221 fix-arm-test-alignment.patch" +566fbdc37c9f9fb5b671ecffa2f596a95f6431668ff8dd8b91bc827a280b5fb18a8fac3122a38f060263cb3f2d2138805af1e1c324eb619188f982c8cc575221 fix-arm-test-alignment.patch +f394b1643a5d0943e8acd7e9ee11702ce3bbfb27242f3eac140b884ce7bb5dea725ab4bb0a28cbf9d435622dcc68ea0ee0bee1c51a520787c382167dd1e43583 fix-arm-parser-alignment.patch" diff --git a/user/gst-plugins-bad/fix-arm-parser-alignment.patch b/user/gst-plugins-bad/fix-arm-parser-alignment.patch new file mode 100644 index 000000000..63715380e --- /dev/null +++ b/user/gst-plugins-bad/fix-arm-parser-alignment.patch @@ -0,0 +1,32 @@ +This patch differs from upstream in the following way(s): + + * Paths changed to accommodate 'builddir' + +From 10930661ee8ab2f43078ece482c33ca74c2440fb Mon Sep 17 00:00:00 2001 +From: Zach van Rijn <me@zv.io> +Date: Thu, 13 Jun 2024 09:11:30 -0500 +Subject: [PATCH] pcapparse: Avoid unaligned memory access + +Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3602 +--- + subprojects/gst-plugins-bad/gst/pcapparse/gstpcapparse.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/subprojects/gst-plugins-bad/gst/pcapparse/gstpcapparse.c b/subprojects/gst-plugins-bad/gst/pcapparse/gstpcapparse.c +index 53e7ef6fc25..0a9c9a6063b 100644 +--- a/gst/pcapparse/gstpcapparse.c ++++ b/gst/pcapparse/gstpcapparse.c +@@ -456,8 +456,8 @@ gst_pcap_parse_scan_frame (GstPcapParse * self, + return FALSE; + + /* ip info */ +- ip_src_addr = *((guint32 *) (buf_ip + 12)); +- ip_dst_addr = *((guint32 *) (buf_ip + 16)); ++ memcpy(&ip_src_addr, buf_ip + 12, sizeof(ip_src_addr)); ++ memcpy(&ip_dst_addr, buf_ip + 16, sizeof(ip_dst_addr)); + buf_proto = buf_ip + ip_header_size; + ip_packet_len = GUINT16_FROM_BE (*(guint16 *) (buf_ip + 2)); + +-- +GitLab + diff --git a/user/gtkmm+3.0/APKBUILD b/user/gtkmm+3.0/APKBUILD index e877b5902..659a58def 100644 --- a/user/gtkmm+3.0/APKBUILD +++ b/user/gtkmm+3.0/APKBUILD @@ -10,7 +10,7 @@ options="!check" # Tests require X license="GPL-2.0+ AND LGPL-2.1+" depends="" makedepends="atkmm-dev cairomm-dev doxygen glibmm-dev graphviz gtk+3.0-dev - meson ninja pangomm-dev cmd:xsltproc" + meson ninja pangomm-dev libxslt" subpackages="$pkgname-dev $pkgname-doc" source="https://download.gnome.org/sources/gtkmm/${pkgver%.*}/gtkmm-$pkgver.tar.xz" builddir="$srcdir/gtkmm-$pkgver" diff --git a/user/gucharmap/APKBUILD b/user/gucharmap/APKBUILD index 6900c5ba2..fff7df30b 100644 --- a/user/gucharmap/APKBUILD +++ b/user/gucharmap/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=gucharmap -pkgver=15.0.2 -_unicode=15.0.0 +pkgver=15.1.5 +_unicode=15.1.0 pkgrel=0 pkgdesc="Unicode utility for the Gnome desktop environment" url="https://live.gnome.org/Gucharmap" @@ -34,4 +34,4 @@ package() { DESTDIR="$pkgdir" ninja -C output install } -sha512sums="0583ab6f2c14dfd61c612921ffcd98d3741371f01fc4aee9dfb7469bfe4f42a28d56cedf5d6a1d0e1fa42d20133775eda9874fa8eb65fe2293e89a1ac2397199 gucharmap-15.0.2.tar.gz" +sha512sums="941157982bd2097cdb34ae36373f42f564c9b5eb94bc1334dfa277070223114f0d0e99c68a72939d27e2a997ba015da7373337b921c9b583c3c3ef9ab9f7d79c gucharmap-15.1.5.tar.gz" diff --git a/user/gvfs/APKBUILD b/user/gvfs/APKBUILD new file mode 100644 index 000000000..c4422873d --- /dev/null +++ b/user/gvfs/APKBUILD @@ -0,0 +1,45 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=gvfs +pkgver=1.52.2 +pkgrel=0 +pkgdesc="GObject-based virtual filesystem library" +url="https://www.gnome.org" +arch="all" +license="LGPL-2.0+ AND GPL-3.0-only AND BSD-3-Clause AND MPL-2.0" +depends="" +makedepends="meson ninja avahi-dev dbus-dev elogind-dev fuse3-dev gcr3-dev + glib-dev gobject-introspection-dev gsettings-desktop-schemas-dev + libarchive-dev libbluray-dev libcap-dev libcdio-paranoia-dev + libgcrypt-dev libgphoto2-dev libgudev-dev libimobiledevice-dev + libmtp-dev libnfs-dev libsecret-dev libsoup3-dev libusb-dev polkit-dev + udisks2-dev vala-dev" +subpackages="$pkgname-dev $pkgname-lang" +source="https://download.gnome.org/sources/gvfs/${pkgver%.*}/gvfs-$pkgver.tar.xz" + +build() { + meson setup \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + --wrap-mode=nofallback \ + -Dsystemduserunitdir=no \ + -Dtmpfilesdir=no \ + -Dgoa=false \ + -Dsmb=false \ + -Dgoogle=false \ + . output + meson compile -C output +} + +check() { + meson test -C output +} + +package() { + DESTDIR="$pkgdir" meson install -C output +} + +sha512sums="85684625822a1dcaa2258b7e8389ef53769850d05b7b2538a1335c9e16b882a08a5a33131779a132a2bf7ed23875f16791238fcdebc9cf3e543050d64aee8331 gvfs-1.52.2.tar.xz" diff --git a/user/gvim/APKBUILD b/user/gvim/APKBUILD index a5a12359f..e1dcb3852 100644 --- a/user/gvim/APKBUILD +++ b/user/gvim/APKBUILD @@ -5,7 +5,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=gvim _pkgreal=vim -pkgver=9.0.1385 +pkgver=9.1.0378 pkgrel=0 pkgdesc="advanced text editor" url="http://www.vim.org" @@ -19,6 +19,22 @@ source="$_pkgreal-$pkgver.tar.gz::https://github.com/$_pkgreal/$_pkgreal/archive builddir="$srcdir/$_pkgreal-$pkgver" # secfixes: +# 9.1.0148-r0: +# - CVE-2023-4752 +# - CVE-2023-4781 +# - CVE-2023-5344 +# - CVE-2023-5441 +# - CVE-2023-5535 +# - CVE-2023-46246 +# - CVE-2023-48231 +# - CVE-2023-48232 +# - CVE-2023-48233 +# - CVE-2023-48234 +# - CVE-2023-48235 +# - CVE-2023-48236 +# - CVE-2023-48237 +# - CVE-2023-48706 +# - CVE-2024-22667 # 9.0.1385-r0: # - CVE-2023-0049 # - CVE-2023-0051 @@ -78,4 +94,4 @@ package() { ln -s gvim rgvim } -sha512sums="807f53451a5d6a38eb35c1a79c8dbd7a54e74b6e3f4f93099900579668254948231c56a97bcd9cbb3d9ba4f63a8042062395351dcfb23fd7e390f8d8eb97c106 vim-9.0.1385.tar.gz" +sha512sums="d1c31de1e39bd3504a462aa324b699bb81ff11717171529047e5518c9bb2aec651b0b40a18b66f4df92a1b2065abc68a523df61681f32228839e69ba0f383e6b vim-9.1.0378.tar.gz" diff --git a/user/hexchat/APKBUILD b/user/hexchat/APKBUILD index 29581f0d1..1a310c13e 100644 --- a/user/hexchat/APKBUILD +++ b/user/hexchat/APKBUILD @@ -1,24 +1,24 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=hexchat -pkgver=2.14.3 +pkgver=2.16.2 pkgrel=0 pkgdesc="GTK-based IRC client" url="https://hexchat.org" arch="all" options="!check" # no tests license="GPL-2.0+ AND Custom:Expat AND LGPL-2.0+ AND LGPL-2.1+" -depends="" +depends="py3-cffi" makedepends="meson ninja openssl-dev libproxy-dev libcanberra-dev dbus-glib-dev libnotify-dev iso-codes-dev lua5.3-dev perl-dev python3-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" -source="https://dl.hexchat.net/hexchat/hexchat-$pkgver.tar.xz" +source="$pkgname-$pkgver.tar.gz::https://github.com/hexchat/hexchat/archive/refs/tags/v$pkgver.tar.gz" builddir="$srcdir/hexchat-$pkgver" build() { - meson \ + meson setup \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ @@ -26,11 +26,11 @@ build() { --buildtype=release \ -Dwith-lua=lua \ . output - ninja -C output + meson compile -C output } package() { - DESTDIR="$pkgdir" ninja -C output install + DESTDIR="$pkgdir" meson install -C output } -sha512sums="c265921f2cb02c5d273bcdbb20a44a5c9f38b0f8cbba4fd56b177b676fc5d1dfd05bf80fcfa3706c7981f712f2f6c9aaaf80bccf3be0f6d96068dd393f3a7cb5 hexchat-2.14.3.tar.xz" +sha512sums="ed0015d369574207c762eb7340ed1db1541d627f8aa9f0b93aa9079e30097c63be45ce363e9b8cdd68fd7df53fc2ff1f719a0e1d615edd2d5596438d5e00a38d hexchat-2.16.2.tar.gz" diff --git a/user/horizon/APKBUILD b/user/horizon/APKBUILD index 92ec869e5..260ddc9b6 100644 --- a/user/horizon/APKBUILD +++ b/user/horizon/APKBUILD @@ -1,12 +1,12 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=horizon -pkgver=0.9.7 -pkgrel=0 +pkgver=0.9.8.1 +pkgrel=1 pkgdesc="Installation tools for Adélie Linux" url="https://horizon.adelielinux.org/" arch="all" -options="!archcheck !check" # Unpackaged dependency ruby-aruba. +options="!archcheck !check suid" # Unpackaged dependency ruby-aruba. license="AGPL-3.0+" depends="" checkdepends="ruby-aruba ruby-rspec valgrind" @@ -14,10 +14,12 @@ checkdepends="ruby-aruba ruby-rspec valgrind" makedepends="bcnm-dev boost-dev cmake curl-dev eudev-dev libarchive-dev linux-headers parted-dev skalibs-dev util-linux-dev - libcap-dev libx11-dev libxkbfile-dev qt5-qtbase-dev" + libcap libcap-dev libx11-dev libxkbfile-dev qt5-qtbase-dev" subpackages="$pkgname-image $pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-qt5 $pkgname-tools $pkgname-wizard $pkgname-boot" -source="https://distfiles.adelielinux.org/source/horizon-$pkgver.tar.xz" +source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver.tar.xz + apm-disklabel.patch + " build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -28,7 +30,7 @@ build() { -DBUILD_SHARED_LIBS=True \ -DBUILD_TOOLS=ON \ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-format-truncation" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-format-truncation -Wno-type-limits" \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DUNSUPPORTED_NONFREE_FIRMWARE=ON \ -DINSTALL=ON \ @@ -61,7 +63,7 @@ package() { image() { pkgdesc="Tools for generating images using HorizonScript" - depends="dracut mtools" + depends="dracut mtools squashfs-tools xorriso" mkdir -p "$subpkgdir"/usr/bin mkdir -p "$subpkgdir"/usr/lib mkdir -p "$subpkgdir"/usr/share/horizon @@ -81,6 +83,10 @@ qt5() { for _bin in horizon-ppc64-detect horizon-qt5 horizon-run-qt5; do mv "$pkgdir"/usr/bin/$_bin "$subpkgdir"/usr/bin/ done + + chmod 4755 "$subpkgdir"/usr/bin/horizon-run-qt5 + chmod 1777 "$subpkgdir"/etc/horizon + /usr/sbin/setcap cap_sys_time+ep "$subpkgdir"/usr/bin/horizon-qt5 } tools() { @@ -103,12 +109,12 @@ wizard() { boot() { pkgdesc="Boot to Horizon" - depends="horizon-qt5 horizon kwin qt5ct sddm + depends="horizon-qt5 horizon kwin papirus-icons qt5ct sddm netsurf partitionmanager xterm" mkdir -p "$subpkgdir"/etc/init.d mkdir -p "$subpkgdir"/etc/profile.d - mkdir -p "$subpkgdir"/etc/runlevels/default + mkdir -p "$subpkgdir"/etc/runlevels/graphical mkdir -p "$subpkgdir"/etc/sddm.conf.d mkdir -p "$subpkgdir"/etc/xdg/qt5ct mkdir -p "$subpkgdir"/usr/bin @@ -124,7 +130,7 @@ PROFILE cat >"$subpkgdir"/etc/xdg/kdeglobals <<GLOBALS [General] ColorScheme=Steel - + [Icons] Theme=Papirus @@ -139,7 +145,7 @@ GLOBALS "$subpkgdir"/etc/init.d/gfxdetect ln -s ../../init.d/gfxdetect \ - "$subpkgdir"/etc/runlevels/default/gfxdetect + "$subpkgdir"/etc/runlevels/graphical/gfxdetect install -D -m755 "$builddir"/boot/start-horizon-qt5 \ "$subpkgdir"/usr/bin/start-horizon-qt5 @@ -156,4 +162,5 @@ GLOBALS "$subpkgdir"/usr/share/xsessions/horizon.desktop } -sha512sums="e25238cb6a9610088840277d1497841ac7e2dc68912784ee12e9321ba7f5f27d9621d4cc26af910ba048d8a9a0460910dbb36fd21c35db64833f525a25a3fa56 horizon-0.9.7.tar.xz" +sha512sums="3a34019d50cd711f868855b120a362ce67308e9eb9b32fab0a8936d393541f93beca76efe161c7d635f215445989176a7089d2df0d6fcb071428b4c1cf1ae252 horizon-0.9.8.1.tar.xz +1d92232b3118444973a0917777a1787e3e20b6d5a8da22f0031e37d94f6c1d9df0f05aa9228d3b24c414185f6a2c9c9401534f381b4195830cd5b1469cf23f46 apm-disklabel.patch" diff --git a/user/horizon/apm-disklabel.patch b/user/horizon/apm-disklabel.patch new file mode 100644 index 000000000..368aa8b05 --- /dev/null +++ b/user/horizon/apm-disklabel.patch @@ -0,0 +1,75 @@ +From 5df1abdb743ac71986cabe8c76dcd9a0f75e44da Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Thu, 25 Apr 2024 23:27:30 -0500 +Subject: [PATCH] Qt UI: Fix partition count for APM disklabel + +The APM disklabel includes a meta partition for the partition map +itself. This is always counted by parted as a partition, and is *not* +considered to be a metadata partition. We therefore need to start our +partitioning at #2 on APM, not #1. + +Closes: #376 +--- + CHANGELOG.rst | 14 +++++++++++++- + ui/qt5/horizonwizard.cc | 6 ++++-- + 2 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/CHANGELOG.rst b/CHANGELOG.rst +index 7afcb34..b944410 100644 +--- a/CHANGELOG.rst ++++ b/CHANGELOG.rst +@@ -5,7 +5,19 @@ + * **A. Wilcox**, documentation writer + * **Contributors**, code + :Copyright: +- © 2019-2023 Adélie Linux and contributors. ++ © 2019-2024 Adélie Linux and contributors. ++ ++ ++ ++0.9.9 (2024-??-??) ++================== ++ ++Qt UI ++----- ++ ++* The Qt UI now counts APM partition map partitions when creating APM ++ disklabels, fixing a long-standing bug when installing to an empty disk ++ on PowerPC Macintosh systems. + + + +diff --git a/ui/qt5/horizonwizard.cc b/ui/qt5/horizonwizard.cc +index 298cd15..2872eb6 100644 +--- a/ui/qt5/horizonwizard.cc ++++ b/ui/qt5/horizonwizard.cc +@@ -400,7 +400,8 @@ QString nameForPartitionOnDisk(const std::string &dev, int part) { + /*! Determine the correct disk label based on the target platform. */ + QStringList eraseDiskForArch(const std::string &raw_disk, + HorizonWizard::Arch arch, +- HorizonWizard::Subarch subarch) { ++ HorizonWizard::Subarch subarch, ++ int *start) { + const auto disk = QString::fromStdString(raw_disk); + + switch(arch) { +@@ -412,6 +413,7 @@ QStringList eraseDiskForArch(const std::string &raw_disk, + case HorizonWizard::ppc64: /* Complicated */ + switch(subarch) { + case HorizonWizard::ppc64_PowerMac: ++ (*start)++; + return {QString{"disklabel %1 apm"}.arg(disk)}; + case HorizonWizard::ppc64_PowerNV: + return {QString{"disklabel %1 gpt"}.arg(disk)}; +@@ -620,7 +622,7 @@ QString HorizonWizard::toHScript() { + int start = 1; + + if(erase) { +- lines << eraseDiskForArch(chosen_disk, arch, subarch); ++ lines << eraseDiskForArch(chosen_disk, arch, subarch, &start); + } else { + /* This branch will be taken when "use available space" is back. */ + Q_ASSERT(false); +-- +2.40.0 + diff --git a/user/htop/APKBUILD b/user/htop/APKBUILD index 69994dfab..602b2b9f1 100644 --- a/user/htop/APKBUILD +++ b/user/htop/APKBUILD @@ -1,20 +1,17 @@ # Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=htop -pkgver=2.2.0 -pkgrel=1 +pkgver=3.3.0 +pkgrel=0 pkgdesc="Interactive process viewer" -url="http://hisham.hm/htop" +url="https://htop.dev/" arch="all" options="!check" # No test suite. license="GPL-2.0+" depends="" makedepends="libexecinfo-dev ncurses-dev python3" subpackages="$pkgname-doc" -source="http://hisham.hm/htop/releases/$pkgver/$pkgname-$pkgver.tar.gz - correctness.patch - fix-python-path.patch - " +source="https://github.com/htop-dev/htop/releases/download/$pkgver/$pkgname-$pkgver.tar.xz" build() { LIBS="-lexecinfo" ./configure \ @@ -23,9 +20,7 @@ build() { --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ - --localstatedir=/var \ - --enable-cgroup \ - --enable-taskstats + --localstatedir=/var make } @@ -33,6 +28,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ec1335bf0e3e0387e5e50acbc508d0effad19c4bc1ac312419dc97b82901f4819600d6f87a91668f39d429536d17304d4b14634426a06bec2ecd09df24adc62e htop-2.2.0.tar.gz -010ca1d42caeea133ba3d0383373a8eca849c73c95bb98fe3222c458c44320d1e2a3aee9431213721f1ccfcbd5af54eb1e54fafd6e0e5ca3b87499ee6d04b49a correctness.patch -16358bcd6d83181cc04dd8a7971f7cc0804dc49995208bad2042bcca7962f562bbd008c2185f24aa6186c58896e94e4ec02e2053dc46ed14789889d64836b679 fix-python-path.patch" +sha512sums="f98d4a4370954969d0ae16993d80ca5ce48670a711f17445de979513ac9caf2b197291732d937ae07d48709ded660ea09601b3a41ad7c48b3abb87e7a67deb65 htop-3.3.0.tar.xz" diff --git a/user/htop/correctness.patch b/user/htop/correctness.patch deleted file mode 100644 index 51a9848d2..000000000 --- a/user/htop/correctness.patch +++ /dev/null @@ -1,78 +0,0 @@ -From: Jonathan Currier <dullfire@yahoo.com> - -diff --git a/MainPanel.h b/MainPanel.h -index 8849659..471870b 100644 ---- a/MainPanel.h -+++ b/MainPanel.h -@@ -12,6 +12,7 @@ in the source distribution for its full text. - #include "Panel.h" - #include "Action.h" - #include "Settings.h" -+#include "union-arg.h" - - typedef struct MainPanel_ { - Panel super; -@@ -21,11 +22,6 @@ typedef struct MainPanel_ { - pid_t pidSearch; - } MainPanel; - --typedef union { -- int i; -- void* v; --} Arg; -- - typedef bool(*MainPanel_ForeachProcessFn)(Process*, Arg); - - #define MainPanel_getFunctionBar(this_) (((Panel*)(this_))->defaultBar) -diff --git a/Process.c b/Process.c -index 471f529..ae617a6 100644 ---- a/Process.c -+++ b/Process.c -@@ -548,7 +548,9 @@ bool Process_changePriorityBy(Process* this, int delta) { - return Process_setPriority(this, this->nice + delta); - } - --void Process_sendSignal(Process* this, int sgn) { -+ -+void Process_sendSignal(Process* this, Arg arg) { -+ int sgn = arg.i; - CRT_dropPrivileges(); - kill(this->pid, (int) sgn); - CRT_restorePrivileges(); -diff --git a/Process.h b/Process.h -index f702ca0..3011845 100644 ---- a/Process.h -+++ b/Process.h -@@ -29,6 +29,7 @@ in the source distribution for its full text. - #include "Object.h" - - #include <sys/types.h> -+#include "union-arg.h" - - #define PROCESS_FLAG_IO 0x0001 - -@@ -199,7 +200,7 @@ bool Process_setPriority(Process* this, int priority); - - bool Process_changePriorityBy(Process* this, int delta); - --void Process_sendSignal(Process* this, int sgn); -+void Process_sendSignal(Process* this, Arg arg); - - long Process_pidCompare(const void* v1, const void* v2); - -diff --git a/union-arg.h b/union-arg.h -new file mode 100644 -index 0000000..5c8a094 ---- /dev/null -+++ b/union-arg.h -@@ -0,0 +1,9 @@ -+#ifndef UNION_ARG_HEADER -+#define UNION_ARG_HEADER -+ -+typedef union { -+ int i; -+ void* v; -+} Arg; -+ -+#endif - diff --git a/user/htop/fix-python-path.patch b/user/htop/fix-python-path.patch deleted file mode 100644 index 4d11bfb4a..000000000 --- a/user/htop/fix-python-path.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- a/scripts/MakeHeader.py -+++ b/scripts/MakeHeader.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - import os, sys, string, io - try: - from StringIO import StringIO diff --git a/user/hyfetch/APKBUILD b/user/hyfetch/APKBUILD new file mode 100644 index 000000000..990857b46 --- /dev/null +++ b/user/hyfetch/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Zach van Rijn <me@zv.io> +# Maintainer: Zach van Rijn <me@zv.io> +pkgname=hyfetch +pkgver=1.4.11 +pkgrel=0 +pkgdesc="Neofetch with LGBTQ+ pride flags!" +url="https://github.com/hykilpikonna/hyfetch" +arch="noarch" +options="!check" # no test suite +license="MIT" +depends="bash python3" +makedepends="python3" +provides="neofetch" +replaces="neofetch" +subpackages="$pkgname-doc" +source="$pkgname-$pkgver.tar.gz::https://github.com/hykilpikonna/hyfetch/archive/refs/tags/$pkgver.tar.gz + python3.patch + no-typing-extensions.patch + " + +build() { + # this builds hyfetch; neofetch does not need to be "built" + make +} + +package() { + python3 setup.py install --prefix=/usr --root="$pkgdir" + make DESTDIR="$pkgdir" install-neofetch install-doc +} + +sha512sums="13c757fed68c9aa1caa503553d6d29c0b68284029090b970b863dec3240dabb28a852ef0ec0f2742c6c268e30a15c48018a651e74ba0e6782b5aa14f2b1d1312 hyfetch-1.4.11.tar.gz +059f8e8293ae82c209e67b059f13e277ce10cc6bf96e6bc1f1459a79f986f733c24ea2b7a5ac1d871432359d5d8154622562de506624be353f8aa7d8561179d7 python3.patch +4a983329d3bd3165eca86ce8c907945178becba0fd7d4b6381adab64c92938d52225a349325931ff69e7fa87f9c529d6d9758f00170dcbb375ea4e44aeb0e403 no-typing-extensions.patch" diff --git a/user/hyfetch/no-typing-extensions.patch b/user/hyfetch/no-typing-extensions.patch new file mode 100644 index 000000000..196a30dba --- /dev/null +++ b/user/hyfetch/no-typing-extensions.patch @@ -0,0 +1,21 @@ +diff -ur a/hyfetch/types.py b/hyfetch/types.py +--- a/hyfetch/types.py 2023-12-04 14:12:43.498520221 -0600 ++++ b/hyfetch/types.py 2023-12-04 14:14:58.530114564 -0600 +@@ -1,4 +1,4 @@ +-from typing_extensions import Literal ++from typing import Literal + + AnsiMode = Literal['default', 'ansi', '8bit', 'rgb'] + LightDark = Literal['light', 'dark'] +diff -ur a/setup.py b/setup.py +--- a/setup.py 2023-12-04 14:12:43.498520221 -0600 ++++ b/setup.py 2023-12-04 14:13:04.931087575 -0600 +@@ -37,7 +37,7 @@ + include_package_data=True, + install_requires=[ + # Universal dependencies +- 'setuptools', 'typing_extensions', ++ 'setuptools', + + # Windows dependencies + 'psutil ; platform_system=="Windows"', diff --git a/user/hyfetch/python3.patch b/user/hyfetch/python3.patch new file mode 100644 index 000000000..28256fdbe --- /dev/null +++ b/user/hyfetch/python3.patch @@ -0,0 +1,16 @@ +diff -ur a/Makefile b/Makefile +--- a/Makefile 2023-12-04 13:31:47.347258438 -0600 ++++ b/Makefile 2023-12-04 13:31:56.611544557 -0600 +@@ -4,10 +4,10 @@ + all: build + + build: +- python setup.py build ++ python3 setup.py build + + install: +- python setup.py install --prefix=${PREFIX} ++ python3 setup.py install --prefix=${PREFIX} + + install-doc: + @mkdir -p $(DESTDIR)$(MANDIR)/man1 diff --git a/user/i3lock/APKBUILD b/user/i3lock/APKBUILD index a84c7b712..098767d75 100644 --- a/user/i3lock/APKBUILD +++ b/user/i3lock/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr> # Maintainer: Max Rees <maxcrees@me.com> pkgname=i3lock -pkgver=2.12 +pkgver=2.15 pkgrel=0 pkgdesc="Simple X11 screen locker" url="https://i3wm.org/i3lock/" @@ -9,33 +9,18 @@ arch="all" options="!check" # No test suite. license="MIT" depends="xkeyboard-config" -makedepends="cairo-dev libev-dev libxkbcommon-dev linux-pam-dev cmd:which +makedepends="cairo-dev libev-dev libxkbcommon-dev linux-pam-dev meson xcb-util-image-dev xcb-util-xrm-dev" subpackages="$pkgname-doc" -source="$url/$pkgname-$pkgver.tar.bz2" - -prepare() { - default_prepare - # At present, this has no functional difference. - # But when we start developing our PAM stack into something more - # mature, this will be important, because i3lock runs unprivileged. - sed -i -e 's:login:base-auth:g' pam/i3lock -} +source="$url/$pkgname-$pkgver.tar.xz" build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --localstatedir=/var - - make + meson setup -Dprefix=/usr build + meson compile -C build } package() { - make DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" meson install -C build } -sha512sums="84f1558368381bcad9a64f41ab6134a6614dea453d1ee5ecfe886185b9e1baebeeca446c4635158deb8dae5b25c09d47d3990239d76c44e5325ca5bfaad9b2ad i3lock-2.12.tar.bz2" +sha512sums="6079f5233c0820c6e38f3cd8f3732d585e95e7d670408e4fb18ab580a2e1face8f3d6ea13eaaeedc8671f74def917183667e736b35306bf7c630d40625b41ac2 i3lock-2.15.tar.xz" diff --git a/user/icewm/APKBUILD b/user/icewm/APKBUILD index ab50b0022..f7a848f42 100644 --- a/user/icewm/APKBUILD +++ b/user/icewm/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=icewm -pkgver=3.3.2 +pkgver=3.5.0 pkgrel=0 pkgdesc="A window manager designed for speed, usability, and consistency" url="https://github.com/bbidulock/icewm" @@ -35,4 +35,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c29b0d9330ec4fd00f7236dd32423aceb0ec9c5050181a178da74c656935a4d0c1197eefba88331275510065f403d9679aedbcdebaccf460a4dfa499691612d7 icewm-3.3.2.tar.lz" +sha512sums="946f622ec88c04756919a8dff1cc44154225a020f98e5fdd9a5c58fd81bb82b98f566930821a3965c0c1f99edfa4c75ef7f7c074f05cf0a71545b3ed2fc72659 icewm-3.5.0.tar.lz" diff --git a/user/iotop-c/APKBUILD b/user/iotop-c/APKBUILD new file mode 100644 index 000000000..b8c65e6bf --- /dev/null +++ b/user/iotop-c/APKBUILD @@ -0,0 +1,27 @@ +# Contributor: Zach van Rijn <me@zv.io> +# Maintainer: Zach van Rijn <me@zv.io> +pkgname=iotop-c +pkgver=1.25 +pkgrel=0 +pkgdesc="A 'top' utility for I/O" +url="https://github.com/Tomas-M/iotop" +arch="all" +options="!check" # no test suite +license="GPL-2.0+" +depends="" +makedepends="ncurses-dev" +provides="iotop" +replaces="iotop" +subpackages="$pkgname-doc" +source="https://github.com/Tomas-M/iotop/releases/download/v$pkgver/iotop-$pkgver.tar.xz" +builddir="$srcdir"/iotop-$pkgver + +build() { + make +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="ee51c6c42b85684a00afb4e52b071d446263b579706d1dab7497e5b0e01da5f839185b4404e464ff7d300ff975283331e1f15c033bd66f7d6e2611ccddf39f18 iotop-1.25.tar.xz" diff --git a/user/irssi/APKBUILD b/user/irssi/APKBUILD index 6fdd8e86d..a1ecc8ca4 100644 --- a/user/irssi/APKBUILD +++ b/user/irssi/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=irssi -pkgver=1.2.3 +pkgver=1.4.5 pkgrel=0 pkgdesc="Text-based IRC client" url="https://irssi.org" @@ -48,4 +48,4 @@ perl() { mv "$pkgdir"/usr/lib "$subpkgdir"/usr mv "$pkgdir"/usr/share/irssi/scripts "$subpkgdir"/usr/share/irssi } -sha512sums="826b7bfd86a54647f2d344b6c461e1118b7382fb1637cf33c395af41a9a4ca5d8a794a415f0f0737178968cf2463bb46a0e7b7fd7014c968668b16183e0644bc irssi-1.2.3.tar.xz" +sha512sums="5d80107ad625feb6d2b3ac807f517c5cfeae58986d3fbfe53ea82f2dee70396f5092abdc6ef137c5651e4515e081591079b37f0e428f69990db493cfe14e4f36 irssi-1.4.5.tar.xz" diff --git a/user/kaffeine/APKBUILD b/user/kaffeine/APKBUILD index 40c15bb0a..bcc1faa94 100644 --- a/user/kaffeine/APKBUILD +++ b/user/kaffeine/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kaffeine pkgver=2.0.18 -pkgrel=0 +pkgrel=1 pkgdesc="Media player with a focus on Digital TV (DVB)" url="https://www.kde.org/applications/multimedia/kaffeine/" arch="all" diff --git a/user/kde/APKBUILD b/user/kde/APKBUILD index e09259513..824673457 100644 --- a/user/kde/APKBUILD +++ b/user/kde/APKBUILD @@ -1,14 +1,14 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde pkgver=5 -pkgrel=4 +pkgrel=5 pkgdesc="The K Desktop Environment" url="https://www.kde.org/" arch="noarch" options="!check" # Metapacakge license="NCSA" subpackages="" -depends="adelie-kde-theme +depends="adelie-fonts adelie-kde-theme kde-development kde-education kde-games kde-graphics kde-internet kde-multimedia kde-system kde-utilities plasma-desktop plasma-meta diff --git a/user/krb5/APKBUILD b/user/krb5/APKBUILD index 731bc7c08..030f62fe3 100644 --- a/user/krb5/APKBUILD +++ b/user/krb5/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=krb5 -pkgver=1.18.2 +pkgver=1.21.2 pkgrel=0 case $pkgver in *.*.*) _ver=${pkgver%.*};; @@ -9,17 +9,16 @@ esac pkgdesc="The Kerberos network authentication system" url="http://web.mit.edu/kerberos/www/" arch="all" -options="suid !check" # Tests require Python 2. +options="suid !check" # FIXME license="MIT" depends="krb5-conf" depends_dev="e2fsprogs-dev" makedepends="$depends_dev keyutils-dev libverto-dev openssl-dev byacc flex perl" +checkdepends="python3" subpackages="$pkgname-dev $pkgname-doc $pkgname-pkinit $pkgname-server $pkgname-libs" -source="http://web.mit.edu/kerberos/dist/krb5/${_ver}/krb5-$pkgver.tar.gz - mit-krb5_krb5-config_LDFLAGS.patch - +source="https://web.mit.edu/kerberos/dist/krb5/${_ver}/krb5-$pkgver.tar.gz krb5kadmind.initd krb5kdc.initd krb5kpropd.initd @@ -45,6 +44,23 @@ build() { make } +check() { + cd "$builddir"/src + + # temporarily skip tests that fail to run out of the box + # (refer to comments on !743) + sed -i tests/Makefile \ + -e '/^SUBDIRS =/s@gssapi@@g' \ + -e '/t_keytab/d' \ + ; + make check + + # manually run skipped tests + make -C tests/gssapi check + #PYTHONPATH=util python3 tests/t_keytab.py -v +} + + package() { cd "$builddir"/src make install DESTDIR="$pkgdir" @@ -87,8 +103,7 @@ libs() { mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ } -sha512sums="7cbb1b28e677fea3e0794e93951f3caaa2c49bb1175dd187951e72a466cc69d96c3b833d838000fe911c1a437d96a558e550f27c53a8b332fb9dfc7cbb7ec44c krb5-1.18.2.tar.gz -5a3782ff17b383f8cd0415fd13538ab56afd788130d6ad640e9f2682b7deaae7f25713ce358058ed771091040dccf62a3bc87e6fd473d505ec189a95debcc801 mit-krb5_krb5-config_LDFLAGS.patch +sha512sums="4e09296b412383d53872661718dbfaa90201e0d85f69db48e57a8d4bd73c95a90c7ec7b6f0f325f6bc967f8d203b256b071c0191facf080aca0e2caec5d0ac49 krb5-1.21.2.tar.gz 43b9885b7eb8d0d60920def688de482f2b1701288f9acb1bb21dc76b2395428ff304961959eb04ba5eafd0412bae35668d6d2c8223424b9337bc051eadf51682 krb5kadmind.initd ede15f15bbbc9d0227235067abe15245bb9713aea260d397379c63275ce74aea0db6c91c15d599e40c6e89612d76f3a0f8fdd21cbafa3f30d426d4310d3e2cec krb5kdc.initd 45be0d421efd41e9dd056125a750c90856586e990317456b68170d733b03cba9ecd18ab87603b20e49575e7839fb4a6d628255533f2631f9e8ddb7f3cc493a90 krb5kpropd.initd" diff --git a/user/krb5/mit-krb5_krb5-config_LDFLAGS.patch b/user/krb5/mit-krb5_krb5-config_LDFLAGS.patch deleted file mode 100644 index 1b8508673..000000000 --- a/user/krb5/mit-krb5_krb5-config_LDFLAGS.patch +++ /dev/null @@ -1,12 +0,0 @@ -Bug #448778 ---- krb5-1.11/src/build-tools/krb5-config.in 2012-12-18 02:47:04.000000000 +0000 -+++ krb5-1.11/src/build-tools/krb5-config.in 2012-12-28 07:13:16.582693363 +0000 -@@ -217,7 +217,7 @@ - -e 's#\$(PROG_RPATH)#'$libdir'#' \ - -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \ - -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \ -- -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \ -+ -e 's#\$(LDFLAGS)##' \ - -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \ - -e 's#\$(CFLAGS)##'` - diff --git a/user/kscreen/APKBUILD b/user/kscreen/APKBUILD new file mode 100644 index 000000000..8450a0259 --- /dev/null +++ b/user/kscreen/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox-kde@adelielinux.org> +pkgname=kscreen +pkgver=5.24.5 +pkgrel=0 +pkgdesc="KDE Plasma screen management software (user-facing)" +url="https://www.kde.org/" +arch="all" +options="!check" # Requires dbus-x11 and both of them running +license="LGPL-2.1+ AND GPL-2.0+ AND (GPL-2.0-only OR GPL-3.0-only)" +depends="" +makedepends="$depends_dev cmake extra-cmake-modules qt5-qtx11extras-dev + qt5-qtsensors-dev libxcb-dev kcmutils-dev kconfig-dev kdbusaddons-dev + kdeclarative-dev kglobalaccel-dev ki18n-dev kiconthemes-dev kxmlgui-dev + plasma-framework-dev libkscreen-dev libxi-dev kauth-dev kcodecs-dev + kcoreaddons-dev kpackage-dev kservice-dev" +subpackages="$pkgname-lang" +source="https://download.kde.org/stable/plasma/$pkgver/kscreen-$pkgver.tar.xz" + +build() { + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + ${CMAKE_CROSSOPTS} . + make +} + +check() { + CTEST_OUTPUT_ON_FAILURE=TRUE ctest +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="770dfb968f8f8bf96b6ad3bf71f18f5baca35b2a4daa72b8806957ad1e050003158319edba84ebf999134e106ef916d829d391c33d79c58edb1000f503f67c97 kscreen-5.24.5.tar.xz" diff --git a/user/libcanberra/APKBUILD b/user/libcanberra/APKBUILD index 89e7c9613..055f57d61 100644 --- a/user/libcanberra/APKBUILD +++ b/user/libcanberra/APKBUILD @@ -72,7 +72,7 @@ gtk3() { gstreamer() { pkgdesc="GStreamer backend for libcanberra" - install_if="$pkgname=$pkgver-$pkgrel gstreamer" + install_if="$pkgname=$pkgver-r$pkgrel gstreamer" mkdir -p "$subpkgdir"/usr/lib/libcanberra-$pkgver mv "$pkgdir"/usr/lib/libcanberra-$pkgver/libcanberra-gstreamer.so \ "$subpkgdir"/usr/lib/libcanberra-$pkgver/ @@ -80,7 +80,7 @@ gstreamer() { pulse() { pkgdesc="PulseAudio backend for libcanberra" - install_if="$pkgname=$pkgver-$pkgrel pulseaudio" + install_if="$pkgname=$pkgver-r$pkgrel pulseaudio" mkdir -p "$subpkgdir"/usr/lib/libcanberra-$pkgver mv "$pkgdir"/usr/lib/libcanberra-$pkgver/libcanberra-pulse.so \ "$subpkgdir"/usr/lib/libcanberra-$pkgver/ diff --git a/user/libcdio-paranoia/APKBUILD b/user/libcdio-paranoia/APKBUILD index 4fc2e1167..4d570c0ed 100644 --- a/user/libcdio-paranoia/APKBUILD +++ b/user/libcdio-paranoia/APKBUILD @@ -9,11 +9,18 @@ arch="all" license="GPL-2.0+ AND LGPL-2.0+" depends="" depends_dev="ncurses-dev" -makedepends="$depends_dev libcdio-dev" +makedepends="$depends_dev libcdio-dev autoconf automake libtool" subpackages="$pkgname-dev $pkgname-doc" -source="https://ftp.gnu.org/gnu/libcdio/$pkgname-$_pkgver.tar.bz2" +source="https://ftp.gnu.org/gnu/libcdio/$pkgname-$_pkgver.tar.bz2 + pkg-version-format.patch + " builddir="$srcdir/$pkgname-$_pkgver" +prepare() { + default_prepare + autoreconf -vif +} + build() { ./configure \ --build=$CBUILD \ @@ -35,4 +42,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c4a768d11e9f62038ca8081316596c89c7fee6a314229fb42e3999757fae172a5dc167175f60d555c2442266d34fce6ce627f4124e9f3a93d0456adb09ca91f0 libcdio-paranoia-10.2+2.0.1.tar.bz2" +sha512sums="c4a768d11e9f62038ca8081316596c89c7fee6a314229fb42e3999757fae172a5dc167175f60d555c2442266d34fce6ce627f4124e9f3a93d0456adb09ca91f0 libcdio-paranoia-10.2+2.0.1.tar.bz2 +addcc8c2b6f62218c855d1d2ce71406626ece0a669bad89a1375d32de3991b7496b53b196d7754e75382d297b860a6c3dc1305d32aa94073eb827848d5d01c6c pkg-version-format.patch" diff --git a/user/libcdio-paranoia/pkg-version-format.patch b/user/libcdio-paranoia/pkg-version-format.patch new file mode 100644 index 000000000..5dc7cd286 --- /dev/null +++ b/user/libcdio-paranoia/pkg-version-format.patch @@ -0,0 +1,14 @@ +Upstream-Status: Not appropriate (apk bustage) +See-also: https://git.adelielinux.org/adelie/packages/-/issues/1132 + +--- libcdio-paranoia-10.2+2.0.1/configure.ac.old 2019-09-16 09:30:01.000000000 -0500 ++++ libcdio-paranoia-10.2+2.0.1/configure.ac 2023-12-01 01:24:10.923099071 -0600 +@@ -16,7 +16,7 @@ + + define(RELEASE_NUM, 2.0.1) + define(PARANOIA_VERSION, 10.2) +-define(LIBCDIO_PARANOIA_VERSION_STR, $1+$2) ++define(LIBCDIO_PARANOIA_VERSION_STR, $1.$2) + + AC_DEFINE([PACKAGE], [libcdio-paranoia], [cdparanoia using libcdio]) + diff --git a/user/libebml/APKBUILD b/user/libebml/APKBUILD index c7b2b1093..dc05db886 100644 --- a/user/libebml/APKBUILD +++ b/user/libebml/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: pkgname=libebml -pkgver=1.4.0 +pkgver=1.4.4 pkgrel=0 pkgdesc="Library to parse Extensible Binary Meta-Language files" url="https://www.matroska.org/" @@ -28,4 +28,4 @@ package() { make install DESTDIR="$pkgdir" } -sha512sums="db78ee560a44b90b4df12ba23a00f8ccb0d3626f44296af6b79a492a00126690582764c6be6c9e9851302a0d0d70edfbe000cc217c5532abe862a821624af230 libebml-1.4.0.tar.xz" +sha512sums="24f2bf51cd71f583bdd3bb33dbf20b5adeb8e96345de3abf3014f3ae1b0610c1bd04b802f26b4a1a26f884a696d6accf784bed1510f12538a6664cbd9ae51d6d libebml-1.4.4.tar.xz" diff --git a/user/libetonyek/APKBUILD b/user/libetonyek/APKBUILD index feada550a..3b40c1484 100644 --- a/user/libetonyek/APKBUILD +++ b/user/libetonyek/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=libetonyek pkgver=0.1.10 -pkgrel=1 +pkgrel=2 pkgdesc="Import filter and tools for Apple iWork documents" url="https://wiki.documentfoundation.org/DLP/Libraries/libetonyek" arch="all" @@ -13,7 +13,7 @@ checkdepends="cppunit-dev" makedepends="$depends_dev librevenge-dev liblangtag-dev zlib-dev libxml2-dev gperf doxygen mdds" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools" -source="http://dev-www.libreoffice.org/src/$pkgname/$pkgname-$pkgver.tar.xz" +source="https://dev-www.libreoffice.org/src/$pkgname/$pkgname-$pkgver.tar.xz" build() { ./configure \ @@ -26,7 +26,7 @@ build() { --localstatedir=/var \ --disable-werror \ --disable-static \ - --with-mdds=2.0 + --with-mdds=2.1 make } diff --git a/user/libevent/APKBUILD b/user/libevent/APKBUILD index 4270e1fd3..52f553215 100644 --- a/user/libevent/APKBUILD +++ b/user/libevent/APKBUILD @@ -3,7 +3,7 @@ pkgname=libevent pkgver=2.1.13_pre1 pkgdate=20220114 -pkgrel=0 +pkgrel=1 pkgdesc="An event notification library" url="https://libevent.org/" arch="all" @@ -27,7 +27,10 @@ source="https://distfiles.adelielinux.org/source/$pkgname-$pkgver-$pkgdate.tar.g builddir="$srcdir"/$pkgname-$pkgver-$pkgdate prepare() { + default_prepare ./autogen.sh + # See: adelie/packages#1132 + sed -i -e "s/@VERSION@/$pkgver-r$pkgrel/" *.pc.in } build() { @@ -51,7 +54,6 @@ package() { dev() { replaces="libevent" default_dev - provides="$provides pc:libevent=$pkgver-r$pkgrel" mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ } diff --git a/user/libfm-qt/APKBUILD b/user/libfm-qt/APKBUILD index 049750cb7..d1023dca3 100644 --- a/user/libfm-qt/APKBUILD +++ b/user/libfm-qt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=libfm-qt -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt library for file management and bindings for libfm" @@ -9,7 +9,7 @@ url="https://lxqt.github.io/" arch="all" options="!check" # No test suite. license="LGPL-2.1+" -depends="" +depends="lxqt-menu-data" depends_dev="libfm-dev menu-cache-dev libexif-dev" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt qt5-qttools-dev qt5-qtx11extras-dev $depends_dev" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="fd7ecc1a8e94893682b7e0ca76805b36dbf184a4f2f7d84008ef81ea2257d994db0f8f8e18f890b8554fd1f20e23f8d7f20cf6b3112b32d66c969b683f8db3ba libfm-qt-1.3.0.tar.xz" +sha512sums="d5a9bbb1f295dfbe88add760fc9c8da60771d4d49b64408b1278315b52dd071d7e24dbc9ff8354f0c68e5ad58e809e78a2dae77e2d4f52cd8e0b8409c0d7f5cb libfm-qt-1.4.0.tar.xz" diff --git a/user/libgnt/APKBUILD b/user/libgnt/APKBUILD index bd4b921c4..55703f4e8 100644 --- a/user/libgnt/APKBUILD +++ b/user/libgnt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libgnt -pkgver=2.14.0 +pkgver=2.14.3 pkgrel=0 pkgdesc="Glib Ncurses Toolkit" url="https://pidgin.im/" @@ -12,6 +12,7 @@ makedepends="glib-dev gtk-doc meson ncurses-dev ninja" subpackages="$pkgname-dev $pkgname-doc" source="https://downloads.sourceforge.net/pidgin/libgnt-$pkgver.tar.xz tinfo.patch + ncurses.patch " build() { @@ -20,7 +21,7 @@ build() { --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ - --buildtype=release \ + -Dpython2=false \ . output ninja -C output } @@ -33,5 +34,6 @@ package() { DESTDIR="$pkgdir" ninja -C output install } -sha512sums="0d9c5550374696a0e6ede5246cda3c372d7055d21b9ffaf10be88d6a469bdf18c7dd1113ec612acf4889c0e5686ea87bb0e8348ca8985fd5ff8913afc5813b38 libgnt-2.14.0.tar.xz -56ce8dab03e74714ecfe0cb7dd274c5fce996d84793fff5e247ee329b1c5bebf2d933b96cc6fe916dafb4f402269d3b1b8cacda07deff4c149869d509ee5c416 tinfo.patch" +sha512sums="7131834cfe585177865bebf26167de08a04fced3da4e9a072d9b09b3becd1194914757b1a1fc8f129ae6c8fefe3ec1ce0d80d6c50cb624a5698b66ee2e06c6c8 libgnt-2.14.3.tar.xz +56ce8dab03e74714ecfe0cb7dd274c5fce996d84793fff5e247ee329b1c5bebf2d933b96cc6fe916dafb4f402269d3b1b8cacda07deff4c149869d509ee5c416 tinfo.patch +cfdd0667238948ac45ce992c3b0ef7aa90fc9c8a06ee695d5b516deac17e3e57460dbb3072ee0248ada3bf5d24d2a75736259dd873a6c72483a1040259831b49 ncurses.patch" diff --git a/user/libgnt/ncurses.patch b/user/libgnt/ncurses.patch new file mode 100644 index 000000000..0d91c2dbf --- /dev/null +++ b/user/libgnt/ncurses.patch @@ -0,0 +1,62 @@ +# HG changeset patch +# Node ID 7c4e8ad1e3c7 +# Parent 73d8724225e7 +diff --git a/gntwm.c b/gntwm.c +--- a/gntwm.c ++++ b/gntwm.c +@@ -166,38 +166,40 @@ + int sx, ex, sy, ey, w, y; + cchar_t ch; + PANEL *below = panel; ++ WINDOW *window = panel_window(panel); + +- sx = getbegx(panel->win); +- ex = getmaxx(panel->win) + sx; +- sy = getbegy(panel->win); +- ey = getmaxy(panel->win) + sy; ++ sx = getbegx(window); ++ ex = getmaxx(window) + sx; ++ sy = getbegy(window); ++ ey = getmaxy(window) + sy; + + while ((below = panel_below(below)) != NULL) { +- if (sy > getbegy(below->win) + getmaxy(below->win) || +- ey < getbegy(below->win)) ++ window = panel_window(below); ++ if (sy > getbegy(window) + getmaxy(window) || ++ ey < getbegy(window)) + continue; +- if (sx > getbegx(below->win) + getmaxx(below->win) || +- ex < getbegx(below->win)) ++ if (sx > getbegx(window) + getmaxx(window) || ++ ex < getbegx(window)) + continue; +- for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) { +- if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK) ++ for (y = MAX(sy, getbegy(window)); y <= MIN(ey, getbegy(window) + getmaxy(window)); y++) { ++ if (mvwin_wch(window, y - getbegy(window), sx - 1 - getbegx(window), &ch) != OK) + goto right; + w = widestringwidth(ch.chars); + if (w > 1 && (ch.attr & 1)) { + ch.chars[0] = ' '; + ch.attr &= ~ A_CHARTEXT; +- mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch); +- touchline(below->win, y - getbegy(below->win), 1); ++ mvwadd_wch(window, y - getbegy(window), sx - 1 - getbegx(window), &ch); ++ touchline(window, y - getbegy(window), 1); + } + right: +- if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK) ++ if (mvwin_wch(window, y - getbegy(window), ex + 1 - getbegx(window), &ch) != OK) + continue; + w = widestringwidth(ch.chars); + if (w > 1 && !(ch.attr & 1)) { + ch.chars[0] = ' '; + ch.attr &= ~ A_CHARTEXT; +- mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch); +- touchline(below->win, y - getbegy(below->win), 1); ++ mvwadd_wch(window, y - getbegy(window), ex + 1 - getbegx(window), &ch); ++ touchline(window, y - getbegy(window), 1); + } + } + } diff --git a/user/libgphoto2/APKBUILD b/user/libgphoto2/APKBUILD index e152d5e7b..ce6ffa88c 100644 --- a/user/libgphoto2/APKBUILD +++ b/user/libgphoto2/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: pkgname=libgphoto2 pkgver=2.5.25 -pkgrel=0 +pkgrel=1 pkgdesc="Digital camera library" url="http://www.gphoto.org" arch="all" @@ -9,7 +9,7 @@ options="libtool" license="LGPL-2.1+" depends="" depends_dev="libexif-dev libusb-dev" -makedepends="$depends_dev libjpeg-turbo-dev libtool" +makedepends="$depends_dev libjpeg-turbo-dev libtool libxml2-dev" install="$pkgname.pre-install $pkgname.pre-upgrade" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" source="https://downloads.sourceforge.net/gphoto/libgphoto2-$pkgver.tar.bz2" diff --git a/user/libimobiledevice/APKBUILD b/user/libimobiledevice/APKBUILD new file mode 100644 index 000000000..f8bea18dc --- /dev/null +++ b/user/libimobiledevice/APKBUILD @@ -0,0 +1,38 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=libimobiledevice +pkgver=1.3.0 +pkgrel=0 +pkgdesc="Library for working with Apple iOS devices" +url="https://libimobiledevice.org/" +arch="all" +license="LGPL-2.1+ AND GPL-2.0+ AND GPL-2.0-only AND MIT" +depends="" +makedepends="gnutls-dev libgcrypt-dev libusbmuxd-dev py3-cython python3-dev" +subpackages="$pkgname-dev $pkgname-doc" +source="https://github.com/libimobiledevice/libimobiledevice/releases/download/$pkgver/libimobiledevice-$pkgver.tar.bz2 + modern-libplist.patch" + +build() { + ln -s /usr/bin/python3 python + export PATH=".:$PATH" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + make check +} + +package() { + make PATH=".:$PATH" DESTDIR="$pkgdir" install +} + +sha512sums="7b22040552a6561729c79c0846f571b0e608abb7c297567d2ecfdd1718ce86df08a5e34ba51f209bdee96a1917da15e7ba3aaef1d289a951d1d3470b1f89e6a8 libimobiledevice-1.3.0.tar.bz2 +3aa60cdbd9539ac55cdd1e8a6d1860ddfcfec6e692ff9e3b0d4620627f5f373872b819a6008a10e8669ee5772234e4a8a66c1dab89803d401503ee43f51f0a6c modern-libplist.patch" diff --git a/user/libimobiledevice/modern-libplist.patch b/user/libimobiledevice/modern-libplist.patch new file mode 100644 index 000000000..eac8a774d --- /dev/null +++ b/user/libimobiledevice/modern-libplist.patch @@ -0,0 +1,34 @@ +Patch-Source: https://github.com/archlinux/svntogit-packages/blob/2f17c7d5c91d164453ea71c28adea93499016af2/trunk/libplist-2.3.0.diff +-- +diff --git i/common/utils.c w/common/utils.c +index 7f66ec2..7ebe997 100644 +--- i/common/utils.c ++++ w/common/utils.c +@@ -314,7 +314,7 @@ int plist_read_from_filename(plist_t *plist, const char *filename) + return 1; + } + +-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format) ++int plist_write_to_filename(plist_t plist, const char *filename, plist_format_t format) + { + char *buffer = NULL; + uint32_t length; +diff --git i/common/utils.h w/common/utils.h +index 2c3acec..4faa5bd 100644 +--- i/common/utils.h ++++ w/common/utils.h +@@ -51,13 +51,8 @@ char *generate_uuid(void); + void buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length); + void buffer_write_to_filename(const char *filename, const char *buffer, uint64_t length); + +-enum plist_format_t { +- PLIST_FORMAT_XML, +- PLIST_FORMAT_BINARY +-}; +- + int plist_read_from_filename(plist_t *plist, const char *filename); +-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format); ++int plist_write_to_filename(plist_t plist, const char *filename, plist_format_t format); + + void plist_print_to_stream(plist_t plist, FILE* stream); + diff --git a/user/libixion/APKBUILD b/user/libixion/APKBUILD index 3cc3e2659..d262e50e6 100644 --- a/user/libixion/APKBUILD +++ b/user/libixion/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: Max Rees <maxcrees@me.com> pkgname=libixion -pkgver=0.17.0 +pkgver=0.19.0 pkgrel=0 pkgdesc="A general purpose formula parser & interpreter" url="https://gitlab.com/ixion/ixion" @@ -9,14 +9,15 @@ arch="all" license="MPL-2.0" depends="" depends_dev="mdds" -makedepends="$depends_dev boost-dev spdlog autoconf automake libtool cmd:which" +makedepends="$depends_dev boost-dev spdlog" subpackages="$pkgname-dev" -source="https://gitlab.com/ixion/ixion/-/archive/$pkgver/ixion-$pkgver.tar.bz2" - -builddir="$srcdir/ixion-$pkgver" +source="https://gitlab.com/api/v4/projects/ixion%2Fixion/packages/generic/source/$pkgver/$pkgname-$pkgver.tar.xz" build() { - ./autogen.sh \ + # GCC 13 changed default fp precision behavior. (#1193, #1214) + export CXXFLAGS="${CXXFLAGS} -fexcess-precision=fast" + + ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ @@ -41,4 +42,4 @@ dev() { mv "$pkgdir"/usr/bin "$subpkgdir"/usr } -sha512sums="f6216b06342c43ddf937bcc7eb3104e500bc10d6798f9b24c92c423bda575ac3f7bdae68bb81b2826c164e7dd19bbef940a3848581c5f9e969a6e70934e58d0a ixion-0.17.0.tar.bz2" +sha512sums="f06edbcf5ae7459a46e01273952ce6fbc4e8f2b7782c7e07645dc30e102f20f542e449acafc26484765207b10656e0b350f4108cbf1e03947ee7267254cf6f97 libixion-0.19.0.tar.xz" diff --git a/user/liblbxutil/APKBUILD b/user/liblbxutil/APKBUILD index 2c7f03f5d..1e3c56c36 100644 --- a/user/liblbxutil/APKBUILD +++ b/user/liblbxutil/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=liblbxutil pkgver=1.1.0 -pkgrel=0 +pkgrel=1 pkgdesc="Utility library for X11 Low Bandwidth extension" url="https://www.X.Org/" arch="all" @@ -10,7 +10,9 @@ license="MIT" depends="" makedepends="xorgproto-dev zlib-dev" subpackages="$pkgname-dev" -source="https://www.x.org/releases/individual/lib/liblbxutil-$pkgver.tar.bz2" +source="https://www.x.org/releases/individual/lib/liblbxutil-$pkgver.tar.bz2 + gcc10.patch + " prepare() { default_prepare @@ -37,4 +39,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="93bdefef297d46a301dd1cab35ad186438e340822ba5aac20e9d8f4c51cd66e4118b0d9f4afc48ef33a67c6e413f551bcb59089d01597ed175b400902b9f23f4 liblbxutil-1.1.0.tar.bz2" +sha512sums="93bdefef297d46a301dd1cab35ad186438e340822ba5aac20e9d8f4c51cd66e4118b0d9f4afc48ef33a67c6e413f551bcb59089d01597ed175b400902b9f23f4 liblbxutil-1.1.0.tar.bz2 +c1abd8d42e11d84019f5bc3e93774a1b65201c9e08b70a5cf0b78680bdc9d6a49043908510c2dccdf1b53dc6b434261377b0330ab603c8d4929cf001b802f44c gcc10.patch" diff --git a/user/liblbxutil/gcc10.patch b/user/liblbxutil/gcc10.patch new file mode 100644 index 000000000..5e9b99d91 --- /dev/null +++ b/user/liblbxutil/gcc10.patch @@ -0,0 +1,18 @@ +--- liblbxutil-1.1.0/src/lbx_zlib/lbx_zlib.h.old 2009-11-02 23:52:21.000000000 -0600 ++++ liblbxutil-1.1.0/src/lbx_zlib/lbx_zlib.h 2024-05-29 21:33:09.169332780 -0500 +@@ -136,9 +136,9 @@ + #endif + + /* lbx_zlib.c */ +-unsigned long stream_out_compressed; +-unsigned long stream_out_uncompressed; +-unsigned long stream_out_plain; +-unsigned long stream_in_compressed; +-unsigned long stream_in_uncompressed; +-unsigned long stream_in_plain; ++extern unsigned long stream_out_compressed; ++extern unsigned long stream_out_uncompressed; ++extern unsigned long stream_out_plain; ++extern unsigned long stream_in_compressed; ++extern unsigned long stream_in_uncompressed; ++extern unsigned long stream_in_plain; diff --git a/user/liblxqt/APKBUILD b/user/liblxqt/APKBUILD index 8292f9894..5e50b5430 100644 --- a/user/liblxqt/APKBUILD +++ b/user/liblxqt/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=liblxqt -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 -_qtxdg=3.11.0 +_qtxdg=3.12.0 pkgrel=0 pkgdesc="Core LXQt library" url="https://lxqt.github.io/" @@ -15,7 +15,8 @@ makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtx11extras-dev qt5-qttools-dev libxscrnsaver-dev libqtxdg-dev>=$_qtxdg kwindowsystem-dev polkit-qt-1-dev lxqt-build-tools>=$_lxqt" subpackages="$pkgname-dev" -source="https://github.com/lxqt/liblxqt/releases/download/$pkgver/liblxqt-$pkgver.tar.xz" +source="https://github.com/lxqt/liblxqt/releases/download/$pkgver/liblxqt-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -36,4 +37,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="71595c98e5236467c96ea903a7326c1ddf04329b34ecce48cda9f55970d4a3b608dd8297a3fc484275fc25d11efa2740837239e4cbf436954d87ee1a0857ba21 liblxqt-1.3.0.tar.xz" +sha512sums="2012bedab77fba7979d456c9e223e6a0a2f86c272d59eb66d3dbb4b028348972789249fa4a3889d419004210b7c5fcd1e989c196bb338ec8caa31bb0eca1d703 liblxqt-1.4.0.tar.xz +5fe9aa14d80a567bf7674c170bc1de8b885029ceaabe555284b1e23c1b9ad46ee21a817431e05c61d938dcf8c5c767235d8a2df11bd8ab0a4588c4177e848dda revert-kwindowsystem-bump.patch" diff --git a/user/liblxqt/revert-kwindowsystem-bump.patch b/user/liblxqt/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..58419a801 --- /dev/null +++ b/user/liblxqt/revert-kwindowsystem-bump.patch @@ -0,0 +1,40 @@ +diff '--color=auto' -Nurd liblxqt-1.4.0/CMakeLists.txt liblxqt-1.4.0.new/CMakeLists.txt +--- liblxqt-1.4.0/CMakeLists.txt 2023-11-05 02:54:50.000000000 -0800 ++++ liblxqt-1.4.0.new/CMakeLists.txt 2023-11-27 06:01:14.963487658 -0800 +@@ -8,7 +8,7 @@ + + + set(LXQTBT_MINIMUM_VERSION "0.13.0") +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(QT_MINIMUM_VERSION "5.15.0") + set(QTXDG_MINIMUM_VERSION "3.12.0") + +diff '--color=auto' -Nurd liblxqt-1.4.0/lxqtsingleapplication.cpp liblxqt-1.4.0.new/lxqtsingleapplication.cpp +--- liblxqt-1.4.0/lxqtsingleapplication.cpp 2023-11-05 02:54:50.000000000 -0800 ++++ liblxqt-1.4.0.new/lxqtsingleapplication.cpp 2023-11-27 06:03:46.852519095 -0800 +@@ -28,7 +28,6 @@ + #include "lxqtsingleapplication.h" + #include "singleapplicationadaptor.h" + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + #include <QDBusMessage> + #include <QWidget> + #include <QDebug> +@@ -99,13 +98,9 @@ + KWindowInfo info(window, KWindowSystem::WMDesktop); + int windowDesktop = info.desktop(); + +- if (windowDesktop != KX11Extras::currentDesktop()) +- KX11Extras::setCurrentDesktop(windowDesktop); +- +- if (QWindow *w = mActivationWindow->windowHandle()) +- KWindowSystem::activateWindow(w); +- else +- qDebug() << Q_FUNC_INFO << "Got null windowHandle"; ++ if (windowDesktop != KWindowSystem::currentDesktop()) ++ KWindowSystem::setCurrentDesktop(windowDesktop); ++ KWindowSystem::activateWindow(window); + } else { + qDebug() << Q_FUNC_INFO << "activationWindow not set or null"; + } diff --git a/user/libmspub/APKBUILD b/user/libmspub/APKBUILD index 0d528f945..67095a16c 100644 --- a/user/libmspub/APKBUILD +++ b/user/libmspub/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=libmspub pkgver=0.1.4 -pkgrel=1 +pkgrel=2 pkgdesc="Import filter and tools for Microsoft Publisher files" url="https://wiki.documentfoundation.org/DLP/Libraries/libmspub" arch="all" @@ -12,7 +12,9 @@ depends="" depends_dev="boost-dev" makedepends="$depends_dev doxygen icu-dev librevenge-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools" -source="http://dev-www.libreoffice.org/src/$pkgname/$pkgname-$pkgver.tar.xz" +source="https://dev-www.libreoffice.org/src/$pkgname/$pkgname-$pkgver.tar.xz + missing-header.patch + " build() { ./configure \ @@ -35,4 +37,5 @@ tools() { mv "$pkgdir"/usr/bin "$subpkgdir"/usr } -sha512sums="7275f890645961b3fd56df4584788962e8c064fe3f99f5834c6ba6177ce76d00d544fbe9a25b7ab2f4180d2f3a90c609fe0bb68d61ea24e95b086190390fff31 libmspub-0.1.4.tar.xz" +sha512sums="7275f890645961b3fd56df4584788962e8c064fe3f99f5834c6ba6177ce76d00d544fbe9a25b7ab2f4180d2f3a90c609fe0bb68d61ea24e95b086190390fff31 libmspub-0.1.4.tar.xz +3293b4e10f91e2df7aa1817709c7370aa3d68dccbd3ad68c2e52add5b8caf8dded36e6778dea5c24a0cc3f40d9b6c0a00e0b62d1e8264c6b085a9f6e773d2cb2 missing-header.patch" diff --git a/user/libmspub/missing-header.patch b/user/libmspub/missing-header.patch new file mode 100644 index 000000000..83b8ef473 --- /dev/null +++ b/user/libmspub/missing-header.patch @@ -0,0 +1,10 @@ +--- libmspub-0.1.4/src/lib/MSPUBMetaData.h.old 2018-02-28 05:54:49.000000000 -0600 ++++ libmspub-0.1.4/src/lib/MSPUBMetaData.h 2024-05-29 21:40:50.140097148 -0500 +@@ -13,6 +13,7 @@ + #include <map> + #include <utility> + #include <vector> ++#include <cstdint> + + #include <librevenge/librevenge.h> + diff --git a/user/libnatpmp/APKBUILD b/user/libnatpmp/APKBUILD index bd2facd27..05f8eaa80 100644 --- a/user/libnatpmp/APKBUILD +++ b/user/libnatpmp/APKBUILD @@ -4,14 +4,14 @@ pkgname=libnatpmp pkgver=20150609 pkgrel=0 pkgdesc="A portable and fully compliant implementation of the NAT-PMP protocol" -url="https://miniupnp.tuxfamily.org/libnatpmp.html" +url="http://miniupnp.free.fr/libnatpmp.html" arch="all" options="!check" license="BSD-3-Clause" depends="" makedepends="" subpackages="$pkgname-dev" -source="https://miniupnp.tuxfamily.org/files/libnatpmp-$pkgver.tar.gz" +source="http://miniupnp.free.fr/files/libnatpmp-$pkgver.tar.gz" build() { make diff --git a/user/libnih/APKBUILD b/user/libnih/APKBUILD index a1bd5883e..523b8a1a9 100644 --- a/user/libnih/APKBUILD +++ b/user/libnih/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libnih pkgver=1.0.3 -pkgrel=6 +pkgrel=7 pkgdesc="GLib-like library for embedded use" url="https://launchpad.net/libnih" arch="all" @@ -18,6 +18,7 @@ source="https://launchpad.net/libnih/${pkgver%.*}/${pkgver}/+download/${pkgname} disable-broken-test.patch musl-enomem-message.patch parse-test-fix.patch + gcc10.patch " prepare() { @@ -48,4 +49,5 @@ sha512sums="fce40d2445b28c27b8838631681ca3206a4f053b2dd4fc488fc9ef98bbd3d933e3d6 77a979b3076c4e4229359f28c2e9d4fb66d799a66d60391ab6fd7e0dfe2a615b88330a979877b105293a95ed147546596eca174f52b75beca0457c49a017d040 musl-fix-signals.patch b5b77b1f18d7aa5d603a0d312b785c28200c38b7bbe5c384ee576c762bd9e3163682c29dd5410baf18c5c3734f0b719602caa1de096f1758d624d94b7753066a disable-broken-test.patch b800c99153ad66c9d7399bc7544a0237de0c7a4ddac129509f13eb1c31805fcac31c93bbf2945da557dfc900c9ec837ec0fded1c3f9887095dae52ff6fc046ec musl-enomem-message.patch -3f24f648c27e9b5a6872859fe97b34055b0f43b11f0321508852b20b6dd94de5c8d24a6dbaab9d49e7004bf0c571c11ebf520d49630d8a89bceeb7783de7dcd2 parse-test-fix.patch" +3f24f648c27e9b5a6872859fe97b34055b0f43b11f0321508852b20b6dd94de5c8d24a6dbaab9d49e7004bf0c571c11ebf520d49630d8a89bceeb7783de7dcd2 parse-test-fix.patch +e2fc351e68ab194723b95a37b4b78c726ef9d7bda173ae51816f979f2f1385f1e776052b75b949cdd794da0cdb53e270fb7a950dc68f2d818ccb1f0013664e0c gcc10.patch" diff --git a/user/libnih/gcc10.patch b/user/libnih/gcc10.patch new file mode 100644 index 000000000..a118b1f53 --- /dev/null +++ b/user/libnih/gcc10.patch @@ -0,0 +1,15 @@ +GCC 10+ use -fno-common by default, which means we need to declare this 'extern'. + +There is no upstream to send this to. + +--- libnih-1.0.3/nih-dbus-tool/output.h.old 2010-09-20 18:17:01.000000000 -0500 ++++ libnih-1.0.3/nih-dbus-tool/output.h 2024-05-28 13:22:58.501847205 -0500 +@@ -27,7 +27,7 @@ + + NIH_BEGIN_EXTERN + +-char *output_package; ++extern char *output_package; + + int output (const char *source_path, int source_fd, + const char *header_path, int header_fd, diff --git a/user/liborcus/APKBUILD b/user/liborcus/APKBUILD index 173452d65..59c3bc2e7 100644 --- a/user/liborcus/APKBUILD +++ b/user/liborcus/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: Max Rees <maxcrees@me.com> pkgname=liborcus -pkgver=0.17.2 +pkgver=0.19.2 pkgrel=0 pkgdesc="Library for processing spreadsheet documents" url="https://gitlab.com/orcus/orcus" @@ -9,16 +9,15 @@ arch="all" license="MPL-2.0 AND MIT" depends="" depends_dev="boost-dev mdds libixion-dev" -makedepends="$depends_dev zlib-dev autoconf automake libtool cmd:which" +makedepends="$depends_dev zlib-dev" subpackages="$pkgname-dev" -source="https://gitlab.com/orcus/orcus/-/archive/$pkgver/orcus-$pkgver.tar.bz2" - -builddir="$srcdir/orcus-$pkgver" +source="https://gitlab.com/api/v4/projects/orcus%2Forcus/packages/generic/source/$pkgver/liborcus-$pkgver.tar.xz" build() { - export LDFLAGS="-lstdc++fs" #826 + # GCC 13 changed default fp precision behavior. (#1193, #1215) + export CXXFLAGS="${CXXFLAGS} -fexcess-precision=fast" - ./autogen.sh \ + ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ @@ -37,4 +36,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="76ec54dc8ee63e2b6487c865483b7c4eb67b47ac5e9be03dd1ad67705659f640b0cb58cc2dc6fef68210879509d1b53fa460c35f3c3c2900d05d1ca9c0d6cfbd orcus-0.17.2.tar.bz2" +sha512sums="c955490f57e91615278a83bb48726025cd5f8059b97ed5532f770199e134ca511c7ee6b0cd0a9d3a2d54208a5fdd19117054e95e818162ea568052fa11b21d4e liborcus-0.19.2.tar.xz" diff --git a/user/libpfm/APKBUILD b/user/libpfm/APKBUILD index d2c501363..063b041d4 100644 --- a/user/libpfm/APKBUILD +++ b/user/libpfm/APKBUILD @@ -1,10 +1,10 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libpfm -pkgver=4.11.0 +pkgver=4.13.0 pkgrel=0 pkgdesc="Performance monitoring library" -url="http://perfmon2.sourceforge.net/" +url="https://perfmon2.sourceforge.net/" arch="all" options="!check" # No test suite. license="MIT" @@ -21,4 +21,4 @@ package() { make PREFIX="/usr" DESTDIR="$pkgdir" install } -sha512sums="633035b8a7b35973437572095cdc80d422b2a1a61e74e14f106db95fa8e44e4518e591699cc457f828b8f2fb63f60eef6d0c7535c6b4c9a6c3a70d4550b3c3c7 libpfm-4.11.0.tar.gz" +sha512sums="e61b210aa2ce80f0e47603c88eee2e4f2fe30ca2c0e194a5472b6a8de3bf9dc1085e5261bbb9ddbe5b6531c4b391fb34f20d038e5ebd8e6f4c14c2112aee508f libpfm-4.13.0.tar.gz" diff --git a/user/libplist/APKBUILD b/user/libplist/APKBUILD new file mode 100644 index 000000000..5df5484de --- /dev/null +++ b/user/libplist/APKBUILD @@ -0,0 +1,35 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=libplist +pkgver=2.3.0 +pkgrel=0 +pkgdesc="Library for working with plist files" +url="https://libimobiledevice.org/" +arch="all" +license="LGPL-2.1+ AND MIT" +depends="" +makedepends="python3-dev py3-cython" +subpackages="$pkgname-dev $pkgname-doc" +source="https://github.com/libimobiledevice/libplist/releases/download/$pkgver/libplist-$pkgver.tar.bz2" + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + # -j1 for #1175 + make -j1 check +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="f2c89b72116a12d516a690dca583eed68fee53510ed461284d6f2840e99431ae406c66abd6758247b659151f1f5decf7189d3fd28f6fa5f076003c800ee2dbc3 libplist-2.3.0.tar.bz2" diff --git a/user/libptytty/APKBUILD b/user/libptytty/APKBUILD new file mode 100644 index 000000000..d12a73c33 --- /dev/null +++ b/user/libptytty/APKBUILD @@ -0,0 +1,43 @@ +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=libptytty +pkgver=2.0 +pkgrel=0 +pkgdesc="OS independent and secure pty/tty and utmp/wtmp/lastlog handling" +url="http://software.schmorp.de/pkg/libptytty.html" +arch="all" +options="!check" # No test suite. +license="GPL-2.0+" +depends="" +makedepends="cmake utmps-dev" +subpackages="$pkgname-dev $pkgname-doc" +source="http://dist.schmorp.de/libptytty/libptytty-$pkgver.tar.gz + force-utmps.patch + " + +build() { + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + export LDFLAGS="$LDFLAGS -Bdynamic" + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + ${CMAKE_CROSSOPTS} \ + -Bbuild + make -C build +} + +check() { + CTEST_OUTPUT_ON_FAILURE=TRUE make -C build test +} + +package() { + make DESTDIR="$pkgdir" -C build install +} + +sha512sums="9cca5fddbcc4025c2bbe043e3367ac902d0024a34301258dafcf0de70935c055279d88227168d112d0e4c0dc37f1f49e1ea587bd6bddf0b9d92400657bc7be08 libptytty-2.0.tar.gz +34155b4c06bb8dc8f78777fd3a9e749b1c3c056bd073fd7a0c85404f1dfe29dae6b2513a1ed8093fd528d0eb30cd463a5896c0d05203f47bb4f9cad8067bec26 force-utmps.patch" diff --git a/user/libptytty/force-utmps.patch b/user/libptytty/force-utmps.patch new file mode 100644 index 000000000..ce9c34d6d --- /dev/null +++ b/user/libptytty/force-utmps.patch @@ -0,0 +1,12 @@ +We need to ensure linkage to utmps, or utmpx won't work. + +--- libptytty-2.0/CMakeLists.txt.old 2021-08-04 09:07:44.000000000 -0500 ++++ libptytty-2.0/CMakeLists.txt 2024-05-30 19:50:40.078963587 -0500 +@@ -318,6 +318,7 @@ + target_link_libraries(ptytty PRIVATE util) + list(APPEND LIBS -lutil) + endif() ++target_link_libraries(ptytty PRIVATE :libutmps.so.0.1) + + configure_file( + libptytty.pc.in diff --git a/user/libqtxdg/APKBUILD b/user/libqtxdg/APKBUILD index c5ea37265..966f672cc 100644 --- a/user/libqtxdg/APKBUILD +++ b/user/libqtxdg/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=libqtxdg -pkgver=3.11.0 +pkgver=3.12.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt5-based library implementing the XDG spec" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="494140fa35e184c128c851f06501b5c62324a796d3f61ed47b750dbdffff756c1a42240d4458797e2f2f01c9b06b997f0fbfc76fe7f99866f7cad084ac1342f7 libqtxdg-3.11.0.tar.xz" +sha512sums="9db46b0dddb027a24e1c19a2e3679014735cc246f15d32bc5fb9e778cd7d8fb57c9b105f819091308002f0a2eff8269920ecc0d7bd5ce8a01fbaf0b37e61a76e libqtxdg-3.12.0.tar.xz" diff --git a/user/libstaroffice/APKBUILD b/user/libstaroffice/APKBUILD index 6f4829b12..dcbe9de45 100644 --- a/user/libstaroffice/APKBUILD +++ b/user/libstaroffice/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: Max Rees <maxcrees@me.com> pkgname=libstaroffice -pkgver=0.0.6 +pkgver=0.0.7 pkgrel=0 pkgdesc="Import filter for StarOffice documents" url="https://github.com/fosnola/libstaroffice" @@ -11,7 +11,9 @@ license="MPL-2.0 OR LGPL-2.0+" depends="" makedepends="boost-dev doxygen librevenge-dev zlib-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools" -source="https://github.com/fosnola/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.xz" +source="https://github.com/fosnola/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.xz + mistake.patch + " build() { ./configure \ @@ -33,4 +35,5 @@ tools() { mv "$pkgdir"/usr/bin "$subpkgdir"/usr } -sha512sums="9b5313a069e29265875f2e744b6b39c261f578d72f67fdefe1454c092aaa28399e1b3dfcb3a2f881f9a60674e0115a29350fba3ee37fb442f0a837982077f324 libstaroffice-0.0.6.tar.xz" +sha512sums="fae873457a8018c1613667aa92771981503585513ab01bdbd2dd6d506ed4f72a7a8fdcfcb8953a46dfcb8fd902d2c9ef8ccd1a5ff15c83990a89847fb98009f8 libstaroffice-0.0.7.tar.xz +f7260246b0fa3005425ed4bab110cb80a499027b54f386307a2d9c8d5609a82f007c7d9196827888631404dfa034ef8709a6a090d62476f3517238ffb3f97128 mistake.patch" diff --git a/user/libstaroffice/mistake.patch b/user/libstaroffice/mistake.patch new file mode 100644 index 000000000..11c558c34 --- /dev/null +++ b/user/libstaroffice/mistake.patch @@ -0,0 +1,22 @@ +From ef427988dd95203938c2f2e8f212347a8c0c678a Mon Sep 17 00:00:00 2001 +From: ALONSO Laurent <laurent.alonso@inria.fr> +Date: Mon, 17 Apr 2023 12:21:36 +0200 +Subject: [PATCH] STOFFStarMathToMMLConverter.cxx: correct a mistake... + +--- + src/lib/STOFFStarMathToMMLConverter.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/STOFFStarMathToMMLConverter.cxx b/src/lib/STOFFStarMathToMMLConverter.cxx +index 99abb73..9457815 100644 +--- a/src/lib/STOFFStarMathToMMLConverter.cxx ++++ b/src/lib/STOFFStarMathToMMLConverter.cxx +@@ -2044,7 +2044,7 @@ bool Parser::convert(librevenge::RVNGString const &starMath, std::vector<LexerDa + done=true; + } + else if (len>=2 && c=='>' && dataList.back().m_string=="?" && +- dataList[len-2].LexerData::Special && dataList[len-2].m_string=="<") { ++ dataList[len-2].m_type==LexerData::Special && dataList[len-2].m_string=="<") { + dataList[len-2].m_type=LexerData::PlaceHolder; + dataList[len-2].m_string="<?>"; + dataList.resize(len-1); diff --git a/user/libusbmuxd/APKBUILD b/user/libusbmuxd/APKBUILD new file mode 100644 index 000000000..0deaf2220 --- /dev/null +++ b/user/libusbmuxd/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=libusbmuxd +pkgver=2.0.2 +pkgrel=0 +pkgdesc="Library support for USBMux protocols" +url="https://libimobiledevice.org/" +arch="all" +license="LGPL-2.1+ AND GPL-2.0+" +depends="" +makedepends="libplist-dev" +subpackages="$pkgname-dev $pkgname-doc" +source="https://github.com/libimobiledevice/libusbmuxd/releases/download/$pkgver/libusbmuxd-$pkgver.tar.bz2" + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + make check +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="d3bec006db86c96f032782ef95ffa9cb6427a0ffb45a91d441346d77472343548819572976b4545a04763e8031eb15b7e40dc6b9184a1a363ddcc0d2827323bb libusbmuxd-2.0.2.tar.bz2" diff --git a/user/libxfce4ui/APKBUILD b/user/libxfce4ui/APKBUILD index a916d2759..ebe00d722 100644 --- a/user/libxfce4ui/APKBUILD +++ b/user/libxfce4ui/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=libxfce4ui -pkgver=4.18.4 +pkgver=4.18.6 pkgrel=0 pkgdesc="UI library for the XFCE desktop environment" url="https://xfce.org" @@ -35,4 +35,4 @@ package() { make -j1 DESTDIR="$pkgdir" install } -sha512sums="e931d38319bcc0dcfa854642f604fcd782ffb27a160ae7e2625d7a276625635131b0451c12ccd502b68366283c503ad21536389e70da6912e46eb16b97f28642 libxfce4ui-4.18.4.tar.bz2" +sha512sums="1c704dd26793a304fef98c48bc3ca860248e746e9e5c39f22e984439e1a20209763e80e40e6bffcf8f0d773b323b825ebd5da4d88352582e56dfeb7c9b2ca47c libxfce4ui-4.18.6.tar.bz2" diff --git a/user/libxfce4util/APKBUILD b/user/libxfce4util/APKBUILD index bac72c15c..6e18b282b 100644 --- a/user/libxfce4util/APKBUILD +++ b/user/libxfce4util/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=libxfce4util -pkgver=4.18.1 +pkgver=4.18.2 pkgrel=0 pkgdesc="Utility library for the XFCE desktop environment" url="https://xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e1459e2268948c8329394bdca56f7e7bef7739b56559c00ce6d70dfbedd038cd73a4873be34b91dbd94a80afc16e2b0e1cc256d3ff4d8fdeef9162fbdb3772cd libxfce4util-4.18.1.tar.bz2" +sha512sums="94c7371bcfd4ea8dca68a2dc2fe029ce8b232b2b906247bb45a830f13a27833e80831bb6df029d634e6cd8496d4cdcbb9691b6c4344aa51292477f2ebf56bac0 libxfce4util-4.18.2.tar.bz2" diff --git a/user/lighttpd/APKBUILD b/user/lighttpd/APKBUILD index b501a5f18..70692ad68 100644 --- a/user/lighttpd/APKBUILD +++ b/user/lighttpd/APKBUILD @@ -1,21 +1,37 @@ # Contributor: Valery Kartel <valery.kartel@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=lighttpd -pkgver=1.4.55 +pkgver=1.4.76 pkgrel=0 pkgdesc="A secure, fast, compliant and very flexible web-server" -url="http://www.lighttpd.net/" +url="https://www.lighttpd.net" pkgusers="lighttpd" pkggroups="lighttpd" arch="all" license="BSD-3-Clause" depends="" -makedepends="attr-dev bzip2-dev flex gamin-dev libev-dev libxml2-dev - openldap-dev openssl-dev pcre-dev sqlite-dev zlib-dev" -subpackages="$pkgname-doc $pkgname-dbg $pkgname-mod_auth $pkgname-openrc - $pkgname-mod_webdav" +makedepends=" + attr-dev + flex + libxml2-dev + lua5.3-dev + meson + openldap-dev + openssl-dev + pcre2-dev + sqlite-dev + zlib-dev + zstd-dev + " +checkdepends="perl" +subpackages=" + $pkgname-doc + $pkgname-openrc + $pkgname-mod_auth + $pkgname-mod_webdav + " install="$pkgname.pre-install $pkgname.pre-upgrade" -source="http://download.lighttpd.net/lighttpd/releases-1.4.x/$pkgname-$pkgver.tar.xz +source="https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$pkgver.tar.xz $pkgname.initd $pkgname.confd $pkgname.logrotate @@ -27,32 +43,26 @@ source="http://download.lighttpd.net/lighttpd/releases-1.4.x/$pkgname-$pkgver.ta " build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --disable-dependency-tracking \ - --enable-lfs \ - --libdir=/usr/lib/lighttpd \ - --without-mysql \ - --with-attr \ - --with-fam \ - --with-webdav-props \ - --with-webdav-locks \ - --without-gdbm \ - --with-bzip2 \ - --with-ldap \ - --with-openssl \ - --with-libev - make + meson \ + -Dprefix=/usr \ + -Dwith_ldap=enabled \ + -Dwith_lua=true \ + -Dwith_openssl=true \ + -Dwith_pcre2=true \ + -Dwith_webdav_locks=enabled \ + -Dwith_webdav_props=enabled \ + -Dwith_xattr=true \ + -Dwith_zstd=enabled \ + . output + meson compile -C output } check() { - make check + meson test --no-rebuild --print-errorlogs -C output } package() { - make DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" meson install --no-rebuild -C output # create dirs install -d -m755 -o lighttpd -g lighttpd \ @@ -97,12 +107,14 @@ mod_webdav() { _mv_mod mod_webdav } -sha512sums="023d5a54079e710a89a59e259c0b5798103ef6fce4544c36110dc4c5281ef429ef99369923d74123fcf8be37afe622d44cd7149078d21971ff26f3f4ee37c439 lighttpd-1.4.55.tar.xz -f2f3c5c7731550237fd75a8de66275f427eaf897cffff7ac7ef44178328ad8fad6c4ec6654759bfc665cbaf7991ddcdf0aaa916831c8b6aa440192d57b242038 lighttpd.initd +sha512sums=" +940f00f2d84e3424c389108d09756a0af41db3559474135b6c502deccd08ad051b5184f3f7907436384964d2b05045e27dca463af98c889cee69b0ae6e202782 lighttpd-1.4.76.tar.xz +a74fb8394fb77fca2a08bdcfc79d4e13de6aca7bc4ed842b7e05f7f3a9cc85dccaa4971ba8fd0edfaa19da8d3870a743b713d9e51f1cbfe5b8e2843bb7fe5346 lighttpd.initd 9d2ab5deb7353ebf290e90936b511941df440859c78589d0bcf130ef69a5e9c79e4d318548b6b118df002083c46f7476230a28954b7a10a9dbd05040e02b1291 lighttpd.confd 0536b4f21d2e8659f7831b45998c13d9f6051ae7ecde13be01f372f837d255bfc4e211de48a7686cc743d53aa9c08ab3f10ec19788896dcf8356b90053ca7a16 lighttpd.logrotate -e56ee836fa815c98c711f9381a8552ca94e1841aee5ddeee83631c385ccc556e966331499f4784982385f7ed4177062d3349705fd24de2ec5f1544ab1cc424de lighttpd.conf +f99f109178bc8e60859b01ae7ebaaa63090849fe27f203780bf1e860c2bce997a1b8e6cf4e2a40b5c2f998aac13888aa693dfbfcc8e1bd9be4442a31bcf124d0 lighttpd.conf a3f2f5763885d7e4f510491b24164e34aaf62bb02daa12991575dc64335c12668355af5bb8d6ce191eb4e9cce95324b1f7c9ba61b323b4e7b50a1e03e021afcf mime-types.conf 27cc638d8068dcf47bd9db44943d1db6c6f4e8e6abd6b42af7cea004b1c093440068541d98c68f8bea70b956713adaf8ed59a4b642dea826ee8620a05f8cfde5 mod_cgi.conf 1d15b84c03fb648a0e67ab5c5411b85478b4454c44bc2959cc96d1700eeadd7ff429520a5f1550db6527267646622dccd3d47d3fd1258869fccaf5c22d4ad4b2 mod_fastcgi.conf -f9efc4b70d825600f5356c30e57d0b6cac11c01739337f7192c09c2cfd96cb76c8328b11d818ea4c2addc1a6d253975b84700106ae75854d55d0df73e220bd2b mod_fastcgi_fpm.conf" +f9efc4b70d825600f5356c30e57d0b6cac11c01739337f7192c09c2cfd96cb76c8328b11d818ea4c2addc1a6d253975b84700106ae75854d55d0df73e220bd2b mod_fastcgi_fpm.conf +" diff --git a/user/lighttpd/lighttpd.conf b/user/lighttpd/lighttpd.conf index afb57fb17..9c9b89c7b 100644 --- a/user/lighttpd/lighttpd.conf +++ b/user/lighttpd/lighttpd.conf @@ -16,20 +16,17 @@ server.modules = ( # "mod_redirect", # "mod_alias", "mod_access", -# "mod_cml", -# "mod_trigger_b4_dl", # "mod_auth", # "mod_status", "mod_setenv", +# "mod_magnet", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", - "mod_compress", + "mod_deflate", # "mod_ssi", -# "mod_usertrack", "mod_expire", -# "mod_secdownload", # "mod_rrdtool", # "mod_webdav", "mod_accesslog", @@ -58,14 +55,10 @@ server.errorlog = var.logdir + "/error.log" # To log errors to syslog instead, use: # server.errorlog-use-syslog = "enable" -server.indexfiles = ("index.html", "index.htm", "default.htm") +index-file.names = ("index.html", "index.htm", "default.htm") # server.tag = "lighttpd" -server.follow-symlink = "enable" - -server.event-handler = "linux-sysepoll" - # To chroot to a directory: # server.chroot = "/" @@ -82,8 +75,8 @@ server.event-handler = "linux-sysepoll" # -> ..../status-404.html for 'File not found' # server.errorfile-prefix = var.basedir + "/error/status-" -# FAM support for caching stat() calls -server.stat-cache-engine = "fam" +# inotify support for caching stat() calls +#server.stat-cache-engine = "inotify" # which extensions should not be handled via static-file transfer # (extensions that are usually handled by mod_cgi, mod_fastcgi, etc). @@ -130,26 +123,15 @@ url.access-deny = ("~", ".inc") ######## SSL config ######## # See ssl.txt in lighttpd-doc package for more info. -# The defaults here are NOT the server defaults. You need to uncomment -# them to use them. They are HIGHLY recommended; by default, lighttpd -# will serve older TLS protocols that may be vulnerable to attack. # #ssl.engine = "enable" -#ssl.honor-cipher-order = "enable" -#ssl.disable-client-renegotiation = "enable" -# pemfile is cert+privkey, ca-file is the intermediate chain in one file -#ssl.pemfile = "/path/to/signed_cert_plus_private_key.pem" -#ssl.ca-file = "/path/to/intermediate_certificate.pem" +# pemfile is certificate + intermediate chain in one file +# privkey is certificate private key +#ssl.pemfile = "/path/to/fullchain.pem" +#ssl.privkey = "/path/to/privkey.pem" # ECDH/ECDHE ciphers curve strength (see `openssl ecparam -list_curves`) -#ssl.ec-curve = "secp384r1" -# Environment flag for HTTPS enabled -#setenv.add-environment = ( -# "HTTPS" => "on" -#) +#ssl.openssl.ssl-conf-cmd += ("Groups" => "secp384r1") # Modern configuration, tweak to your needs -#ssl.use-sslv2 = "disable" -#ssl.use-sslv3 = "disable" -#ssl.cipher-list = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256" # HSTS(15768000 seconds = 6 months) #setenv.add-response-header = ( # "Strict-Transport-Security" => "max-age=15768000;" @@ -163,9 +145,15 @@ url.access-deny = ("~", ".inc") #status.config-url = "/server-config" -######## mod_compress config ######## -compress.cache-dir = var.statedir + "/cache/compress" -compress.filetype = ("text/plain", "text/html") +######## mod_deflate config ######## +deflate.cache-dir = var.statedir + "/cache/compress" +deflate.mimetypes = ("text/plain", "text/html") +deflate.allowed-encodings = ( "zstd", "gzip", "deflate" ) + + +######## mod_magnet config ######## +# programmatic manipulation of requests using lua +# https://wiki.lighttpd.net/mod_magnet ######## mod_proxy config ######## @@ -231,17 +219,6 @@ compress.filetype = ("text/plain", "text/html") # "/asdhas/" => "access plus 1 seconds 2 minutes" #) -# {{{ mod_trigger_b4_dl -# see trigger_b4_dl.txt -# -# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db" -# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" ) -# trigger-before-download.trigger-url = "^/trigger/" -# trigger-before-download.download-url = "^/download/" -# trigger-before-download.deny-url = "http://127.0.0.1/index.html" -# trigger-before-download.trigger-timeout = 10 -# }}} - ######## mod_webdav config ######## # lighttpd can act as a WebDAV server. diff --git a/user/lighttpd/lighttpd.initd b/user/lighttpd/lighttpd.initd index 614cb2132..597b9070b 100644 --- a/user/lighttpd/lighttpd.initd +++ b/user/lighttpd/lighttpd.initd @@ -25,7 +25,7 @@ checkconfig() { ewarn "is not set. Falling back to lighttpd.pid" LIGHTTPD_PID="/run/lighttpd.pid" fi - /usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null + /usr/sbin/lighttpd -tt -f ${LIGHTTPD_CONF} } start() { diff --git a/user/lilo/APKBUILD b/user/lilo/APKBUILD index 6282c211c..4e29aa282 100644 --- a/user/lilo/APKBUILD +++ b/user/lilo/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=lilo pkgver=24.2 -pkgrel=1 +pkgrel=2 pkgdesc="Minimal BIOS bootloader for x86 systems" url="https://www.joonet.de/lilo/" arch="pmmx x86 x86_64" @@ -11,6 +11,7 @@ depends="perl" makedepends="dev86 linux-headers lvm2-dev sharutils" subpackages="$pkgname-doc" source="https://www.joonet.de/lilo/ftp/sources/lilo-$pkgver.tar.gz + gcc10.patch adelie.patch cflags.patch initramfs.patch @@ -48,6 +49,7 @@ package() { } sha512sums="4437cae21345f483194a5dc95f686f3f3cb2beec78faae3fba959db25eae29fe2c56732e055c05f1d101682c5d442cdc9561fae8074f61f5537dde0413204c54 lilo-24.2.tar.gz +0ef0ab379e787767bcee2c77eeb7bc5acce908850077dcc14a1d71f3a78761946e8e252089fecb441c26cbbee66c868021d42a300d05579d083e654026cf8682 gcc10.patch cf8dab563e88cc7b280f5740c3b0f25049b9ce27c77a67e7b0c55dc21a158f8b2998f0c7743f11bcc4ae893697e6b6cc56054a40919899bf2d6d79b4e1a59190 adelie.patch ed1ffb03dbbbf6fe6974d045005f72b3657d470cd3f3556d582e09a38836090c3e75a684a1dcfbe7ade91e5ada3706b712ae7111460df85454518a746c60bde4 cflags.patch 98e26319a747e6cc7e9d7c695d20e511ef9d196dfc312403c7171380e75edbbdec6af39c0f1670956bcd7ec9ff203505c4001962c767f651b730da31830ed35f initramfs.patch diff --git a/user/lilo/gcc10.patch b/user/lilo/gcc10.patch new file mode 100644 index 000000000..c46b9eebd --- /dev/null +++ b/user/lilo/gcc10.patch @@ -0,0 +1,51 @@ +Description: Fix ftbfs with GCC-10 + +Author: Ryan Finnie <ryan@finnie.org> +Bug-Debian: https://bugs.debian.org/957490 +Forwarded: no + +--- + +--- a/src/raid.h ++++ b/src/raid.h +@@ -8,7 +8,7 @@ + * in the source directory. + */ + +-int do_md_install, ndisk, md_bios; ++extern int ndisk, md_bios; + + int raid_setup(void); + void raid_final(void); +--- a/src/bsect.c ++++ b/src/bsect.c +@@ -54,8 +54,6 @@ + #endif + + +-int boot_dev_nr; +- + static BOOT_SECTOR bsect,bsect_orig; + static MENUTABLE menuparams; + static DESCR_SECTORS descrs; +--- a/src/identify.c ++++ b/src/identify.c +@@ -19,7 +19,6 @@ + #include "common.h" + #include "cfg.h" + +-char *identify; + static char *opt; + static char *first, *dflt; + static int idefault; +--- a/src/raid.c ++++ b/src/raid.c +@@ -41,7 +41,7 @@ + static int raid_bios[MAX_RAID+1]; + static int device; + enum {MD_NULL=0, MD_PARALLEL, MD_MIXED, MD_SKEWED}; +-int do_md_install, ndisk, md_bios; ++int ndisk, md_bios; + static char *raid_list[MAX_RAID]; + static int list_index[MAX_RAID]; + static int nlist, faulty; diff --git a/user/livecd-support/APKBUILD b/user/livecd-support/APKBUILD index 85fca324e..afd4554ec 100644 --- a/user/livecd-support/APKBUILD +++ b/user/livecd-support/APKBUILD @@ -2,19 +2,26 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=livecd-support pkgver=1.0 -pkgrel=0 +pkgrel=1 pkgdesc="Support files for booting Adélie live media" url="https://www.adelielinux.org/" arch="noarch" -options="!check suid" # Metapackage +options="!check" # Metapackage license="NCSA" -subpackages="$pkgname-kde $pkgname-lxqt $pkgname-mate $pkgname-horizon" +subpackages="$pkgname-kde $pkgname-lxqt $pkgname-mate $pkgname-xfce + $pkgname-horizon" depends="" -install="livecd-support.post-install livecd-support.post-deinstall" source="kde.sddm.conf lxqt.sddm.conf mate.sddm.conf + xfce.sddm.conf + horizon.desktop horizon-ui + dhcpcd-suid.start + allow-nullpw.start + allow-nullpw.stop + set-time.start + live.sudoersd " package() { @@ -23,21 +30,19 @@ package() { horizon() { pkgdesc="Add the ability to install Adélie from live media" - depends="horizon-qt5 horizon netsurf partitionmanager xterm" + depends="dhcpcd horizon-qt5 horizon netsurf partitionmanager sudo xterm" - install -D -m4755 "$srcdir"/horizon-ui "$subpkgdir"/usr/sbin/horizon-ui + install -D -m755 "$srcdir"/horizon-ui "$subpkgdir"/usr/sbin/horizon-ui + install -D -m644 "$srcdir"/live.sudoersd "$subpkgdir"/etc/sudoers.d/live-pm - mkdir -p "$subpkgdir"/usr/share/applications - cat >"$subpkgdir"/usr/share/applications/horizon.desktop <<DESKTOP -[Desktop Entry] -Type=Application -Version=1.1 -Name=System Installation -Comment=Install Adélie Linux to your computer -Icon=system-software-install -Exec=/usr/sbin/horizon-ui -Categories=System; -DESKTOP + for script in dhcpcd-suid.start allow-nullpw.start allow-nullpw.stop \ + set-time.start; do + install -D -m755 "$srcdir"/$script \ + "$subpkgdir"/etc/local.d/$script + done + + install -D -m644 "$srcdir"/horizon.desktop \ + "$subpkgdir"/usr/share/applications/horizon.desktop } @@ -49,7 +54,7 @@ kde() { lxqt() { pkgdesc="$pkgdesc (LXQt spin)" - depends="livecd-support lxqt-desktop sddm x11" + depends="adelie-lxqt-theme livecd-support lxqt-desktop sddm x11" install -D -m644 "$srcdir"/lxqt.sddm.conf "$subpkgdir"/etc/sddm.conf.d/lxqt.conf } @@ -59,7 +64,20 @@ mate() { install -D -m644 "$srcdir"/mate.sddm.conf "$subpkgdir"/etc/sddm.conf.d/mate.conf } +xfce() { + pkgdesc="$pkgdesc (XFCE spin)" + depends="livecd-support xfce-desktop sddm x11" + install -D -m644 "$srcdir"/xfce.sddm.conf "$subpkgdir"/etc/sddm.conf.d/xfce.conf +} + sha512sums="eddcc68917b4dc376bb9b7e7ed5e2c06379957c787c7152e654f31adb402f5811463bff69ce2a41a2cb87b0fa83a4aa3718b63d830eb9ee46b7d0d2058663d34 kde.sddm.conf 9a9a61035c0a8c5ee84d235f319ca158216056221d03a0f5a3846982cb6110c569d7b4eadd2e24de66a75a428c18850e0393e20412e0edcfc8ad41c9d4783604 lxqt.sddm.conf 603d2a5b1fdad0cb0abfefa8a4019c690ee4f5f9ac45057eeeac3bac3207e7871bdb32a564791fb99d965959b39a7de979d575db2694c2d1d88a4a16b68adb25 mate.sddm.conf -b6d39b2feb0aa400ac7013d6b8c9080ab00ffc1c8b40dbf9489df999fe08b86aebd878c84d968a53ad29bc2a2c30209d8c6ff5daa4171aab03d5b921f966e08d horizon-ui" +a2cf327b4733432a992222ee162b9fcf613de3980bcf5ee2ae17615def69b9ad8c631675e9616dc6d5a718f5d855ea70c5d5b819c8471e868fbd112575869d64 xfce.sddm.conf +741050465f75062c99fc4206d52d165682fe1757070f8ca8accfef3a6a9ca860d8dc5da0f14ff3f415db4a76a22bc0764a313779a3ce15bde746bdb7960568c0 horizon.desktop +39ae77fbf34af95ba9b5c49d27cdf63472dccd4e453feb83fa7a58f127005dac1adc9898fb2de93c89cfaca6c305030fdd30ecbde8c029fea37dfdb50d4ff078 horizon-ui +8d332a7d6aa0444b27f72cb66ca815395b69f647f2b46d9339f07833d2b020c27748508580d3f49c72b408781112aaaba32cf4dc8846ad781c23a457a7a36c6e dhcpcd-suid.start +96c4763e971bbcd30c28d09ff9d8e80a1c1729c94f5b2f2187ba38cc5f455af8d6470d605c2d6c0a621614fc2616e10afa44faed0b6cd564ca769b63aaa1cf82 allow-nullpw.start +b3b5de1ccbbc35d5c4a83daac9787837baa0186e413be58da2739d1e78cb7999e9b3c232448ea8e895a571025d91a81801882671b741be5dc678cba2100c8500 allow-nullpw.stop +fec26d0ca5070b4a83460c032c3118ea4e059dd1f5b798c938d290ccbfe93e52721780172ed8b2d523ec3c5a88af3634308b34c1a4ee16586cbe0a2f4d8d0b27 set-time.start +b5516103b0a0b9363bc174d78b0ce81bd72a4dd5ec57c3934808fd525e88ab9c90b22b100fa6f955a57322a57ce19786eae849d6fea4bc71af6427bc7f8f508e live.sudoersd" diff --git a/user/livecd-support/allow-nullpw.start b/user/livecd-support/allow-nullpw.start new file mode 100644 index 000000000..f10af795e --- /dev/null +++ b/user/livecd-support/allow-nullpw.start @@ -0,0 +1,6 @@ +#!/bin/sh +# Welcome to Adélie Linux. +# This script changes local PAM configuration to allow null passwords. +# This way, the `live` user does not need a password. + +sed -i 's/pam_unix.so$/pam_unix.so nullok_secure/' /etc/pam.d/base-auth diff --git a/user/livecd-support/allow-nullpw.stop b/user/livecd-support/allow-nullpw.stop new file mode 100644 index 000000000..fa6f05320 --- /dev/null +++ b/user/livecd-support/allow-nullpw.stop @@ -0,0 +1,5 @@ +#!/bin/sh +# Welcome to Adélie Linux. +# This script undoes the null-password change when the system goes down. + +sed -i 's/pam_unix.so nullok_secure$/pam_unix.so/' /etc/pam.d/base-auth diff --git a/user/livecd-support/dhcpcd-suid.start b/user/livecd-support/dhcpcd-suid.start new file mode 100644 index 000000000..6fb3cee11 --- /dev/null +++ b/user/livecd-support/dhcpcd-suid.start @@ -0,0 +1,5 @@ +#!/bin/sh +# Welcome to Adélie Linux. +# This script ensures dhcpcd can be executed by the live user. + +chmod 4755 /sbin/dhcpcd diff --git a/user/livecd-support/horizon-ui b/user/livecd-support/horizon-ui index e984e9476..0fa8e6ae3 100644 --- a/user/livecd-support/horizon-ui +++ b/user/livecd-support/horizon-ui @@ -5,4 +5,6 @@ # horizon-qt5 -if [ $? -eq 0 ]; then horizon-run-qt5; fi +if [ $? -eq 0 ]; then + PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin horizon-run-qt5 +fi diff --git a/user/livecd-support/horizon.desktop b/user/livecd-support/horizon.desktop new file mode 100644 index 000000000..fd1c3d103 --- /dev/null +++ b/user/livecd-support/horizon.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Version=1.1 +Name=System Installation +Comment=Install Adélie Linux to your computer +Icon=system-software-install +Exec=/usr/sbin/horizon-ui +Categories=System; diff --git a/user/livecd-support/live.sudoersd b/user/livecd-support/live.sudoersd new file mode 100644 index 000000000..e2ebb25d6 --- /dev/null +++ b/user/livecd-support/live.sudoersd @@ -0,0 +1,3 @@ +# Welcome to Adélie Linux. +# This file allows the live user to run partitionmanager. +live ALL=(ALL:ALL) NOPASSWD: /usr/bin/partitionmanager diff --git a/user/livecd-support/livecd-support.post-deinstall b/user/livecd-support/livecd-support.post-deinstall deleted file mode 100644 index cfd0c59ac..000000000 --- a/user/livecd-support/livecd-support.post-deinstall +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -sed -i 's/pam_unix.so nullok_secure$/pam_unix.so/' /etc/pam.d/base-auth diff --git a/user/livecd-support/livecd-support.post-install b/user/livecd-support/livecd-support.post-install deleted file mode 100644 index 9556f5a52..000000000 --- a/user/livecd-support/livecd-support.post-install +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -sed -i 's/pam_unix.so$/pam_unix.so nullok_secure/' /etc/pam.d/base-auth diff --git a/user/livecd-support/set-time.start b/user/livecd-support/set-time.start new file mode 100644 index 000000000..a5c6cb79a --- /dev/null +++ b/user/livecd-support/set-time.start @@ -0,0 +1,5 @@ +#!/bin/sh +# Welcome to Adélie Linux. +# This script ensures the system clock is set correctly if at all possible. + +nm-online -t 10 && chronyd -q diff --git a/user/livecd-support/xfce.sddm.conf b/user/livecd-support/xfce.sddm.conf new file mode 100644 index 000000000..3b6e5446c --- /dev/null +++ b/user/livecd-support/xfce.sddm.conf @@ -0,0 +1,3 @@ +[Autologin] +User=live +Session=xfce.desktop diff --git a/user/llvm14/APKBUILD b/user/llvm14/APKBUILD index cd8d6d7a0..86b4789ea 100644 --- a/user/llvm14/APKBUILD +++ b/user/llvm14/APKBUILD @@ -6,7 +6,7 @@ _pkgname=llvm pkgver=14.0.6 _majorver=${pkgver%%.*} pkgname=$_pkgname$_majorver -pkgrel=0 +pkgrel=1 pkgdesc="Low Level Virtual Machine compiler system, version $_majorver" url="https://llvm.org/" arch="all" @@ -25,9 +25,11 @@ source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/l disable-dlclose-test.patch dwarf-info.patch dyld-elf-ppc32.patch + graph-diff-simple.txt hexagon.patch macho32.patch musl-ppc64-elfv2.patch + ppc-gcc-bug.patch ppc-test.patch python3-test.patch roundeven.patch @@ -41,7 +43,7 @@ case "$CARCH" in esac # Whether is this package the default (latest) LLVM version. -_default_llvm="yes" +_default_llvm="no" if [ "$_default_llvm" = yes ]; then provides="llvm=$pkgver-r$pkgrel" @@ -89,12 +91,25 @@ prepare() { test/tools/UpdateTestChecks \ test/ExecutionEngine/MCJIT/load-object-a.ll \ ; + #1202 + case $CARCH in + pmmx) + mv "$srcdir"/graph-diff-simple.txt \ + test/tools/llvm-xray/X86/graph-diff-simple.txt ;; + esac } build() { # Auto-detect it by guessing either. ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')" + case $CTARGET_ARCH in + pmmx) + # The standard precision breaks more than it fixes; there are + # 4 failures in standard mode and only (different) 1 in fast. + export CXXFLAGS="$CXXFLAGS -fexcess-precision=fast";; + esac + cmake -G "Unix Makefiles" -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/$_prefix \ @@ -252,9 +267,11 @@ f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3ce caeec8e4dbd92f5f74940780b69075f3879a267a8623822cbdc193fd14706eb089071e3a5a20d60cc2eca59e4c5b2a61d29827a2f3362ee7c5f74f11d9ace200 disable-dlclose-test.patch 2842bcef71fb962cb49717fa9ba3e7318400c4a9175284a39ae3ff13a00260556794d0d63341430b2c64a0bca1ac76186e02c92e444a737a5dec1b6de27bbc60 dwarf-info.patch 5fa36157f7a76ca70d22af7bd96850db454d6add3a19cc3272962633c453087015755ca9df0de29cc40359e89279e470e91ff1a69d1453596a73291b36f39b23 dyld-elf-ppc32.patch +a1533f4b9d35e1069fd065fbeb5fedce96fa49fdb007f994d8921d8a04cf2caadca276bbd9553ff86040b0f9dfce489c385fa2a7434e2dee3732942e6914db4e graph-diff-simple.txt 9abe376068801a09b2af01eef0cd319f48862b5ff7cce62af3cf4e7597a0898842125ae574577b545734ec1381f192b924b4f717a9c094f119e32ada81a2b9a2 hexagon.patch de9791cc476817782b553c4edab696132da4ed2b9a3d80dbf1b85b7dc7a8c5e4caf14f2f26e33c27cd80a91b36709d3b24caea910c0a6315ffbb297cb748468d macho32.patch -e5ddbc4b6c4928e79846dc3c022eb7928aaa8fed40515c78f5f03b8ab8264f34f1eb8aa8bfc0f436450932f4917e54ad261603032092ea271d9590f11a37cf1e musl-ppc64-elfv2.patch +189e0967c7c29c6315bd3e8da818b94fc3ed99c8cdce14c3d7ccc2fbd18007b3d97f74689dc3d498f624a10411067c41648b9b67d420d2344fa7e1bf7711c8dd musl-ppc64-elfv2.patch +02fd3e9869cf3da60b0da17b69dc592fdcd0442d50de940b578b7a9aa19554569324b44f6f84728c03b2897859f99076278741bdd0872fab70660eb844d05f26 ppc-gcc-bug.patch 62de403e4cfd58d9f33f8b35ff31f66c906fd39c667fbcfa394d03f636fb10977c2f53c3a780d0c8e099f9a081951402757e12842d82a7cbd1aef4158f51d5c2 ppc-test.patch 89ef5fbab039b017a5652656adf17b680525f1c5dd0b1afc8034fe0b34a2ca196d87640f54cc826356cfcd88c6e5f10754b7e38f04ca49ede4f3864080b787bd python3-test.patch dca77af49ea181ab8d41630b8e7575b83aac22686a1119479abf8fe22d8f13032d69ef83a9635b9ad9b935cd3b51251d939e05967ad40db43abf69ac40e0eccd roundeven.patch" diff --git a/user/llvm14/graph-diff-simple.txt b/user/llvm14/graph-diff-simple.txt new file mode 100644 index 000000000..fa26daaf9 --- /dev/null +++ b/user/llvm14/graph-diff-simple.txt @@ -0,0 +1,238 @@ +#RUN: llvm-xray graph-diff -o - -c min -b min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=VCEC +#RUN: llvm-xray graph-diff -o - -c min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=EC +#RUN: llvm-xray graph-diff -o - -b min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=VC +#RUN: llvm-xray graph-diff -o - -e min -v min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=ELVL +#RUN: llvm-xray graph-diff -o - -e min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=EL +#RUN: llvm-xray graph-diff -o - -v min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=VL +#RUN: llvm-xray graph-diff -o - -v min -b min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=VLVC +#RUN: llvm-xray graph-diff -o - -e min -c min -m %S/Inputs/simple-instrmap.yaml \ +#RUN: %S/Inputs/graph-diff-A.yaml %S/Inputs/graph-diff-B.yaml \ +#RUN: | FileCheck %s -check-prefix=ELEC + +#VCEC: digraph xrayDiff { +#VCEC-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#VCEC-DAG: F[[N1NO:[0-9]+]] [label="#1" color="#276419"] +#VCEC-DAG: F[[N2NO:[0-9]+]] [label="#2" color="#276419"] +#VCEC-DAG: F[[N3NO:[0-9]+]] [label="#3" color="#276419"] +#VCEC-DAG: F[[N4NO:[0-9]+]] [label="#4" color="#9BCE61"] +#VCEC-DAG: F[[N5NO:[0-9]+]] [label="#5" color="#F7F7F7"] +#VCEC-DAG: F[[N6NO:[0-9]+]] [label="#6" color="#F5C4E0"] +#VCEC-DAG: F[[N7NO:[0-9]+]] [label="#7" color="#E17FB4"] +#VCEC-DAG: F[[N8NO:[0-9]+]] [label="#8" color="#CB3088"] +#VCEC-DAG: F[[N9NO:[0-9]+]] [label="#9" color="#AD0E69"] +#VCEC-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#VCEC-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="" color="#276419" labelfontcolor="#276419" penwidth=8.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="" color="#276419" labelfontcolor="#276419" penwidth=3.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="" color="#276419" labelfontcolor="#276419" penwidth=1.33] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="" color="#9BCE61" labelfontcolor="#9BCE61" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="" color="#F7F7F7" labelfontcolor="#F7F7F7" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="" color="#F5C4E0" labelfontcolor="#F5C4E0" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="" color="#E17FB4" labelfontcolor="#E17FB4" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="" color="#CB3088" labelfontcolor="#CB3088" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="" color="#AD0E69" labelfontcolor="#AD0E69" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#VCEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#VCEC-NEXT:} + + +#EC: digraph xrayDiff { +#EC-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#EC-DAG: F[[N1NO:[0-9]+]] [label="#1" color="black"] +#EC-DAG: F[[N2NO:[0-9]+]] [label="#2" color="black"] +#EC-DAG: F[[N3NO:[0-9]+]] [label="#3" color="black"] +#EC-DAG: F[[N4NO:[0-9]+]] [label="#4" color="black"] +#EC-DAG: F[[N5NO:[0-9]+]] [label="#5" color="black"] +#EC-DAG: F[[N6NO:[0-9]+]] [label="#6" color="black"] +#EC-DAG: F[[N7NO:[0-9]+]] [label="#7" color="black"] +#EC-DAG: F[[N8NO:[0-9]+]] [label="#8" color="black"] +#EC-DAG: F[[N9NO:[0-9]+]] [label="#9" color="black"] +#EC-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#EC-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="" color="#276419" labelfontcolor="#276419" penwidth=8.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="" color="#276419" labelfontcolor="#276419" penwidth=3.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="" color="#276419" labelfontcolor="#276419" penwidth=1.33] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="" color="#9BCE61" labelfontcolor="#9BCE61" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="" color="#F7F7F7" labelfontcolor="#F7F7F7" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="" color="#F5C4E0" labelfontcolor="#F5C4E0" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="" color="#E17FB4" labelfontcolor="#E17FB4" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="" color="#CB3088" labelfontcolor="#CB3088" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="" color="#AD0E69" labelfontcolor="#AD0E69" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#EC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#EC-NEXT:} + +#VC: digraph xrayDiff { +#VC-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#VC-DAG: F[[N1NO:[0-9]+]] [label="#1" color="#276419"] +#VC-DAG: F[[N2NO:[0-9]+]] [label="#2" color="#276419"] +#VC-DAG: F[[N3NO:[0-9]+]] [label="#3" color="#276419"] +#VC-DAG: F[[N4NO:[0-9]+]] [label="#4" color="#9BCE61"] +#VC-DAG: F[[N5NO:[0-9]+]] [label="#5" color="#F7F7F7"] +#VC-DAG: F[[N6NO:[0-9]+]] [label="#6" color="#F5C4E0"] +#VC-DAG: F[[N7NO:[0-9]+]] [label="#7" color="#E17FB4"] +#VC-DAG: F[[N8NO:[0-9]+]] [label="#8" color="#CB3088"] +#VC-DAG: F[[N9NO:[0-9]+]] [label="#9" color="#AD0E69"] +#VC-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#VC-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#VC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#VC-NEXT:} + +#ELVL: digraph xrayDiff { +#ELVL-NEXT: node [shape=record] +#ELVL-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#ELVL-DAG: F[[N1NO:[0-9]+]] [label="{#1|800.00%}" color="black"] +#ELVL-DAG: F[[N2NO:[0-9]+]] [label="{#2|300.00%}" color="black"] +#ELVL-DAG: F[[N3NO:[0-9]+]] [label="{#3|133.33%}" color="black"] +#ELVL-DAG: F[[N4NO:[0-9]+]] [label="{#4|50.00%}" color="black"] +#ELVL-DAG: F[[N5NO:[0-9]+]] [label="{#5|0.00%}" color="black"] +#ELVL-DAG: F[[N6NO:[0-9]+]] [label="{#6|-33.33%}" color="black"] +#ELVL-DAG: F[[N7NO:[0-9]+]] [label="{#7|-57.14%}" color="black"] +#ELVL-DAG: F[[N8NO:[0-9]+]] [label="{#8|-75.00%}" color="black"] +#ELVL-DAG: F[[N9NO:[0-9]+]] [label="{#9|-88.89%}" color="black"] +#ELVL-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#ELVL-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="800.00%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="300.00%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="133.33%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="50.00%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="0.00%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="-33.33%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="-57.14%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="-75.00%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="-88.89%" color="black" labelfontcolor="black" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#ELVL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#ELVL-NEXT:} + +#EL: digraph xrayDiff { +#EL-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#EL-DAG: F[[N1NO:[0-9]+]] [label="#1" color="black"] +#EL-DAG: F[[N2NO:[0-9]+]] [label="#2" color="black"] +#EL-DAG: F[[N3NO:[0-9]+]] [label="#3" color="black"] +#EL-DAG: F[[N4NO:[0-9]+]] [label="#4" color="black"] +#EL-DAG: F[[N5NO:[0-9]+]] [label="#5" color="black"] +#EL-DAG: F[[N6NO:[0-9]+]] [label="#6" color="black"] +#EL-DAG: F[[N7NO:[0-9]+]] [label="#7" color="black"] +#EL-DAG: F[[N8NO:[0-9]+]] [label="#8" color="black"] +#EL-DAG: F[[N9NO:[0-9]+]] [label="#9" color="black"] +#EL-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#EL-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="800.00%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="300.00%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="133.33%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="50.00%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="0.00%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="-33.33%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="-57.14%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="-75.00%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="-88.89%" color="black" labelfontcolor="black" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#EL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#EL-NEXT:} + +#VL: digraph xrayDiff { +#VL-NEXT: node [shape=record] +#VL-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#VL-DAG: F[[N1NO:[0-9]+]] [label="{#1|800.00%}" color="black"] +#VL-DAG: F[[N2NO:[0-9]+]] [label="{#2|300.00%}" color="black"] +#VL-DAG: F[[N3NO:[0-9]+]] [label="{#3|133.33%}" color="black"] +#VL-DAG: F[[N4NO:[0-9]+]] [label="{#4|50.00%}" color="black"] +#VL-DAG: F[[N5NO:[0-9]+]] [label="{#5|0.00%}" color="black"] +#VL-DAG: F[[N6NO:[0-9]+]] [label="{#6|-33.33%}" color="black"] +#VL-DAG: F[[N7NO:[0-9]+]] [label="{#7|-57.14%}" color="black"] +#VL-DAG: F[[N8NO:[0-9]+]] [label="{#8|-75.00%}" color="black"] +#VL-DAG: F[[N9NO:[0-9]+]] [label="{#9|-88.89%}" color="black"] +#VL-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#VL-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#VL-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#VL-NEXT:} + +#VLVC: digraph xrayDiff { +#VLVC-NEXT: node [shape=record] +#VLVC-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#VLVC-DAG: F[[N1NO:[0-9]+]] [label="{#1|800.00%}" color="#276419"] +#VLVC-DAG: F[[N2NO:[0-9]+]] [label="{#2|300.00%}" color="#276419"] +#VLVC-DAG: F[[N3NO:[0-9]+]] [label="{#3|133.33%}" color="#276419"] +#VLVC-DAG: F[[N4NO:[0-9]+]] [label="{#4|50.00%}" color="#9BCE61"] +#VLVC-DAG: F[[N5NO:[0-9]+]] [label="{#5|0.00%}" color="#F7F7F7"] +#VLVC-DAG: F[[N6NO:[0-9]+]] [label="{#6|-33.33%}" color="#F5C4E0"] +#VLVC-DAG: F[[N7NO:[0-9]+]] [label="{#7|-57.14%}" color="#E17FB4"] +#VLVC-DAG: F[[N8NO:[0-9]+]] [label="{#8|-75.00%}" color="#CB3088"] +#VLVC-DAG: F[[N9NO:[0-9]+]] [label="{#9|-88.89%}" color="#AD0E69"] +#VLVC-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#VLVC-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="" color="black" labelfontcolor="black" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#VLVC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#VLVC-NEXT:} + +#ELEC: digraph xrayDiff { +#ELEC-DAG: F[[F0NO:[0-9]+]] [label="F0"] +#ELEC-DAG: F[[N1NO:[0-9]+]] [label="#1" color="black"] +#ELEC-DAG: F[[N2NO:[0-9]+]] [label="#2" color="black"] +#ELEC-DAG: F[[N3NO:[0-9]+]] [label="#3" color="black"] +#ELEC-DAG: F[[N4NO:[0-9]+]] [label="#4" color="black"] +#ELEC-DAG: F[[N5NO:[0-9]+]] [label="#5" color="black"] +#ELEC-DAG: F[[N6NO:[0-9]+]] [label="#6" color="black"] +#ELEC-DAG: F[[N7NO:[0-9]+]] [label="#7" color="black"] +#ELEC-DAG: F[[N8NO:[0-9]+]] [label="#8" color="black"] +#ELEC-DAG: F[[N9NO:[0-9]+]] [label="#9" color="black"] +#ELEC-DAG: F[[NANO:[0-9]+]] [label="#10" color="#00FF00"] +#ELEC-DAG: F[[NBNO:[0-9]+]] [label="#11" color="#FF0000"] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N1NO]] [tooltip="F0 -> #1" label="800.00%" color="#276419" labelfontcolor="#276419" penwidth=8.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N2NO]] [tooltip="F0 -> #2" label="300.00%" color="#276419" labelfontcolor="#276419" penwidth=3.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N3NO]] [tooltip="F0 -> #3" label="133.33%" color="#276419" labelfontcolor="#276419" penwidth=1.33] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N4NO]] [tooltip="F0 -> #4" label="50.00%" color="#9BCE61" labelfontcolor="#9BCE61" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N5NO]] [tooltip="F0 -> #5" label="0.00%" color="#F7F7F7" labelfontcolor="#F7F7F7" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N6NO]] [tooltip="F0 -> #6" label="-33.33%" color="#F5C4E0" labelfontcolor="#F5C4E0" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N7NO]] [tooltip="F0 -> #7" label="-57.14%" color="#E17FB4" labelfontcolor="#E17FB4" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N8NO]] [tooltip="F0 -> #8" label="-75.00%" color="#CB3088" labelfontcolor="#CB3088" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[N9NO]] [tooltip="F0 -> #9" label="-88.89%" color="#AD0E69" labelfontcolor="#AD0E69" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NANO]] [tooltip="F0 -> #10" label="" color="#00FF00" labelfontcolor="#00FF00" penwidth=1.00] +#ELEC-DAG: F{{.*}}[[F0NO]] -> F{{.*}}[[NBNO]] [tooltip="F0 -> #11" label="" color="#FF0000" labelfontcolor="#FF0000" penwidth=1.00] +#ELEC-NEXT:} + + diff --git a/user/llvm14/musl-ppc64-elfv2.patch b/user/llvm14/musl-ppc64-elfv2.patch index 016be5dad..77bc4c780 100644 --- a/user/llvm14/musl-ppc64-elfv2.patch +++ b/user/llvm14/musl-ppc64-elfv2.patch @@ -15,7 +15,7 @@ diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTar index 34410393ef6..c583fba8cab 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/lib/Target/PowerPC/PPCTargetMachine.cpp -@@ -199,6 +199,10 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT, +@@ -228,6 +228,10 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT, case Triple::ppc64le: return PPCTargetMachine::PPC_ABI_ELFv2; case Triple::ppc64: diff --git a/user/llvm14/ppc-gcc-bug.patch b/user/llvm14/ppc-gcc-bug.patch new file mode 100644 index 000000000..4fe2f34f4 --- /dev/null +++ b/user/llvm14/ppc-gcc-bug.patch @@ -0,0 +1,22 @@ +Upstream: https://github.com/llvm/llvm-project/issues/95594 +Ref: #1204 + +--- llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h.old 2024-06-15 12:21:32.000000000 -0500 ++++ llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h 2024-06-25 21:42:07.495284340 -0500 +@@ -378,6 +378,8 @@ + return Size; + } + ++#pragma GCC push_options ++#pragma GCC optimize("no-tree-ch") + static bool serialize(SPSOutputBuffer &OB, const SequenceT &S) { + if (!SPSArgList<uint64_t>::serialize(OB, static_cast<uint64_t>(S.size()))) + return false; +@@ -386,6 +388,7 @@ + return false; + return true; + } ++#pragma GCC pop_options + + static bool deserialize(SPSInputBuffer &IB, SequenceT &S) { + using TBSD = TrivialSPSSequenceDeserialization<SPSElementTagT, SequenceT>; diff --git a/user/llvm18/APKBUILD b/user/llvm18/APKBUILD new file mode 100644 index 000000000..8bcd3067f --- /dev/null +++ b/user/llvm18/APKBUILD @@ -0,0 +1,328 @@ +# Contributor: Travis Tilley <ttilley@gmail.com> +# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com> +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +_pkgname=llvm +pkgver=18.1.8 +_majorver=${pkgver%%.*} +pkgname=$_pkgname$_majorver +pkgrel=0 +pkgdesc="Low Level Virtual Machine compiler system, version $_majorver" +url="https://llvm.org/" +arch="all" +options="!checkroot !dbg" +license="NCSA AND (Apache-2.0 WITH LLVM-exception)" +depends="" +depends_dev="$pkgname=$pkgver-r$pkgrel libexecinfo-dev libxml2-dev" +checkdepends="cmd:which" +makedepends="binutils-dev chelf chrpath cmake file libexecinfo-dev libffi-dev + libxml2-dev python3 zlib-dev" +subpackages="$pkgname-static $pkgname-libs $pkgname-dev + $pkgname-test-utils:_test_utils" +source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz + llvm-fix-build-with-musl-libc.patch + disable-FileSystemTest.CreateDir-perms-assert.patch + dyld-elf-ppc32.patch + hexagon.patch + i586-json-test.patch + m68k-endianness.patch + macho32.patch + musl-ppc64-elfv2.patch + ppc-gcc-bug.patch + python3-test.patch + roundeven.patch + " +builddir="$srcdir/$_pkgname-project-$pkgver.src/llvm" + +# ARM has few failures in test suite that we don't care about currently and +# also it takes forever to run them on the builder. +case "$CARCH" in + arm*) options="$options !check";; +esac + +# Whether is this package the default (latest) LLVM version. +_default_llvm="yes" + +if [ "$_default_llvm" = yes ]; then + provides="llvm=$pkgver-r$pkgrel" + replaces="llvm" +fi + +# NOTE: It seems that there's no (sane) way how to change includedir, sharedir +# etc. separately, just the CMAKE_INSTALL_PREFIX. Standard CMake variables and +# even LLVM-specific variables, that are related to these paths, actually +# don't work (in llvm 3.7). +# +# When building a software that depends on LLVM, utility llvm-config should be +# used to discover where is LLVM installed. It provides options to print +# path of bindir, includedir, and libdir separately, but in its source, all +# these paths are actually hard-coded against INSTALL_PREFIX. We can patch it +# and move paths manually, but I'm really not sure what it may break... +# +# Also note that we should *not* add version suffix to files in llvm bindir! +# It breaks build system of some software that depends on LLVM, because they +# don't expect these files to have a sufix. +# +# So, we install all the LLVM files into /usr/lib/llvm$_majorver. +# BTW, Fedora and Debian do the same thing. +# +_prefix="usr/lib/llvm$_majorver" + +prepare() { + default_prepare + + # https://bugs.llvm.org//show_bug.cgi?id=31870 + rm test/tools/llvm-symbolizer/print_context.c + + case $CARCH in + pmmx|x86|ppc|armhf|armv7) + # Appears to not work when building 32-bit code on 64-bit host. + rm test/tools/llvm-size/radix.test;; + esac + + # https://github.com/llvm/llvm-project/issues/96734 + case $CARCH in + ppc64|ppc|mips64|mips) + # Appears to be a endianness issue. + for _broken in eh_frame linker-llvm-union-fwd-decl; do + rm test/tools/dsymutil/X86/$_broken.test; + done + for _broken in accelerator-dwarf4 accelerator-dwarf5 \ + dwarf4-macro-short; do + rm test/tools/llvm-dwarfutil/ELF/X86/$_broken.test; + done + for _broken in inlined-static-variable.cpp keep-func.test \ + odr-fwd-declaration2.test odr-member-functions.cpp \ + odr-predictable-output2.test odr-string.test \ + odr-types-in-subprogram1.test odr-uniquing.cpp; do + rm test/tools/dsymutil/X86/DWARFLinkerParallel/$_broken + done;; + esac + + case $CTARGET_ARCH in + pmmx) + # Broken by fast precision method. + rm test/tools/llvm-cov/mcdc-export-json.test; + rm test/tools/llvm-xray/X86/graph-diff-simple.txt; + ;; + ppc) + # RISC-V issues are uninvestigated as of yet. #1233 + rm test/CodeGen/RISCV/rvv/combine-store-extract-crash.ll + rm test/CodeGen/RISCV/xtheadmempair.ll + + # ExecutionEngine for PPC32 requires R_PPC_REL24 to be + # implemented in RuntimeDyld. + for _bad_orc in global-ctor-with-cast.ll \ + global-variable-alignment.ll \ + trivial-call-to-function.ll \ + trivial-call-to-internal-function.ll \ + trivial-reference-to-global-variable.ll \ + trivial-reference-to-internal-variable-nonzeroinit.ll \ + trivial-reference-to-internal-variable-zeroinit.ll \ + trivial-return-zero.ll \ + weak-comdat.ll; do + rm test/ExecutionEngine/Orc/$_bad_orc; + done + for _bad_ee in frem.ll mov64zext32.ll \ + test-interp-vec-arithm_float.ll \ + test-interp-vec-arithm_int.ll \ + test-interp-vec-logical.ll \ + test-interp-vec-setcond-fp.ll \ + test-interp-vec-setcond-int.ll; do + rm test/ExecutionEngine/$_bad_ee; + done + esac + + # appears to be an issue on musl and glibc, but only fails on musl: + # https://github.com/NixOS/nixpkgs/blob/bb7e9e46/pkgs/development/compilers/llvm/8/llvm.nix#L74 + # rm -f test/CodeGen/AArch64/wineh4.mir + + #1053 + rm -fr \ + test/tools/UpdateTestChecks \ + test/ExecutionEngine/MCJIT/load-object-a.ll \ + ; +} + +build() { + # Auto-detect it by guessing either. + ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')" + + arch_config="" + case $CTARGET_ARCH in + aarch64) + # libexecinfo does not work on AArch64 because the GCC port + # does not implement RETURN_ADDR_RTX with frame > 0. + arch_config="-DLLVM_ENABLE_BACKTRACES=OFF";; + pmmx) + # The standard precision breaks more than it fixes; there are + # 12 failures in standard mode and only (different) 3 in fast. + export CXXFLAGS="$CXXFLAGS -fexcess-precision=fast";; + esac + + cmake -G "Unix Makefiles" -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/$_prefix \ + -DCMAKE_VERBOSE_MAKEFILE=NO \ + -DFFI_INCLUDE_DIR="$ffi_include_dir" \ + -DLLVM_BINUTILS_INCDIR=/usr/include \ + -DLLVM_BUILD_DOCS=OFF \ + -DLLVM_BUILD_EXAMPLES=OFF \ + -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_BUILD_TESTS=ON \ + -DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_LIBCXX=OFF \ + -DLLVM_ENABLE_PIC=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_SPHINX=OFF \ + -DLLVM_ENABLE_TERMINFO=ON \ + -DLLVM_ENABLE_ZLIB=ON \ + -DLLVM_HOST_TRIPLE="$CHOST" \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_TARGETS_TO_BUILD='AArch64;AMDGPU;ARM;BPF;Hexagon;Lanai;Mips;MSP430;PowerPC;RISCV;Sparc;SystemZ;WebAssembly;X86;XCore' \ + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='M68k' \ + $arch_config \ + -Bbuild . + + make -C build llvm-tblgen + make -C build + + python3 utils/lit/setup.py build +} + +check() { + make -C build check-llvm +} + +package() { + make DESTDIR="$pkgdir" -C build install + + cd "$pkgdir"/$_prefix + + # Remove RPATHs. + file lib/*.so bin/* \ + | awk -F: '$2~/ELF/{print $1}' \ + | xargs -r chrpath -d + + # Thread 3 requires a lot of stack space to LTO when targeting ARM. + # Note that this occurs even when crossing (on a ppc64 host). + chelf -s 1048576 bin/llvm-lto2 + + # Symlink files from /usr/lib/llvm*/bin to /usr/bin. + mkdir -p "$pkgdir"/usr/bin + for full_name in bin/*; do + bin_name=${full_name##*/} + # If this package provides=llvm (i.e. it's the default/latest + # llvm package), omit version infix/suffix. + if [ "$_default_llvm" = yes ]; then + link_name=$bin_name + # ..otherwise, add version infix/suffix to the executable name. + else case "$bin_name" in + llvm-*) link_name="llvm$_majorver-${bin_name#llvm-}";; + *) link_name="$bin_name$_majorver";; + esac + fi + case "$name" in + FileCheck | obj2yaml | yaml2obj) continue;; + esac + ln -s ../lib/llvm$_majorver/bin/$bin_name "$pkgdir"/usr/bin/$link_name + done + + # Move /usr/lib/$pkgname/include/ into /usr/include/$pkgname/ + # and symlink it back. + mkdir -p "$pkgdir"/usr/include/$pkgname + mv include/* "$pkgdir"/usr/include/$pkgname/ + rmdir include + ln -s ../../include/$pkgname include + + ln -s "$pkgdir"/usr/lib/cmake/llvm ../$pkgname/lib/cmake/llvm +} + +static() { + pkgdesc="LLVM $_majorver static libraries" + _common_subpkg + + mkdir -p "$subpkgdir"/$_prefix/lib + mv "$pkgdir"/$_prefix/lib/*.a "$subpkgdir"/$_prefix/lib/ + strip -d "$subpkgdir"/$_prefix/lib/*.a +} + +libs() { + pkgdesc="LLVM $_majorver runtime library" + main_soname="libLLVM-$_majorver.so" + ver_soname="libLLVM-$pkgver.so" + _common_subpkg + + # libLLVM should be in /usr/lib. This is needed for binaries that are + # dynamically linked with libLLVM, so they can find it on default path. + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/$_prefix/lib/$main_soname "$subpkgdir"/usr/lib/ + mv "$pkgdir"/$_prefix/lib/libLLVM.so.$_majorver* "$subpkgdir"/usr/lib/ + ln -s $main_soname "$subpkgdir"/usr/lib/$ver_soname + strip "$subpkgdir"/usr/lib/$ver_soname #797 + + # And also symlink it back to the LLVM prefix. + mkdir -p "$subpkgdir"/$_prefix/lib + ln -s ../../$main_soname "$subpkgdir"/$_prefix/lib/$main_soname + ln -s ../../$main_soname "$subpkgdir"/$_prefix/lib/$ver_soname + ln -s ../../$main_soname "$subpkgdir"/$_prefix/lib/libLLVM.so +} + +dev() { + _common_subpkg + default_dev + + mkdir -p "$subpkgdir"/$_prefix/bin + + mv "$pkgdir"/$_prefix/lib "$subpkgdir"/$_prefix/ + mv "$pkgdir"/$_prefix/include "$subpkgdir"/$_prefix/ + + mv "$pkgdir"/$_prefix/bin/llvm-config "$subpkgdir"/$_prefix/bin/ +} + +_test_utils() { + pkgdesc="LLVM $_majorver utilities for executing LLVM and Clang style test suites" + depends="python3" + _common_subpkg + replaces="" + + litver="$(python3 "$builddir"/utils/lit/setup.py --version 2>/dev/null \ + | sed 's/\.dev.*$//')" + test -n "$litver" || return 1 + provides="$provides lit=$litver-r$pkgrel" + + cd "$builddir"/build + + install -D -m 755 bin/FileCheck "$subpkgdir"/$_prefix/bin/FileCheck + install -D -m 755 bin/count "$subpkgdir"/$_prefix/bin/count + install -D -m 755 bin/not "$subpkgdir"/$_prefix/bin/not + + python3 ../utils/lit/setup.py install --prefix=/usr --root="$subpkgdir" + ln -s ../../../bin/lit "$subpkgdir"/$_prefix/bin/lit +} + +_common_subpkg() { + if [ "$_default_llvm" = yes ]; then + replaces="llvm${subpkgname#$pkgname}" + provides="$replaces=$pkgver-r$pkgrel" + fi +} + +sha512sums="25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db llvm-project-18.1.8.src.tar.xz +f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch +d56945bb0476561028616222846257f990d66e68b4458894f8791252411038b269831f9400ed9df3b99f571a82443caaac347a8b38a5516c77c3583469118309 disable-FileSystemTest.CreateDir-perms-assert.patch +9e919d7988b18c7184d9fccd14911d70bbe2acf82d38111bfd41f1ba2976fea07e74527a43c552dad158c982a2cbaaf03f6a1e98c7a1fc02b4e75382cfe6d0b2 dyld-elf-ppc32.patch +807587a0c897d47a01a846c5c4f7cbf1f2d16437a163b66ee2381a7147e9d04b0141b2c76d022db61903d0d2841ddb267ba98c66c9e41501ca41837659743df8 hexagon.patch +22dedbbdc99ab4df6c64921186803552fc61cfc00a5cd052295a5450809e7205ac21dd07df158b7e99b960084b2ec3d8832480a8cd073fe1c2d613cd21c90b60 i586-json-test.patch +b186ce027dca389cfd23dc91b03e023e688c7610745cf62d0b277b6178972bcf55abf0df08453f2a6b85dc61dba929cb565cb30633a2fe0f193a443f54025bf7 m68k-endianness.patch +64a28241b9ea87cfc4313440bf53b1c85dff9a1c84846f5b7619b67842acd68da878a1196baccb1e28f44a1484c09d5bffd4cf14341ed2b24642006e6d87b90a macho32.patch +bec1fe4761dae33a8012a54b7bbdd179cac82febcd46ace1844772c06f207661c903f05fcb7a5ebbbece3e33a88b20a5d9b31b40e8a8cd5c626aec04cb6735be musl-ppc64-elfv2.patch +bda83678acb97be4d4236179792b3555b8000242fa6bd9e2e78dcd4f6182395df7fa9b8742fde946f19b668615ab37db8670340d43683787d36c540937bca523 ppc-gcc-bug.patch +89ef5fbab039b017a5652656adf17b680525f1c5dd0b1afc8034fe0b34a2ca196d87640f54cc826356cfcd88c6e5f10754b7e38f04ca49ede4f3864080b787bd python3-test.patch +3dc797036dd976db76c774c4b87609d8548cfcd6575dd1e5322a2170fca4419b6934e12874f1c6650d73b858527d22d70e7abe5270dff79c190feeeb1d965d0a roundeven.patch" diff --git a/user/llvm18/disable-FileSystemTest.CreateDir-perms-assert.patch b/user/llvm18/disable-FileSystemTest.CreateDir-perms-assert.patch new file mode 100644 index 000000000..64f13db73 --- /dev/null +++ b/user/llvm18/disable-FileSystemTest.CreateDir-perms-assert.patch @@ -0,0 +1,61 @@ +Do not assert permissions of file created in /tmp directory. + +This assertion fails, probably due to some specific setup of /tmp +on build servers. + + FAIL: LLVM-Unit :: Support/SupportTests/FileSystemTest.CreateDir (1293 of 17222) + ******************** TEST 'LLVM-Unit :: Support/SupportTests/FileSystemTest.CreateDir' FAILED ******************** + Note: Google Test filter = FileSystemTest.CreateDir + [==========] Running 1 test from 1 test case. + [----------] Global test environment set-up. + [----------] 1 test from FileSystemTest + [ RUN ] FileSystemTest.CreateDir + /home/buildozer/aports/testing/llvm3.9/src/llvm-3.9.1.src/unittests/Support/Path.cpp:591: Failure + Value of: fs::perms::owner_read | fs::perms::owner_exe + Actual: 320 + Expected: Status.permissions() & fs::perms::all_all + Which is: 448 + +--- a/unittests/Support/Path.cpp ++++ b/unittests/Support/Path.cpp +@@ -1004,23 +1004,23 @@ + ASSERT_NO_ERROR(fs::remove(Twine(TestDirectory) + "foo")); + + #ifdef LLVM_ON_UNIX +- // Set a 0000 umask so that we can test our directory permissions. +- mode_t OldUmask = ::umask(0000); +- +- fs::file_status Status; +- ASSERT_NO_ERROR( +- fs::create_directory(Twine(TestDirectory) + "baz500", false, +- fs::perms::owner_read | fs::perms::owner_exe)); +- ASSERT_NO_ERROR(fs::status(Twine(TestDirectory) + "baz500", Status)); +- ASSERT_EQ(Status.permissions() & fs::perms::all_all, +- fs::perms::owner_read | fs::perms::owner_exe); +- ASSERT_NO_ERROR(fs::create_directory(Twine(TestDirectory) + "baz777", false, +- fs::perms::all_all)); +- ASSERT_NO_ERROR(fs::status(Twine(TestDirectory) + "baz777", Status)); +- ASSERT_EQ(Status.permissions() & fs::perms::all_all, fs::perms::all_all); +- +- // Restore umask to be safe. +- ::umask(OldUmask); ++// // Set a 0000 umask so that we can test our directory permissions. ++// mode_t OldUmask = ::umask(0000); ++// ++// fs::file_status Status; ++// ASSERT_NO_ERROR( ++// fs::create_directory(Twine(TestDirectory) + "baz500", false, ++// fs::perms::owner_read | fs::perms::owner_exe)); ++// ASSERT_NO_ERROR(fs::status(Twine(TestDirectory) + "baz500", Status)); ++// ASSERT_EQ(Status.permissions() & fs::perms::all_all, ++// fs::perms::owner_read | fs::perms::owner_exe); ++// ASSERT_NO_ERROR(fs::create_directory(Twine(TestDirectory) + "baz777", false, ++// fs::perms::all_all)); ++// ASSERT_NO_ERROR(fs::status(Twine(TestDirectory) + "baz777", Status)); ++// ASSERT_EQ(Status.permissions() & fs::perms::all_all, fs::perms::all_all); ++// ++// // Restore umask to be safe. ++// ::umask(OldUmask); + #endif + + #ifdef _WIN32 diff --git a/user/llvm18/dwarf-info.patch b/user/llvm18/dwarf-info.patch new file mode 100644 index 000000000..9357c6519 --- /dev/null +++ b/user/llvm18/dwarf-info.patch @@ -0,0 +1,28 @@ +Author: A. Wilcox <awilfox@adelielinux.org> + +This isn't the proper fix, but debugging the LLVM formatter is a bit +above my paygrade at the moment. + +The issue shows up in the DWARF X86 test on ppc and armv7: + +error: Simplified template DW_AT_name could not be reconstituted: + original: f3<char, '\x00', '\x01', '\x06', '\a', '\r', '\x0e', '\x1f', ' ', '!', '\x7f', '\x80'> + reconstituted: f3<char, '\x00', '\x00', '\x00', '\a', '\r', '\x00', '\x00', ' ', '!', '\x00', '\x00'> + +With this patch, this error does not occur. Debugging shows that the +llvm::format overload called in the error case is <long long>, so I +think it is having an issue converting a 64-bit value on platforms +where char is default-unsigned. + +(pmmx does not show this issue, and has signed char.) +--- llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp.old 2022-06-22 16:46:24.000000000 +0000 ++++ llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp 2022-11-28 10:32:05.573627744 +0000 +@@ -506,7 +506,7 @@ + OS << (char)Val; + OS << "'"; + } else if (Val < 256) +- OS << to_string(llvm::format("'\\x%02x'", Val)); ++ OS << to_string(llvm::format("'\\x%02x'", (unsigned char)Val)); + else if (Val <= 0xFFFF) + OS << to_string(llvm::format("'\\u%04x'", Val)); + else diff --git a/user/llvm18/dyld-elf-ppc32.patch b/user/llvm18/dyld-elf-ppc32.patch new file mode 100644 index 000000000..7fb744169 --- /dev/null +++ b/user/llvm18/dyld-elf-ppc32.patch @@ -0,0 +1,24 @@ +Author: A. Wilcox <awilfox@adelielinux.org> +Upstream-Status: Pending + +This implements the R_PPC_REL32 relocation type, which is needed for the +OrcJIT to work properly on 32-bit PowerPC. + +Needs more tests before submitting upstream, but seems to DTRT. + +--- llvm-14.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp.old 2022-06-22 16:46:24.000000000 +0000 ++++ llvm-14.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp 2022-11-28 06:33:12.239921624 +0000 +@@ -830,6 +830,13 @@ + case ELF::R_PPC_ADDR16_HA: + writeInt16BE(LocalAddress, applyPPCha(Value + Addend)); + break; ++ case ELF::R_PPC_REL32: ++ uint32_t FinalAddress = Section.getLoadAddressWithOffset(Offset); ++ int64_t delta = static_cast<int64_t>(Value - FinalAddress + Addend); ++ if (SignExtend64<32>(delta) != delta) ++ llvm_unreachable("Relocation R_PPC_REL32 overflow"); ++ writeInt32BE(LocalAddress, delta); ++ break; + } + } + diff --git a/user/llvm18/hexagon.patch b/user/llvm18/hexagon.patch new file mode 100644 index 000000000..552079b80 --- /dev/null +++ b/user/llvm18/hexagon.patch @@ -0,0 +1,95 @@ +From 37605662a99bd0815e2f2e452eb6ab1ce53ecffd Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 30 May 2022 02:51:34 -0500 +Subject: [PATCH] [Hexagon][Tests] Fix tests on Linux/musl + +When running on a host system using musl, the target triple is defined +as hexagon-unknown-linux-musl by default. The Linux ABI differs from +the non-Linux one with varargs, so this causes the tests to fail. + +Closes BZ49592, PR48936. + +Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com> +--- + test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll | 2 +- + test/CodeGen/Hexagon/long-calls.ll | 2 +- + test/CodeGen/Hexagon/mlong-calls.ll | 2 +- + test/CodeGen/Hexagon/pic-regusage.ll | 2 +- + test/CodeGen/Hexagon/runtime-stkchk.ll | 2 +- + test/CodeGen/Hexagon/swp-memrefs-epilog.ll | 2 +- + test/CodeGen/Hexagon/vararg-formal.ll | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll b/test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll +index afbef217911a..d317d7eac800 100644 +--- a/test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll ++++ b/test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -mtriple=hexagon -O2 -spill-func-threshold=2 < %s | FileCheck %s ++; RUN: llc -march=hexagon -mtriple=hexagon-unknown-linux-gnu -O2 -spill-func-threshold=2 < %s | FileCheck %s + + declare i32 @f0(i32, i32, i32, i32, i32, i32) + +diff --git a/test/CodeGen/Hexagon/long-calls.ll b/test/CodeGen/Hexagon/long-calls.ll +index 628362783c9c..886405a2d91a 100644 +--- a/test/CodeGen/Hexagon/long-calls.ll ++++ b/test/CodeGen/Hexagon/long-calls.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -mtriple=hexagon -enable-save-restore-long -hexagon-initial-cfg-cleanup=0 < %s | FileCheck %s ++; RUN: llc -march=hexagon -mtriple=hexagon-unknown-linux-gnu -enable-save-restore-long -hexagon-initial-cfg-cleanup=0 < %s | FileCheck %s + + ; Check that the -long-calls feature is supported by the backend. + +diff --git a/test/CodeGen/Hexagon/mlong-calls.ll b/test/CodeGen/Hexagon/mlong-calls.ll +index d76b87f987fe..383486dfe63d 100644 +--- a/test/CodeGen/Hexagon/mlong-calls.ll ++++ b/test/CodeGen/Hexagon/mlong-calls.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -hexagon-long-calls -mtriple=hexagon -enable-save-restore-long=true < %s | FileCheck %s ++; RUN: llc -hexagon-long-calls -march=hexagon -mtriple=hexagon-unknown-linux-gnu -enable-save-restore-long=true < %s | FileCheck %s + + ; CHECK: call ##f1 + ; CHECK: jump ##__restore +diff --git a/test/CodeGen/Hexagon/pic-regusage.ll b/test/CodeGen/Hexagon/pic-regusage.ll +index 9d3b6cec39e3..077063e36550 100644 +--- a/test/CodeGen/Hexagon/pic-regusage.ll ++++ b/test/CodeGen/Hexagon/pic-regusage.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -mtriple=hexagon -relocation-model=pic < %s | FileCheck %s ++; RUN: llc -march=hexagon -mtriple=hexagon-unknown-linux-gnu -relocation-model=pic < %s | FileCheck %s + + ; Force the use of R14 (by clobbering everything else in the inline asm). + ; Make sure that R14 is not set before the __save call (which will clobber +diff --git a/test/CodeGen/Hexagon/runtime-stkchk.ll b/test/CodeGen/Hexagon/runtime-stkchk.ll +index 66e93d02ef51..2f3f2ad10f6a 100644 +--- a/test/CodeGen/Hexagon/runtime-stkchk.ll ++++ b/test/CodeGen/Hexagon/runtime-stkchk.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -mtriple=hexagon -mcpu=hexagonv55 -enable-stackovf-sanitizer < %s | FileCheck %s ++; RUN: llc -march=hexagon -mcpu=hexagonv55 -mtriple=hexagon-unknown-linux-gnu -enable-stackovf-sanitizer < %s | FileCheck %s + + ; CHECK-LABEL: foo_1 + ; CHECK: __runtime_stack_check +diff --git a/test/CodeGen/Hexagon/swp-memrefs-epilog.ll b/test/CodeGen/Hexagon/swp-memrefs-epilog.ll +index 20e39dd08fd7..b34dfbc31e9d 100644 +--- a/test/CodeGen/Hexagon/swp-memrefs-epilog.ll ++++ b/test/CodeGen/Hexagon/swp-memrefs-epilog.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -march=hexagon -O2 -fp-contract=fast < %s -pipeliner-experimental-cg=true | FileCheck %s ++; RUN: llc -march=hexagon -mtriple=hexagon-unknown-linux-gnu -O2 -fp-contract=fast < %s -pipeliner-experimental-cg=true | FileCheck %s + + ; Test that the memoperands for instructions in the epilog are updated + ; correctly. Previously, the pipeliner updated the offset for the memoperands +diff --git a/test/CodeGen/Hexagon/vararg-formal.ll b/test/CodeGen/Hexagon/vararg-formal.ll +index 6bba65fcab16..fb3132929bcf 100644 +--- a/test/CodeGen/Hexagon/vararg-formal.ll ++++ b/test/CodeGen/Hexagon/vararg-formal.ll +@@ -1,4 +1,4 @@ +-; RUN: llc -march=hexagon < %s | FileCheck %s ++; RUN: llc -march=hexagon -mtriple=hexagon-unknown-linux-gnu < %s | FileCheck %s + + ; Make sure that the first formal argument is not loaded from memory. + ; CHECK-NOT: memw +-- +2.36.0 + diff --git a/user/llvm18/i586-json-test.patch b/user/llvm18/i586-json-test.patch new file mode 100644 index 000000000..e72763976 --- /dev/null +++ b/user/llvm18/i586-json-test.patch @@ -0,0 +1,19 @@ +--- llvm/unittests/Support/JSONTest.cpp.old 2024-06-15 12:21:32.000000000 -0500 ++++ llvm/unittests/Support/JSONTest.cpp 2024-07-08 21:09:43.106973458 -0500 +@@ -313,6 +313,8 @@ + 1.5, + }, + ++ // Broken by -fexcess-precision=fast. ++#ifndef __i586 + { + "Integer, not exact double. Stored as int64, convertible.", + int64_t{0x4000000000000001}, +@@ -328,6 +330,7 @@ + int64_t{-0x4000000000000001}, + double{-0x4000000000000000}, + }, ++#endif + + // PR46470, + // https://developercommunity.visualstudio.com/content/problem/1093399/incorrect-result-when-printing-6917529027641081856.html diff --git a/user/llvm18/llvm-fix-build-with-musl-libc.patch b/user/llvm18/llvm-fix-build-with-musl-libc.patch new file mode 100644 index 000000000..6ee91ea44 --- /dev/null +++ b/user/llvm18/llvm-fix-build-with-musl-libc.patch @@ -0,0 +1,46 @@ +From 5c571082fdaf61f6df19d9b7137dc26d71334058 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 18 Feb 2016 10:33:04 +0100 +Subject: [PATCH 2/3] Fix build with musl libc + +On musl libc the fopen64 and fopen are the same thing, but for +compatibility they have a `#define fopen64 fopen`. Same applies for +fseek64, fstat64, fstatvfs64, ftello64, lstat64, stat64 and tmpfile64. +--- + include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h +index 7becdf0..7f14427 100644 +--- a/include/llvm/Analysis/TargetLibraryInfo.h ++++ b/include/llvm/Analysis/TargetLibraryInfo.h +@@ -18,6 +18,26 @@ + #include "llvm/IR/Module.h" + #include "llvm/Pass.h" + ++#undef fopen64 ++#undef fseeko64 ++#undef fstat64 ++#undef fstatvfs64 ++#undef ftello64 ++#undef lstat64 ++#undef stat64 ++#undef tmpfile64 ++#undef F_GETLK64 ++#undef F_SETLK64 ++#undef F_SETLKW64 ++#undef flock64 ++#undef open64 ++#undef openat64 ++#undef creat64 ++#undef lockf64 ++#undef posix_fadvise64 ++#undef posix_fallocate64 ++#undef off64_t ++ + namespace llvm { + /// VecDesc - Describes a possible vectorization of a function. + /// Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized +-- +2.7.3 + diff --git a/user/llvm18/m68k-endianness.patch b/user/llvm18/m68k-endianness.patch new file mode 100644 index 000000000..49e96a995 --- /dev/null +++ b/user/llvm18/m68k-endianness.patch @@ -0,0 +1,26 @@ +Upstream: https://github.com/llvm/llvm-project/issues/94726 + +diff --git a/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h b/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h +index 1376b06bef6f..62ea03cc9760 100644 +--- a/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h ++++ b/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h +@@ -85,9 +85,16 @@ template <typename value_t> value_t swapWord(value_t Val) { + Val = support::endian::byte_swap(Val, llvm::endianness::big); + value_t NewVal = 0; + for (unsigned i = 0U; i != NumWords; ++i) { +- uint16_t Part = (Val >> (i * 16)) & 0xFFFF; +- Part = support::endian::byte_swap(Part, llvm::endianness::big); +- NewVal |= (Part << (i * 16)); ++ if (llvm::endianness::native == llvm::endianness::big) { ++ uint16_t Lo = (Val >> (i * 16)) & 0xFFFF; ++ NewVal |= (Lo << (++i * 16)); ++ uint16_t Hi = (Val >> (++i * 16)) & 0xFFFF; ++ NewVal |= (Hi << ((i - 1) * 16)); ++ } else { ++ uint16_t Part = (Val >> (i * 16)) & 0xFFFF; ++ Part = support::endian::byte_swap(Part, llvm::endianness::big); ++ NewVal |= (Part << (i * 16)); ++ } + } + return NewVal; + } diff --git a/user/llvm18/macho32.patch b/user/llvm18/macho32.patch new file mode 100644 index 000000000..e18098372 --- /dev/null +++ b/user/llvm18/macho32.patch @@ -0,0 +1,17 @@ +Use integer offset math instead of pointer math to determine load +command bounds. + +Upstream-URL: https://github.com/llvm/llvm-project/issues/56746 + +--- llvm-14.0.6.src/lib/Object/MachOObjectFile.cpp.old 2022-06-22 16:46:24.000000000 +0000 ++++ llvm-14.0.6.src/lib/Object/MachOObjectFile.cpp 2022-11-28 04:21:02.730211841 +0000 +@@ -192,7 +192,8 @@ + getLoadCommandInfo(const MachOObjectFile &Obj, const char *Ptr, + uint32_t LoadCommandIndex) { + if (auto CmdOrErr = getStructOrErr<MachO::load_command>(Obj, Ptr)) { +- if (CmdOrErr->cmdsize + Ptr > Obj.getData().end()) ++ uint64_t Offset = Ptr - Obj.getData().begin(); ++ if (CmdOrErr->cmdsize + Offset > Obj.getData().size()) + return malformedError("load command " + Twine(LoadCommandIndex) + + " extends past end of file"); + if (CmdOrErr->cmdsize < 8) diff --git a/user/llvm18/musl-ppc64-elfv2.patch b/user/llvm18/musl-ppc64-elfv2.patch new file mode 100644 index 000000000..49f6e5702 --- /dev/null +++ b/user/llvm18/musl-ppc64-elfv2.patch @@ -0,0 +1,28 @@ +From 750d323a6060ad92c3d247f85d6555041f55b4a5 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Thu, 4 Oct 2018 15:26:59 -0500 +Subject: [PATCH] Add support for powerpc64-*-linux-musl targets + +This patch ensures that 64-bit PowerPC musl targets use ELFv2 ABI on both +endians. It additionally adds a test that big endian PPC64 uses ELFv2 on +musl. +--- + lib/Target/PowerPC/PPCTargetMachine.cpp | 4 ++++ + test/CodeGen/PowerPC/ppc64-elf-abi.ll | 1 + + 2 files changed, 5 insertions(+) + +diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll +index 1e17930304b..aa594b37b47 100644 +--- a/test/CodeGen/PowerPC/ppc64-elf-abi.ll ++++ b/test/CodeGen/PowerPC/ppc64-elf-abi.ll +@@ -1,6 +1,7 @@ + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2 ++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2 +-- +2.18.0 + diff --git a/user/llvm18/ppc-gcc-bug.patch b/user/llvm18/ppc-gcc-bug.patch new file mode 100644 index 000000000..3c1371dc4 --- /dev/null +++ b/user/llvm18/ppc-gcc-bug.patch @@ -0,0 +1,22 @@ +Upstream: https://github.com/llvm/llvm-project/issues/95594 +Ref: #1204 + +--- llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h.old 2024-06-15 12:21:32.000000000 -0500 ++++ llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h 2024-06-25 21:42:07.495284340 -0500 +@@ -390,6 +390,8 @@ + return Size; + } + ++#pragma GCC push_options ++#pragma GCC optimize("no-tree-ch") + static bool serialize(SPSOutputBuffer &OB, const SequenceT &S) { + if (!SPSArgList<uint64_t>::serialize(OB, static_cast<uint64_t>(S.size()))) + return false; +@@ -398,6 +400,7 @@ + return false; + return true; + } ++#pragma GCC pop_options + + static bool deserialize(SPSInputBuffer &IB, SequenceT &S) { + using TBSD = TrivialSPSSequenceDeserialization<SPSElementTagT, SequenceT>; diff --git a/user/llvm18/python3-test.patch b/user/llvm18/python3-test.patch new file mode 100644 index 000000000..76f13385d --- /dev/null +++ b/user/llvm18/python3-test.patch @@ -0,0 +1,8 @@ +--- llvm-7.0.1.src/test/BugPoint/compile-custom.ll.py.old 2014-03-13 00:10:37.000000000 +0000 ++++ llvm-7.0.1.src/test/BugPoint/compile-custom.ll.py 2019-03-10 03:48:48.600000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + from __future__ import print_function + diff --git a/user/llvm18/roundeven.patch b/user/llvm18/roundeven.patch new file mode 100644 index 000000000..3747969c1 --- /dev/null +++ b/user/llvm18/roundeven.patch @@ -0,0 +1,49 @@ +--- llvm-14.0.4.src/lib/Analysis/TargetLibraryInfo.cpp.old 2022-05-24 22:02:58.000000000 +0000 ++++ llvm-14.0.4.src/lib/Analysis/TargetLibraryInfo.cpp 2022-07-06 01:38:22.016862561 +0000 +@@ -634,6 +634,13 @@ + TLI.setUnavailable(LibFunc_statvfs64); + TLI.setUnavailable(LibFunc_tmpfile64); + ++ // These functions are unavailable on musl. ++ if (T.isMusl()) { ++ TLI.setUnavailable(LibFunc_roundeven); ++ TLI.setUnavailable(LibFunc_roundevenf); ++ TLI.setUnavailable(LibFunc_roundevenl); ++ } ++ + // Relaxed math functions are included in math-finite.h on Linux (GLIBC). + // Note that math-finite.h is no longer supported by top-of-tree GLIBC, + // so we keep these functions around just so that they're recognized by +--- llvm-14.0.4.src/test/Transforms/InstCombine/double-float-shrink-2.ll.old 2022-05-24 22:02:58.000000000 +0000 ++++ llvm-14.0.4.src/test/Transforms/InstCombine/double-float-shrink-2.ll 2022-07-06 02:03:20.657791057 +0000 +@@ -1,5 +1,5 @@ + ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py + ; REQUIRES: x86-registered-target,sparc-registered-target +-; RUN: opt < %s -passes=instcombine -S -mtriple "i386-pc-linux" | FileCheck %s --check-prefixes=CHECK,DOUBLE-4BYTE-ALIGN ++; RUN: opt < %s -passes=instcombine -S -mtriple "i386-pc-linux-gnu" | FileCheck %s --check-prefixes=CHECK,DOUBLE-4BYTE-ALIGN + ; RUN: opt < %s -passes=instcombine -S -mtriple "i386-pc-win32" | FileCheck %s --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN + ; RUN: opt < %s -passes=instcombine -S -mtriple "x86_64-pc-win32" | FileCheck %s --check-prefixes=CHECK,DOUBLE-8BYTE-ALIGN +--- llvm-14.0.4.src/test/ExecutionEngine/Interpreter/intrinsics.ll.old 2022-05-24 22:02:58.000000000 +0000 ++++ llvm-14.0.4.src/test/ExecutionEngine/Interpreter/intrinsics.ll 2022-07-23 06:50:59.336665672 +0000 +@@ -13,8 +13,8 @@ + declare double @llvm.trunc.f64(double) + declare float @llvm.round.f32(float) + declare double @llvm.round.f64(double) +-declare float @llvm.roundeven.f32(float) +-declare double @llvm.roundeven.f64(double) ++;declare float @llvm.roundeven.f32(float) ++;declare double @llvm.roundeven.f64(double) + declare float @llvm.copysign.f32(float, float) + declare double @llvm.copysign.f64(double, double) + +@@ -31,8 +31,8 @@ + %trunc64 = call double @llvm.trunc.f64(double 0.000000e+00) + %round32 = call float @llvm.round.f32(float 0.000000e+00) + %round64 = call double @llvm.round.f64(double 0.000000e+00) +- %roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00) +- %roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00) ++ ;%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00) ++ ;%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00) + %copysign32 = call float @llvm.copysign.f32(float 0.000000e+00, float 0.000000e+00) + %copysign64 = call double @llvm.copysign.f64(double 0.000000e+00, double 0.000000e+00) + ret i32 0 diff --git a/user/luarocks/APKBUILD b/user/luarocks/APKBUILD index 99b8874e5..fe0a75290 100644 --- a/user/luarocks/APKBUILD +++ b/user/luarocks/APKBUILD @@ -1,28 +1,31 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=luarocks -pkgver=3.7.0 +pkgver=3.9.2 pkgrel=0 pkgdesc="Package manager for Lua software" url="https://luarocks.org/" arch="noarch" options="!check" # No test suite license="MIT" -depends="lua5.3" -makedepends="lua5.3-dev" -source="https://luarocks.github.io/luarocks/releases/luarocks-$pkgver.tar.gz" +depends="lua5.3-dev" +makedepends="" +source="https://luarocks.github.io/luarocks/releases/luarocks-$pkgver.tar.gz + config.lua" build() { ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --lua-version=5.3 \ - --rocks-tree=/usr/share/lua/5.3 + --rocks-tree=/usr/local make build } package() { make DESTDIR="$pkgdir" install + install -D -m 644 "$srcdir"/config.lua "$pkgdir"/etc/$pkgname/config.lua } -sha512sums="cc3c555c488da9f95a118eedb74cb9e2a38b572e172958843dabebce125524e58a13ac65e89a349deb8fef13b6de751074fc3adbb430ab55d4e4109288119153 luarocks-3.7.0.tar.gz" +sha512sums="7e93164bdcf35338e993822931a8e59957ab69c6e23236a7a075649c2f7cd173305c4ca6e9d115fc5e282cb76c21754d7adac92b21885006e5ee3bc06a9d0059 luarocks-3.9.2.tar.gz +5845d5643c3eeb6d4af6d919a588c5253c91e6a0b278116b4cd855437fc48ac64970fd3ef758c135bc0536ddc1aaa16b01c50e33c864f59aeef1ccced0d01d82 config.lua" diff --git a/user/luarocks/config.lua b/user/luarocks/config.lua new file mode 100644 index 000000000..beb6ce586 --- /dev/null +++ b/user/luarocks/config.lua @@ -0,0 +1,17 @@ +rocks_trees = { + -- User-local Lua and Lua/C modules. + { name = 'user', + root = home..'/.luarocks' }, + -- System-wide Lua and Lua/C modules for specific Lua version installed by apk. + { name = 'distro-modules', + root = '/usr' }, + -- System-wide Lua modules compatible with Lua 5.1-5.4 installed by apk. + { name = 'distro-modules-common', + root = '/usr', + lua_dir = '/usr/share/lua/common', + rocks_dir = '/usr/lib/luarocks/rocks-common' }, + -- System-wide Lua and Lua/C modules installed by user. + { name = 'system', + root = '/usr/local' }, +} +deps_mode = 'all' diff --git a/user/lximage-qt/APKBUILD b/user/lximage-qt/APKBUILD index 304b232f3..a55458045 100644 --- a/user/lximage-qt/APKBUILD +++ b/user/lximage-qt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lximage-qt -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Image viewer and screenshot tool for LXQt" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="c3fc8e24f78a9cd65736ba1af07b7fd5ba241eab233a595f7b05982d64a0a7a88d81c60eafea632779faa44f76cdb3bb501d2dc3b3758e3f6256fe2da10c37ac lximage-qt-1.3.0.tar.xz" +sha512sums="c0dea9418890745de685c7df228ceb849fa21781764c2089481bea89526842e5e8f0972e032ba9c52b07c32202ed284d977f47ace598c44880dff661d76cd125 lximage-qt-1.4.0.tar.xz" diff --git a/user/lxqt-about/APKBUILD b/user/lxqt-about/APKBUILD index 707451aed..5b7f38e9f 100644 --- a/user/lxqt-about/APKBUILD +++ b/user/lxqt-about/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-about -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Dialog window providing information about LXQt and the running system" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="31a96a4f2ea4961b89b9080188bd8a9fa5f304868a2ab0b96aa9821de88a9aaebf64a8257cbdd8427f4c025045dc7a13602b35311ab96b9b8297c43d5bb92bf7 lxqt-about-1.3.0.tar.xz" +sha512sums="308ffc83d8d9a1b835670cb3ea97b97859922bbd9026d1b8b7bd98949030e42bf96a4dcb6363f24d00fd75733c436e4dbfe29e37b4b8c6cda07460ac1ec05241 lxqt-about-1.4.0.tar.xz" diff --git a/user/lxqt-admin/APKBUILD b/user/lxqt-admin/APKBUILD index 40b60ee98..9cb7421aa 100644 --- a/user/lxqt-admin/APKBUILD +++ b/user/lxqt-admin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-admin -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Administrative tools for LXQt" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="lxqt-policykit" makedepends="cmake extra-cmake-modules qt5-qttools-dev kwindowsystem-dev - lxqt-build-tools>=$_lxqt liblxqt-dev>=${pkgver%.*}.0 polkit-qt-1-dev" + lxqt-build-tools>=$_lxqt liblxqt-dev>=${pkgver%.*} polkit-qt-1-dev" source="https://github.com/lxqt/lxqt-admin/releases/download/$pkgver/lxqt-admin-$pkgver.tar.xz" build() { @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="5538d20466a42c5a6e31925889ce2315bd63fc15b79ede0faacd485f10a33375f9799597601dcf3bba421e7b55797b0d7c898c2b579d878c32e79ef897735ef6 lxqt-admin-1.3.0.tar.xz" +sha512sums="f6292006f308cd435243577c5f6cf7e7ebb6cb3ed069b26a3e8cf295e299e482255f1d39801db1e5f94cf780ec6621c8100e2ab5a2c2d5599551f1c7a2c19610 lxqt-admin-1.4.0.tar.xz" diff --git a/user/lxqt-archiver/APKBUILD b/user/lxqt-archiver/APKBUILD index 1825e68c4..acd4780bb 100644 --- a/user/lxqt-archiver/APKBUILD +++ b/user/lxqt-archiver/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-archiver -pkgver=0.8.0 -_lxqt=1.3.0 +pkgver=0.9.0 +_lxqt=1.4.0 _lxqt_build=0.13.0 pkgrel=0 pkgdesc="Archive management utility for the LXQt desktop" @@ -45,4 +45,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="70266581478e75505f708eccee4fd1680c1ff012dd4e99138d0c2d17fb8dfab24d9d5e5453d5d4a3f7a9b8437e8a980c3edf190f3e319400c46a655ba7db4898 lxqt-archiver-0.8.0.tar.xz" +sha512sums="42ee097ae7fb17dbd00d9b94e8673664911c73bb5f353d08177c78d548eb24c39aa1daf57347eeefcb46ec63a8702c37f63ca2b42fd22bc85aed8f7a41585f3c lxqt-archiver-0.9.0.tar.xz" diff --git a/user/lxqt-config/APKBUILD b/user/lxqt-config/APKBUILD index f85ea331f..3b690abea 100644 --- a/user/lxqt-config/APKBUILD +++ b/user/lxqt-config/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-config -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Collection of tools for configuring LXQt and the underlying system" @@ -9,13 +9,14 @@ url="https://lxqt.github.io/" arch="all" options="!check" # No test suite. license="LGPL-2.1+" -depends="" +depends="lxqt-menu-data" makedepends="cmake extra-cmake-modules qt5-qtsvg-dev qt5-qttools-dev - liblxqt-dev>=${pkgver%.*}.0 lxqt-build-tools>=$_lxqt + liblxqt-dev>=${pkgver%.*} lxqt-build-tools>=$_lxqt libxcursor-dev eudev-dev kwindowsystem-dev libkscreen-dev xf86-input-libinput-dev libxi-dev" subpackages="$pkgname-doc" -source="https://github.com/lxqt/lxqt-config/releases/download/$pkgver/lxqt-config-$pkgver.tar.xz" +source="https://github.com/lxqt/lxqt-config/releases/download/$pkgver/lxqt-config-$pkgver.tar.xz + revert-kscren-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -39,4 +40,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="30610d1c90d897eb54ce5ee75a39721a7818b0164bc97dece5b74aec2032c3b0027316995d83c077352e93fd2f7ab319d1801ed5ce356b857805e855db71cd75 lxqt-config-1.3.0.tar.xz" +sha512sums="a3e6722c3f63b3c7382ec84723e3a4d838d99b2c42ce731565f940873b275ef025b7bc1a570f165b7fce521eb77bb7b83b02e922bee251507b773c8de4f785fc lxqt-config-1.4.0.tar.xz +6580b8254c457a75221faf52410de3f0a678f0e9cde719dbe7d899cade521d4674a9f8b1807647fa7a9e9ed90e8787883a8b5e7d15236872299a0c7a51ad6f5e revert-kscren-bump.patch" diff --git a/user/lxqt-config/revert-kscren-bump.patch b/user/lxqt-config/revert-kscren-bump.patch new file mode 100644 index 000000000..bb9461b72 --- /dev/null +++ b/user/lxqt-config/revert-kscren-bump.patch @@ -0,0 +1,57 @@ +diff '--color=auto' -Nurd lxqt-config-1.4.0/CMakeLists.txt lxqt-config-1.4.0.new/CMakeLists.txt +--- lxqt-config-1.4.0/CMakeLists.txt 2023-11-05 03:36:31.000000000 -0800 ++++ lxqt-config-1.4.0.new/CMakeLists.txt 2023-11-26 02:44:43.889325759 -0800 +@@ -26,7 +26,7 @@ + set(CMAKE_AUTORCC ON) + + set(KF5_MINIMUM_VERSION "5.36.0") +-set(KF5SCREEN_MINIMUM_VERSION "5.27.0") ++set(KF5SCREEN_MINIMUM_VERSION "5.2.0") + set(LXQT_MINIMUM_VERSION "1.4.0") + set(QT_MINIMUM_VERSION "5.15.0") + +diff '--color=auto' -Nurd lxqt-config-1.4.0/lxqt-config-monitor/kscreenutils.cpp lxqt-config-1.4.0.new/lxqt-config-monitor/kscreenutils.cpp +--- lxqt-config-1.4.0/lxqt-config-monitor/kscreenutils.cpp 2023-11-05 03:36:31.000000000 -0800 ++++ lxqt-config-1.4.0.new/lxqt-config-monitor/kscreenutils.cpp 2023-11-26 02:45:27.458971215 -0800 +@@ -63,7 +63,7 @@ + output->setPos(pos); + output->setEnabled(true); + //first left one as primary +- output->setPriority(width == 0 ? 1 : 0); ++ output->setPrimary(width == 0); + KScreen::ModePtr mode(output->currentMode()); + //if (!mode) + { +diff '--color=auto' -Nurd lxqt-config-1.4.0/lxqt-config-monitor/loadsettings.cpp lxqt-config-1.4.0.new/lxqt-config-monitor/loadsettings.cpp +--- lxqt-config-1.4.0/lxqt-config-monitor/loadsettings.cpp 2023-11-05 03:36:31.000000000 -0800 ++++ lxqt-config-1.4.0.new/lxqt-config-monitor/loadsettings.cpp 2023-11-26 02:46:05.328663054 -0800 +@@ -133,7 +133,7 @@ + if( !output->isConnected() ) + continue; + output->setEnabled( monitor.enabled ); +- output->setPriority( monitor.primary ? 1 : 0 ); ++ output->setPrimary( monitor.primary ); + output->setPos( QPoint(monitor.xPos, monitor.yPos) ); + output->setRotation( (KScreen::Output::Rotation)(monitor.rotation) ); + // output->setCurrentModeId could fail. KScreen sometimes changes mode Id. +diff '--color=auto' -Nurd lxqt-config-1.4.0/lxqt-config-monitor/monitorwidget.cpp lxqt-config-1.4.0.new/lxqt-config-monitor/monitorwidget.cpp +--- lxqt-config-1.4.0/lxqt-config-monitor/monitorwidget.cpp 2023-11-05 03:36:31.000000000 -0800 ++++ lxqt-config-1.4.0.new/lxqt-config-monitor/monitorwidget.cpp 2023-11-26 02:47:02.698196214 -0800 +@@ -138,7 +138,7 @@ + if (config->connectedOutputs().count() == 1) { + setOnlyMonitor(true); + // There isn't always a primary output. Gross. +- output->setPriority(1); ++ output->setPrimary(true); + } + + ui.xPosSpinBox->setValue(output->pos().x()); +@@ -208,7 +208,7 @@ + ui.xPosSpinBox->setVisible(idx == ExtendDisplay); + ui.yPosSpinBox->setVisible(idx == ExtendDisplay); + +- output->setPriority(idx == PrimaryDisplay ? 1 : 0); ++ output->setPrimary(idx == PrimaryDisplay); + if(idx == PrimaryDisplay) + emit primaryOutputChanged(this); + } diff --git a/user/lxqt-desktop/APKBUILD b/user/lxqt-desktop/APKBUILD index 2caf9f767..dc547e02a 100644 --- a/user/lxqt-desktop/APKBUILD +++ b/user/lxqt-desktop/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-desktop pkgver=1.2.0 -pkgrel=0 +pkgrel=2 arch="noarch" pkgdesc="Complete LXQt desktop" url="https://lxqt.github.io/" @@ -13,7 +13,7 @@ depends="breeze breeze-icons oxygen ttf-liberation xorg-server dbus-x11 openbox lxqt-session lxqt-powermanagement lxqt-policykit lxqt-openssh-askpass lxqt-notificationd lxqt-globalkeys lxqt-config lxqt-admin lxqt-about lximage-qt lxqt-themes pavucontrol-qt qt5ct obconf-qt qps screengrab - lxqt-archiver" + lxqt-archiver adelie-fonts adelie-lxqt-theme" makedepends="" subpackages="$pkgname-doc" source="org.adelie-linux.about-lxqt.desktop startlxqt startlxqt.1" diff --git a/user/lxqt-globalkeys/APKBUILD b/user/lxqt-globalkeys/APKBUILD index 4913dca17..e29d124d8 100644 --- a/user/lxqt-globalkeys/APKBUILD +++ b/user/lxqt-globalkeys/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-globalkeys -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Daemon and configuration utility for global shortcuts in LXQt" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt - liblxqt-dev>=${pkgver%.*}.0 qt5-qttools-dev kwindowsystem-dev" + liblxqt-dev>=${pkgver%.*} qt5-qttools-dev kwindowsystem-dev" subpackages="$pkgname-dev" source="https://github.com/lxqt/lxqt-globalkeys/releases/download/$pkgver/lxqt-globalkeys-$pkgver.tar.xz" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="9acdbff95734bc098b312aa906c38766a035041f8f3e58406470716013762a19d7a8f6cc07377dc8921be9aa09647fff2fef69e7c8ed15109dff71cbaf573eb7 lxqt-globalkeys-1.3.0.tar.xz" +sha512sums="de05c15dc6400978093c1f72340214d53200f8e7478ddee47fb7a3124be642f5d27c6bd53801b6a0205985666dcb481a89208b14d54cf2eb3dc36ccae5bdc1f5 lxqt-globalkeys-1.4.0.tar.xz" diff --git a/user/lxqt-menu-data/APKBUILD b/user/lxqt-menu-data/APKBUILD new file mode 100644 index 000000000..99a14137e --- /dev/null +++ b/user/lxqt-menu-data/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=lxqt-menu-data +pkgver=1.4.1 +pkgrel=0 +pkgdesc="Menu data for LXQt" +url="https://lxqt.github.io" +arch="noarch" +options="!check" # no tests +license="LGPL-2.1-only" +depends="" +makedepends="cmake lxqt-build-tools qt5-qtbase-dev qt5-qttools-dev" +subpackages="" +source="https://github.com/lxqt/lxqt-menu-data/releases/download/$pkgver/lxqt-menu-data-$pkgver.tar.xz" + +build() { + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + ${CMAKE_CROSSOPTS} \ + -Bbuild + make -C build +} + +check() { + CTEST_OUTPUT_ON_FAILURE=TRUE ctest build +} + +package() { + make -C build DESTDIR="$pkgdir" install +} + +sha512sums="6e3bc518f6d392a4a4c37fd218d034b48400178bc450b7492339f25dc2de21d493c86ebdbe74bd43a6a1a4799d51737a1fb88f89e68f569cb21ac81096124cba lxqt-menu-data-1.4.1.tar.xz" diff --git a/user/lxqt-notificationd/APKBUILD b/user/lxqt-notificationd/APKBUILD index e3b4aa41c..5351994d7 100644 --- a/user/lxqt-notificationd/APKBUILD +++ b/user/lxqt-notificationd/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-notificationd -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Daemon for notifications in LXQt" @@ -10,9 +10,10 @@ arch="all" options="!check" # No test suite. license="LGPL-2.1+" depends="" -makedepends="cmake extra-cmake-modules qt5-qttools-dev liblxqt-dev>=${pkgver%.*}.0 +makedepends="cmake extra-cmake-modules qt5-qttools-dev liblxqt-dev>=${pkgver%.*} lxqt-build-tools>=$_lxqt kwindowsystem-dev" -source="https://github.com/lxqt/lxqt-notificationd/releases/download/$pkgver/lxqt-notificationd-$pkgver.tar.xz" +source="https://github.com/lxqt/lxqt-notificationd/releases/download/$pkgver/lxqt-notificationd-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -37,4 +38,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="8bc57c8a6710aaa5d050802a588530ec446611362eaa7c87aae2dae74b7ed9745486a90efbd854dedf79bc9994e13b5444f8b5259452614e01a8b393dd796607 lxqt-notificationd-1.3.0.tar.xz" +sha512sums="5ae28b0f49e1e01c8d0fe96f23b961ca962dab33f16025af172777f385d0fd3471c64a7acb78b46e7dc0c370d324a17f10ec9a4c4b3afbde95d47164a5246d0a lxqt-notificationd-1.4.0.tar.xz +b67f16f2fb37cb50700ecb925e709a3cfe74dcf8a9d4f74909cfd08ec7af9b0ff3e6b20a1a1d3f5d966392be2f25b1a295c9db5b47c7d890e7d026dd6faf2c9a revert-kwindowsystem-bump.patch" diff --git a/user/lxqt-notificationd/revert-kwindowsystem-bump.patch b/user/lxqt-notificationd/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..844e6596f --- /dev/null +++ b/user/lxqt-notificationd/revert-kwindowsystem-bump.patch @@ -0,0 +1,32 @@ +diff '--color=auto' -Nurd lxqt-notificationd-1.4.0/CMakeLists.txt lxqt-notificationd-1.4.0.new/CMakeLists.txt +--- lxqt-notificationd-1.4.0/CMakeLists.txt 2023-11-05 03:44:38.000000000 -0800 ++++ lxqt-notificationd-1.4.0.new/CMakeLists.txt 2023-11-26 03:02:51.780473894 -0800 +@@ -16,7 +16,7 @@ + option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) + option(LXQT_NOTIFICATION_BUILD_TESTS "Build LXQt Notification tests" OFF) + +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(LXQT_MINIMUM_VERSION "1.4.0") + set(QT_MINIMUM_VERSION "5.15.0") + +diff '--color=auto' -Nurd lxqt-notificationd-1.4.0/src/notification.cpp lxqt-notificationd-1.4.0.new/src/notification.cpp +--- lxqt-notificationd-1.4.0/src/notification.cpp 2023-11-05 03:44:38.000000000 -0800 ++++ lxqt-notificationd-1.4.0.new/src/notification.cpp 2023-11-26 03:03:40.300079116 -0800 +@@ -33,7 +33,6 @@ + #include <QDebug> + #include <XdgIcon> + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + #include <QMouseEvent> + #include <QPushButton> + #include <QStyle> +@@ -327,7 +326,7 @@ + return; + } + +- const auto ids = KX11Extras::stackingOrder(); ++ const auto ids = KWindowSystem::stackingOrder(); + for (const WId &i : ids) + { + KWindowInfo info = KWindowInfo(i, NET::WMName | NET::WMVisibleName); diff --git a/user/lxqt-openssh-askpass/APKBUILD b/user/lxqt-openssh-askpass/APKBUILD index 118830b38..f33f06734 100644 --- a/user/lxqt-openssh-askpass/APKBUILD +++ b/user/lxqt-openssh-askpass/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-openssh-askpass -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Graphical LXQt utility for inputting passwords for SSH agents" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="82f632577cc5b73dda54c8cdea0feadfb4a1f768e7b1d58b2c9e1f12eb40cbec88e7e31a4afc76efe153b5e424c205dde8a19c2249ed7ab6655f7376e54f1950 lxqt-openssh-askpass-1.3.0.tar.xz" +sha512sums="3f6862c70cc184246433eb0d9c3ad4a045f171f25144288b3e244c6e203c3bcfb14da62505b586f0b20b27a5b4b5c39ffbc709bf88863f87deb5b4a610cfd26f lxqt-openssh-askpass-1.4.0.tar.xz" diff --git a/user/lxqt-panel/APKBUILD b/user/lxqt-panel/APKBUILD index efd730b6c..74ee38bc0 100644 --- a/user/lxqt-panel/APKBUILD +++ b/user/lxqt-panel/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-panel -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Panel for LXQt desktop" @@ -9,15 +9,16 @@ url="https://lxqt.github.io/" arch="all" options="!check" # No test suite. license="LGPL-2.1+" -depends="" +depends="lxqt-menu-data" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt kguiaddons-dev libdbusmenu-qt-dev kwindowsystem-dev solid-dev - menu-cache-dev lxmenu-data liblxqt-dev>=${pkgver%.*}.0 alsa-lib-dev + menu-cache-dev liblxqt-dev>=${pkgver%.*}.0 alsa-lib-dev pulseaudio-dev lxqt-globalkeys-dev>=${pkgver%.*}.0 lm_sensors-dev libstatgrab-dev libsysstat-dev qt5-qttools-dev libxkbcommon-dev xcb-util-image-dev libxcomposite-dev libxtst-dev" subpackages="$pkgname-doc" -source="https://github.com/lxqt/lxqt-panel/releases/download/$pkgver/lxqt-panel-$pkgver.tar.xz" +source="https://github.com/lxqt/lxqt-panel/releases/download/$pkgver/lxqt-panel-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -42,4 +43,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="1bf66db90e4fbd1ec38688b3a27c9dc5ab2e0a71ace74555580c379e9e12211ded61d01fa46484e8a600bb9b30cb3203ec38697ade0a9cb81cb2cd8043af8b97 lxqt-panel-1.3.0.tar.xz" +sha512sums="87d5c89cfc4f5253dbb4048da89a531a99f664fd424eebb535a688934bdb63856edf07276a5ccba826a4658228801ed4cc036aea6664e67c57599990d7e4b997 lxqt-panel-1.4.0.tar.xz +da7ff18e64da3e90e1909f41ae58f0a6f52ca6947ff394fe4c6a68a8d8f1223fdce2fd7b665c89cdaa442053776d2e1c503fab1be5d43f22dacbc338ea78aaf7 revert-kwindowsystem-bump.patch" diff --git a/user/lxqt-panel/revert-kwindowsystem-bump.patch b/user/lxqt-panel/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..10c8bbdac --- /dev/null +++ b/user/lxqt-panel/revert-kwindowsystem-bump.patch @@ -0,0 +1,643 @@ +diff '--color=auto' -Nurd lxqt-panel-1.4.0/CMakeLists.txt lxqt-panel-1.4.0.new/CMakeLists.txt +--- lxqt-panel-1.4.0/CMakeLists.txt 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/CMakeLists.txt 2023-11-26 05:23:20.352039450 -0800 +@@ -30,7 +30,7 @@ + set(CMAKE_AUTORCC ON) + + set(REQUIRED_QT_VERSION "5.15.0") +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(LXQT_GLOBALKEYS_MINIMUM_VERSION "1.4.0") + set(LXQT_MINIMUM_VERSION "1.4.0") + +diff '--color=auto' -Nurd lxqt-panel-1.4.0/panel/lxqtpanel.cpp lxqt-panel-1.4.0.new/panel/lxqtpanel.cpp +--- lxqt-panel-1.4.0/panel/lxqtpanel.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/panel/lxqtpanel.cpp 2023-11-26 05:24:38.571414168 -0800 +@@ -50,7 +50,6 @@ + #include <XdgDirs> + + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + #include <KWindowSystem/NETWM> + + // Turn on this to show the time required to load each plugin during startup +@@ -242,18 +241,18 @@ + QTimer::singleShot(PANEL_HIDE_FIRST_TIME, this, SLOT(hidePanel())); + } + +- connect(KX11Extras::self(), &KX11Extras::windowAdded, this, [this] { ++ connect(KWindowSystem::self(), &KWindowSystem::windowAdded, this, [this] { + if (mHidable && mHideOnOverlap && !mHidden) + { + mShowDelayTimer.stop(); + hidePanel(); + } + }); +- connect(KX11Extras::self(), &KX11Extras::windowRemoved, this, [this] { ++ connect(KWindowSystem::self(), &KWindowSystem::windowRemoved, this, [this] { + if (mHidable && mHideOnOverlap && mHidden && !isPanelOverlapped()) + mShowDelayTimer.start(); + }); +- connect(KX11Extras::self(), &KX11Extras::currentDesktopChanged, this, [this] { ++ connect(KWindowSystem::self(), &KWindowSystem::currentDesktopChanged, this, [this] { + if (mHidable && mHideOnOverlap) + { + if (!mHidden) +@@ -265,8 +264,8 @@ + mShowDelayTimer.start(); + } + }); +- connect(KX11Extras::self(), +- static_cast<void (KX11Extras::*)(WId, NET::Properties, NET::Properties2)>(&KX11Extras::windowChanged), ++ connect(KWindowSystem::self(), ++ static_cast<void (KWindowSystem::*)(WId, NET::Properties, NET::Properties2)>(&KWindowSystem::windowChanged), + this, [this] (WId /* id */, NET::Properties prop, NET::Properties2) { + if (mHidable && mHideOnOverlap + // when a window is moved, resized, shaded, or minimized +@@ -419,7 +418,7 @@ + void LXQtPanel::show() + { + QWidget::show(); +- KX11Extras::setOnDesktop(effectiveWinId(), NET::OnAllDesktops); ++ KWindowSystem::setOnDesktop(effectiveWinId(), NET::OnAllDesktops); + } + + +@@ -676,7 +675,7 @@ + switch (mPosition) + { + case LXQtPanel::PositionTop: +- KX11Extras::setExtendedStrut(wid, ++ KWindowSystem::setExtendedStrut(wid, + /* Left */ 0, 0, 0, + /* Right */ 0, 0, 0, + /* Top */ rect.top() + getReserveDimension(), rect.left(), rect.right(), +@@ -685,7 +684,7 @@ + break; + + case LXQtPanel::PositionBottom: +- KX11Extras::setExtendedStrut(wid, ++ KWindowSystem::setExtendedStrut(wid, + /* Left */ 0, 0, 0, + /* Right */ 0, 0, 0, + /* Top */ 0, 0, 0, +@@ -694,7 +693,7 @@ + break; + + case LXQtPanel::PositionLeft: +- KX11Extras::setExtendedStrut(wid, ++ KWindowSystem::setExtendedStrut(wid, + /* Left */ rect.left() + getReserveDimension(), rect.top(), rect.bottom(), + /* Right */ 0, 0, 0, + /* Top */ 0, 0, 0, +@@ -704,7 +703,7 @@ + break; + + case LXQtPanel::PositionRight: +- KX11Extras::setExtendedStrut(wid, ++ KWindowSystem::setExtendedStrut(wid, + /* Left */ 0, 0, 0, + /* Right */ wholeScreen.right() - rect.right() + getReserveDimension(), rect.top(), rect.bottom(), + /* Top */ 0, 0, 0, +@@ -714,7 +713,7 @@ + } + } else + { +- KX11Extras::setExtendedStrut(wid, ++ KWindowSystem::setExtendedStrut(wid, + /* Left */ 0, 0, 0, + /* Right */ 0, 0, 0, + /* Top */ 0, 0, 0, +@@ -826,8 +825,8 @@ + mConfigDialog->activateWindow(); + WId wid = mConfigDialog->windowHandle()->winId(); + +- KX11Extras::activateWindow(wid); +- KX11Extras::setOnDesktop(wid, KX11Extras::currentDesktop()); ++ KWindowSystem::activateWindow(wid); ++ KWindowSystem::setOnDesktop(wid, KWindowSystem::currentDesktop()); + } + + +@@ -846,8 +845,8 @@ + mConfigDialog->activateWindow(); + WId wid = mConfigDialog->windowHandle()->winId(); + +- KX11Extras::activateWindow(wid); +- KX11Extras::setOnDesktop(wid, KX11Extras::currentDesktop()); ++ KWindowSystem::activateWindow(wid); ++ KWindowSystem::setOnDesktop(wid, KWindowSystem::currentDesktop()); + } + + +@@ -1130,7 +1129,7 @@ + KWindowSystem::setType(effectiveWinId(), NET::Dock); + + updateWmStrut(); // reserve screen space for the panel +- KX11Extras::setOnAllDesktops(effectiveWinId(), true); ++ KWindowSystem::setOnAllDesktops(effectiveWinId(), true); + break; + } + case QEvent::DragEnter: +@@ -1414,7 +1413,7 @@ + ignoreList |= NET::TopMenuMask; + ignoreList |= NET::NotificationMask; + +- const auto wIds = KX11Extras::stackingOrder(); ++ const auto wIds = KWindowSystem::stackingOrder(); + for (auto const wId : wIds) + { + KWindowInfo info(wId, NET::WMWindowType | NET::WMState | NET::WMFrameExtents | NET::WMDesktop); +diff '--color=auto' -Nurd lxqt-panel-1.4.0/panel/plugin.cpp lxqt-panel-1.4.0.new/panel/plugin.cpp +--- lxqt-panel-1.4.0/panel/plugin.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/panel/plugin.cpp 2023-11-26 05:25:18.501095739 -0800 +@@ -31,7 +31,7 @@ + #include "pluginsettings_p.h" + #include "lxqtpanel.h" + +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem> + + #include <QDebug> + #include <QProcessEnvironment> +@@ -523,8 +523,8 @@ + mConfigDialog->activateWindow(); + + WId wid = mConfigDialog->windowHandle()->winId(); +- KX11Extras::activateWindow(wid); +- KX11Extras::setOnDesktop(wid, KX11Extras::currentDesktop()); ++ KWindowSystem::activateWindow(wid); ++ KWindowSystem::setOnDesktop(wid, KWindowSystem::currentDesktop()); + } + + +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-desktopswitch/desktopswitch.cpp lxqt-panel-1.4.0.new/plugin-desktopswitch/desktopswitch.cpp +--- lxqt-panel-1.4.0/plugin-desktopswitch/desktopswitch.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-desktopswitch/desktopswitch.cpp 2023-11-26 05:26:07.690703464 -0800 +@@ -33,7 +33,6 @@ + #include <lxqt-globalkeys.h> + #include <LXQt/GridLayout> + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + #include <QX11Info> + #include <cmath> + +@@ -47,7 +46,7 @@ + QObject(), + ILXQtPanelPlugin(startupInfo), + m_pSignalMapper(new QSignalMapper(this)), +- m_desktopCount(KX11Extras::numberOfDesktops()), ++ m_desktopCount(KWindowSystem::numberOfDesktops()), + mRows(-1), + mShowOnlyActive(false), + mDesktops(new NETRootInfo(QX11Info::connection(), NET::NumberOfDesktops | NET::CurrentDesktop | NET::DesktopNames, NET::WM2DesktopLayout)), +@@ -63,16 +62,16 @@ + + settingsChanged(); + +- onCurrentDesktopChanged(KX11Extras::currentDesktop()); ++ onCurrentDesktopChanged(KWindowSystem::currentDesktop()); + QTimer::singleShot(0, this, SLOT(registerShortcuts())); + + connect(m_buttons, &QButtonGroup::idClicked, this, &DesktopSwitch::setDesktop); + +- connect(KX11Extras::self(), &KX11Extras::numberOfDesktopsChanged, this, &DesktopSwitch::onNumberOfDesktopsChanged); +- connect(KX11Extras::self(), &KX11Extras::currentDesktopChanged, this, &DesktopSwitch::onCurrentDesktopChanged); +- connect(KX11Extras::self(), &KX11Extras::desktopNamesChanged, this, &DesktopSwitch::onDesktopNamesChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::numberOfDesktopsChanged, this, &DesktopSwitch::onNumberOfDesktopsChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::currentDesktopChanged, this, &DesktopSwitch::onCurrentDesktopChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::desktopNamesChanged, this, &DesktopSwitch::onDesktopNamesChanged); + +- connect(KX11Extras::self(), static_cast<void (KX11Extras::*)(WId, NET::Properties, NET::Properties2)>(&KX11Extras::windowChanged), ++ connect(KWindowSystem::self(), static_cast<void (KWindowSystem::*)(WId, NET::Properties, NET::Properties2)>(&KWindowSystem::windowChanged), + this, &DesktopSwitch::onWindowChanged); + } + +@@ -137,7 +136,7 @@ + const QList<QAbstractButton*> btns = m_buttons->buttons(); + + int i = 0; +- const int current_desktop = KX11Extras::currentDesktop(); ++ const int current_desktop = KWindowSystem::currentDesktop(); + const int current_cnt = btns.count(); + const int border = qMin(btns.count(), m_desktopCount); + //update existing buttons +@@ -145,9 +144,9 @@ + { + DesktopSwitchButton * button = qobject_cast<DesktopSwitchButton*>(btns[i]); + button->update(i, mLabelType, +- KX11Extras::desktopName(i + 1).isEmpty() ? ++ KWindowSystem::desktopName(i + 1).isEmpty() ? + tr("Desktop %1").arg(i + 1) : +- KX11Extras::desktopName(i + 1)); ++ KWindowSystem::desktopName(i + 1)); + button->setVisible(!mShowOnlyActive || i + 1 == current_desktop); + } + +@@ -156,9 +155,9 @@ + for ( ; i < m_desktopCount; ++i) + { + b = new DesktopSwitchButton(&mWidget, i, mLabelType, +- KX11Extras::desktopName(i+1).isEmpty() ? ++ KWindowSystem::desktopName(i+1).isEmpty() ? + tr("Desktop %1").arg(i+1) : +- KX11Extras::desktopName(i+1)); ++ KWindowSystem::desktopName(i+1)); + mWidget.layout()->addWidget(b); + m_buttons->addButton(b, i); + b->setVisible(!mShowOnlyActive || i + 1 == current_desktop); +@@ -215,7 +214,7 @@ + + void DesktopSwitch::setDesktop(int desktop) + { +- KX11Extras::setCurrentDesktop(desktop + 1); ++ KWindowSystem::setCurrentDesktop(desktop + 1); + } + + void DesktopSwitch::onNumberOfDesktopsChanged(int count) +@@ -330,9 +329,9 @@ + if(abs(m_mouseWheelThresholdCounter) < 100) + return; + +- int max = KX11Extras::numberOfDesktops(); ++ int max = KWindowSystem::numberOfDesktops(); + int delta = rotationSteps < 0 ? 1 : -1; +- int current = KX11Extras::currentDesktop() + delta; ++ int current = KWindowSystem::currentDesktop() + delta; + + if (current > max){ + current = 1; +@@ -341,5 +340,5 @@ + current = max; + + m_mouseWheelThresholdCounter = 0; +- KX11Extras::setCurrentDesktop(current); ++ KWindowSystem::setCurrentDesktop(current); + } +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-desktopswitch/desktopswitchconfiguration.cpp lxqt-panel-1.4.0.new/plugin-desktopswitch/desktopswitchconfiguration.cpp +--- lxqt-panel-1.4.0/plugin-desktopswitch/desktopswitchconfiguration.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-desktopswitch/desktopswitchconfiguration.cpp 2023-11-26 05:26:31.370514624 -0800 +@@ -26,7 +26,7 @@ + + #include "desktopswitchconfiguration.h" + #include "ui_desktopswitchconfiguration.h" +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem> + #include <QTimer> + + DesktopSwitchConfiguration::DesktopSwitchConfiguration(PluginSettings *settings, QWidget *parent) : +@@ -64,17 +64,17 @@ + + void DesktopSwitchConfiguration::loadDesktopsNames() + { +- int n = KX11Extras::numberOfDesktops(); ++ int n = KWindowSystem::numberOfDesktops(); + for (int i = 1; i <= n; i++) + { +- QLineEdit *edit = new QLineEdit(KX11Extras::desktopName(i), this); ++ QLineEdit *edit = new QLineEdit(KWindowSystem::desktopName(i), this); + ((QFormLayout *) ui->namesGroupBox->layout())->addRow(tr("Desktop %1:").arg(i), edit); + + // C++11 rocks! + QTimer *timer = new QTimer(this); + timer->setInterval(400); + timer->setSingleShot(true); +- connect(timer, &QTimer::timeout, this, [=] { KX11Extras::setDesktopName(i, edit->text()); }); ++ connect(timer, &QTimer::timeout, this, [=] { KWindowSystem::setDesktopName(i, edit->text()); }); + connect(edit, &QLineEdit::textEdited, this, [=] { timer->start(); }); + } + } +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-kbindicator/src/kbdkeeper.cpp lxqt-panel-1.4.0.new/plugin-kbindicator/src/kbdkeeper.cpp +--- lxqt-panel-1.4.0/plugin-kbindicator/src/kbdkeeper.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-kbindicator/src/kbdkeeper.cpp 2023-11-26 05:27:03.870255446 -0800 +@@ -25,7 +25,7 @@ + * END_COMMON_COPYRIGHT_HEADER */ + + #include <QDebug> +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem/KWindowSystem> + #include <KWindowSystem/KWindowInfo> + #include <KWindowSystem/netwm_def.h> + #include "kbdkeeper.h" +@@ -91,7 +91,7 @@ + + void WinKbdKeeper::layoutChanged(uint group) + { +- WId win = KX11Extras::activeWindow(); ++ WId win = KWindowSystem::activeWindow(); + + if (m_active == win){ + m_mapping[win] = group; +@@ -108,7 +108,7 @@ + + void WinKbdKeeper::checkState() + { +- WId win = KX11Extras::activeWindow(); ++ WId win = KWindowSystem::activeWindow(); + + if (!m_mapping.contains(win)) + m_mapping.insert(win, 0); +@@ -120,7 +120,7 @@ + + void WinKbdKeeper::switchToGroup(uint group) + { +- WId win = KX11Extras::activeWindow(); ++ WId win = KWindowSystem::activeWindow(); + m_mapping[win] = group; + m_layout.lockGroup(group); + m_info.setCurrentGroup(group); +@@ -138,7 +138,7 @@ + + void AppKbdKeeper::layoutChanged(uint group) + { +- KWindowInfo info = KWindowInfo(KX11Extras::activeWindow(), NET::Properties(), NET::WM2WindowClass); ++ KWindowInfo info = KWindowInfo(KWindowSystem::activeWindow(), NET::Properties(), NET::WM2WindowClass); + QString app = QString::fromUtf8(info.windowClassName()); + + if (m_active == app){ +@@ -157,7 +157,7 @@ + + void AppKbdKeeper::checkState() + { +- KWindowInfo info = KWindowInfo(KX11Extras::activeWindow(), NET::Properties(), NET::WM2WindowClass); ++ KWindowInfo info = KWindowInfo(KWindowSystem::activeWindow(), NET::Properties(), NET::WM2WindowClass); + QString app = QString::fromUtf8(info.windowClassName()); + + if (!m_mapping.contains(app)) +@@ -172,7 +172,7 @@ + + void AppKbdKeeper::switchToGroup(uint group) + { +- KWindowInfo info = KWindowInfo(KX11Extras::activeWindow(), NET::Properties(), NET::WM2WindowClass); ++ KWindowInfo info = KWindowInfo(KWindowSystem::activeWindow(), NET::Properties(), NET::WM2WindowClass); + QString app = QString::fromUtf8(info.windowClassName()); + + m_mapping[app] = group; +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbar.cpp lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbar.cpp +--- lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbar.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbar.cpp 2023-11-26 05:27:36.719993478 -0800 +@@ -93,10 +93,10 @@ + connect(mSignalMapper, &QSignalMapper::mappedInt, this, &LXQtTaskBar::activateTask); + QTimer::singleShot(0, this, &LXQtTaskBar::registerShortcuts); + +- connect(KX11Extras::self(), static_cast<void (KX11Extras::*)(WId, NET::Properties, NET::Properties2)>(&KX11Extras::windowChanged) ++ connect(KWindowSystem::self(), static_cast<void (KWindowSystem::*)(WId, NET::Properties, NET::Properties2)>(&KWindowSystem::windowChanged) + , this, &LXQtTaskBar::onWindowChanged); +- connect(KX11Extras::self(), &KX11Extras::windowAdded, this, &LXQtTaskBar::onWindowAdded); +- connect(KX11Extras::self(), &KX11Extras::windowRemoved, this, &LXQtTaskBar::onWindowRemoved); ++ connect(KWindowSystem::self(), &KWindowSystem::windowAdded, this, &LXQtTaskBar::onWindowAdded); ++ connect(KWindowSystem::self(), &KWindowSystem::windowRemoved, this, &LXQtTaskBar::onWindowRemoved); + } + + /************************************************ +@@ -356,7 +356,7 @@ + { + QList<WId> new_list; + // Just add new windows to groups, deleting is up to the groups +- const auto wnds = KX11Extras::stackingOrder(); ++ const auto wnds = KWindowSystem::stackingOrder(); + for (auto const wnd: wnds) + { + if (acceptWindow(wnd)) +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbar.h lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbar.h +--- lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbar.h 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbar.h 2023-11-26 05:27:47.189909983 -0800 +@@ -43,7 +43,7 @@ + #include <QMap> + #include <lxqt-globalkeys.h> + #include "../panel/ilxqtpanel.h" +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem/KWindowSystem> + #include <KWindowSystem/KWindowInfo> + #include <KWindowSystem/NETWM> + +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbarconfiguration.cpp lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbarconfiguration.cpp +--- lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbarconfiguration.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbarconfiguration.cpp 2023-11-26 05:28:07.459748336 -0800 +@@ -29,7 +29,7 @@ + + #include "lxqttaskbarconfiguration.h" + #include "ui_lxqttaskbarconfiguration.h" +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem/KWindowSystem> + + LXQtTaskbarConfiguration::LXQtTaskbarConfiguration(PluginSettings *settings, QWidget *parent): + LXQtPanelPluginConfigDialog(settings, parent), +@@ -54,9 +54,9 @@ + + ui->showDesktopNumCB->addItem(tr("Current"), 0); + //Note: in KWindowSystem desktops are numbered from 1..N +- const int desk_cnt = KX11Extras::numberOfDesktops(); ++ const int desk_cnt = KWindowSystem::numberOfDesktops(); + for (int i = 1; desk_cnt >= i; ++i) +- ui->showDesktopNumCB->addItem(QString(QStringLiteral("%1 - %2")).arg(i).arg(KX11Extras::desktopName(i)), i); ++ ui->showDesktopNumCB->addItem(QString(QStringLiteral("%1 - %2")).arg(i).arg(KWindowSystem::desktopName(i)), i); + + loadSettings(); + ui->ungroupedNextToExistingCB->setEnabled(!(ui->groupingGB->isChecked())); +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbutton.cpp lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbutton.cpp +--- lxqt-panel-1.4.0/plugin-taskbar/lxqttaskbutton.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskbutton.cpp 2023-11-26 05:29:18.849179024 -0800 +@@ -54,7 +54,7 @@ + #include "lxqttaskgroup.h" + #include "lxqttaskbar.h" + +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem/KWindowSystem> + // Necessary for closeApplication() + #include <KWindowSystem/NETWM> + #include <QX11Info> +@@ -151,7 +151,7 @@ + if (ico.isNull()) + { + int devicePixels = mIconSize * devicePixelRatioF(); +- ico = KX11Extras::icon(mWindow, devicePixels, devicePixels); ++ ico = KWindowSystem::icon(mWindow, devicePixels, devicePixels); + } + setIcon(ico.isNull() ? XdgIcon::defaultApplicationIcon() : ico); + } +@@ -415,7 +415,7 @@ + ************************************************/ + bool LXQtTaskButton::isApplicationActive() const + { +- return KX11Extras::activeWindow() == mWindow; ++ return KWindowSystem::activeWindow() == mWindow; + } + + /************************************************ +@@ -426,16 +426,16 @@ + KWindowInfo info(mWindow, NET::WMDesktop | NET::WMState | NET::XAWMState); + if (parentTaskBar()->raiseOnCurrentDesktop() && info.isMinimized()) + { +- KX11Extras::setOnDesktop(mWindow, KX11Extras::currentDesktop()); ++ KWindowSystem::setOnDesktop(mWindow, KWindowSystem::currentDesktop()); + } + else + { + int winDesktop = info.desktop(); +- if (KX11Extras::currentDesktop() != winDesktop) +- KX11Extras::setCurrentDesktop(winDesktop); ++ if (KWindowSystem::currentDesktop() != winDesktop) ++ KWindowSystem::setCurrentDesktop(winDesktop); + } + // bypass focus stealing prevention +- KX11Extras::forceActiveWindow(mWindow); ++ KWindowSystem::forceActiveWindow(mWindow); + + setUrgencyHint(false); + } +@@ -445,7 +445,7 @@ + ************************************************/ + void LXQtTaskButton::minimizeApplication() + { +- KX11Extras::minimizeWindow(mWindow); ++ KWindowSystem::minimizeWindow(mWindow); + } + + /************************************************ +@@ -557,7 +557,7 @@ + if (!ok) + return; + +- KX11Extras::setOnDesktop(mWindow, desk); ++ KWindowSystem::setOnDesktop(mWindow, desk); + } + + /************************************************ +@@ -565,7 +565,7 @@ + ************************************************/ + void LXQtTaskButton::moveApplicationToPrevNextDesktop(bool next) + { +- int deskNum = KX11Extras::numberOfDesktops(); ++ int deskNum = KWindowSystem::numberOfDesktops(); + if (deskNum <= 1) + return; + int targetDesk = KWindowInfo(mWindow, NET::WMDesktop).desktop() + (next ? 1 : -1); +@@ -575,7 +575,7 @@ + else if (targetDesk < 1) + targetDesk = deskNum; + +- KX11Extras::setOnDesktop(mWindow, targetDesk); ++ KWindowSystem::setOnDesktop(mWindow, targetDesk); + } + + /************************************************ +@@ -585,10 +585,10 @@ + { + KWindowInfo info(mWindow, NET::WMDesktop); + if (!info.isOnCurrentDesktop()) +- KX11Extras::setCurrentDesktop(info.desktop()); ++ KWindowSystem::setCurrentDesktop(info.desktop()); + if (isMinimized()) +- KX11Extras::unminimizeWindow(mWindow); +- KX11Extras::forceActiveWindow(mWindow); ++ KWindowSystem::unminimizeWindow(mWindow); ++ KWindowSystem::forceActiveWindow(mWindow); + const QRect& windowGeometry = KWindowInfo(mWindow, NET::WMFrameExtents).frameGeometry(); + QList<QScreen *> screens = QGuiApplication::screens(); + if (screens.size() > 1){ +@@ -628,10 +628,10 @@ + { + KWindowInfo info(mWindow, NET::WMDesktop); + if (!info.isOnCurrentDesktop()) +- KX11Extras::setCurrentDesktop(info.desktop()); ++ KWindowSystem::setCurrentDesktop(info.desktop()); + if (isMinimized()) +- KX11Extras::unminimizeWindow(mWindow); +- KX11Extras::forceActiveWindow(mWindow); ++ KWindowSystem::unminimizeWindow(mWindow); ++ KWindowSystem::forceActiveWindow(mWindow); + const QRect& g = KWindowInfo(mWindow, NET::WMGeometry).geometry(); + int X = g.center().x(); + int Y = g.center().y(); +@@ -646,10 +646,10 @@ + { + KWindowInfo info(mWindow, NET::WMDesktop); + if (!info.isOnCurrentDesktop()) +- KX11Extras::setCurrentDesktop(info.desktop()); ++ KWindowSystem::setCurrentDesktop(info.desktop()); + if (isMinimized()) +- KX11Extras::unminimizeWindow(mWindow); +- KX11Extras::forceActiveWindow(mWindow); ++ KWindowSystem::unminimizeWindow(mWindow); ++ KWindowSystem::forceActiveWindow(mWindow); + const QRect& g = KWindowInfo(mWindow, NET::WMGeometry).geometry(); + int X = g.bottomRight().x(); + int Y = g.bottomRight().y(); +@@ -701,7 +701,7 @@ + */ + + /********** Desktop menu **********/ +- int deskNum = KX11Extras::numberOfDesktops(); ++ int deskNum = KWindowSystem::numberOfDesktops(); + if (deskNum > 1) + { + int winDesk = KWindowInfo(mWindow, NET::WMDesktop).desktop(); +@@ -715,7 +715,7 @@ + + for (int i = 1; i <= deskNum; ++i) + { +- auto deskName = KX11Extras::desktopName(i).trimmed(); ++ auto deskName = KWindowSystem::desktopName(i).trimmed(); + if (deskName.isEmpty()) + a = deskMenu->addAction(tr("Desktop &%1").arg(i)); + else +@@ -726,7 +726,7 @@ + connect(a, &QAction::triggered, this, &LXQtTaskButton::moveApplicationToDesktop); + } + +- int curDesk = KX11Extras::currentDesktop(); ++ int curDesk = KWindowSystem::currentDesktop(); + a = menu->addAction(tr("&To Current Desktop")); + a->setData(curDesk); + a->setEnabled(curDesk != winDesk); +diff '--color=auto' -Nurd lxqt-panel-1.4.0/plugin-taskbar/lxqttaskgroup.cpp lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskgroup.cpp +--- lxqt-panel-1.4.0/plugin-taskbar/lxqttaskgroup.cpp 2023-11-05 03:56:26.000000000 -0800 ++++ lxqt-panel-1.4.0.new/plugin-taskbar/lxqttaskgroup.cpp 2023-11-26 05:29:48.118945605 -0800 +@@ -38,7 +38,7 @@ + #include <QStringBuilder> + #include <QMenu> + #include <XdgIcon> +-#include <KWindowSystem/KX11Extras> ++#include <KWindowSystem/KWindowSystem> + #include <QX11Info> + #include <functional> + +@@ -58,8 +58,8 @@ + setText(groupName); + + connect(this, &LXQtTaskGroup::clicked, this, &LXQtTaskGroup::onClicked); +- connect(KX11Extras::self(), &KX11Extras::currentDesktopChanged, this, &LXQtTaskGroup::onDesktopChanged); +- connect(KX11Extras::self(), &KX11Extras::activeWindowChanged, this, &LXQtTaskGroup::onActiveWindowChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::currentDesktopChanged, this, &LXQtTaskGroup::onDesktopChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::activeWindowChanged, this, &LXQtTaskGroup::onActiveWindowChanged); + connect(parent, &LXQtTaskBar::buttonRotationRefreshed, this, &LXQtTaskGroup::setAutoRotation); + connect(parent, &LXQtTaskBar::refreshIconGeometry, this, &LXQtTaskGroup::refreshIconsGeometry); + connect(parent, &LXQtTaskBar::buttonStyleRefreshed, this, &LXQtTaskGroup::setToolButtonsStyle); +@@ -97,7 +97,7 @@ + void LXQtTaskGroup::closeGroup() + { + for (LXQtTaskButton *button : qAsConst(mButtonHash) ) +- if (button->isOnDesktop(KX11Extras::currentDesktop())) ++ if (button->isOnDesktop(KWindowSystem::currentDesktop())) + button->closeApplication(); + } + +@@ -305,7 +305,7 @@ + { + if (visibleButtonsCount() > 1) + { +- setChecked(mButtonHash.contains(KX11Extras::activeWindow())); ++ setChecked(mButtonHash.contains(KWindowSystem::activeWindow())); + setPopupVisible(true); + } + } +@@ -384,7 +384,7 @@ + const int showDesktop = taskbar->showDesktopNum(); + for(LXQtTaskButton * btn : qAsConst(mButtonHash)) + { +- bool visible = taskbar->isShowOnlyOneDesktopTasks() ? btn->isOnDesktop(0 == showDesktop ? KX11Extras::currentDesktop() : showDesktop) : true; ++ bool visible = taskbar->isShowOnlyOneDesktopTasks() ? btn->isOnDesktop(0 == showDesktop ? KWindowSystem::currentDesktop() : showDesktop) : true; + visible &= taskbar->isShowOnlyCurrentScreenTasks() ? btn->isOnCurrentScreen() : true; + visible &= taskbar->isShowOnlyMinimizedTasks() ? btn->isMinimized() : true; + btn->setVisible(visible); diff --git a/user/lxqt-policykit/APKBUILD b/user/lxqt-policykit/APKBUILD index e9fdfcb6a..14db96e05 100644 --- a/user/lxqt-policykit/APKBUILD +++ b/user/lxqt-policykit/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-policykit -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="PolicyKit agent for LXQT" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="" makedepends="cmake extra-cmake-modules qt5-qttools-dev polkit-qt-1-dev - liblxqt-dev>=${pkgver%.*}.0 lxqt-build-tools>=$_lxqt qt5-qttools-dev + liblxqt-dev>=${pkgver%.*} lxqt-build-tools>=$_lxqt qt5-qttools-dev kwindowsystem-dev" subpackages="$pkgname-doc" source="https://github.com/lxqt/lxqt-policykit/releases/download/$pkgver/lxqt-policykit-$pkgver.tar.xz" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="4a05064f988bd2eb35c4b889fbb098a7617eb7a702deba35338f0f3dfc6e5946505b35f3c022a33bad0e268c710bf7f3c0cdf84160054e118298ee390db8af45 lxqt-policykit-1.3.0.tar.xz" +sha512sums="d63a2f0d3ce2bb794aae6a6315b465fca984de20b107934127f83d3a8614472c7f019f2710a06ee40658a1a4c9ed6df5c5715b593f67e46c6e3d91b3b2b0526f lxqt-policykit-1.4.0.tar.xz" diff --git a/user/lxqt-powermanagement/APKBUILD b/user/lxqt-powermanagement/APKBUILD index f6a29f8ff..0c571e7e0 100644 --- a/user/lxqt-powermanagement/APKBUILD +++ b/user/lxqt-powermanagement/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-powermanagement -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Power management utilities for LXQt" @@ -11,9 +11,10 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt upower-dev - liblxqt-dev>=${pkgver%.*}.0 kidletime-dev qt5-qtsvg-dev qt5-qttools-dev + liblxqt-dev>=${pkgver%.*} kidletime-dev qt5-qtsvg-dev qt5-qttools-dev solid-dev kwindowsystem-dev lxqt-globalkeys-dev>=${pkgver%.*}" -source="https://github.com/lxqt/lxqt-powermanagement/releases/download/$pkgver/lxqt-powermanagement-$pkgver.tar.xz" +source="https://github.com/lxqt/lxqt-powermanagement/releases/download/$pkgver/lxqt-powermanagement-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -38,4 +39,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="79891ba791a167c8b4b27acd309908b0badafcf273aca880c4db592b776d8672d240bc8d4a9552cb83195a9a9929e5b1722a6d20be3ea810c3dcb61dc83fd323 lxqt-powermanagement-1.3.0.tar.xz" +sha512sums="20b6b541fbf0eda1471af233f09744861428d74743b248b95be27c82a3d6fa1c71bfb7f4b5ff7a5408a37a6975a831b525290e8ec012e3546b0e69dfe63ccf7c lxqt-powermanagement-1.4.0.tar.xz +076827624da9b85dc0bf3928e88f2144268f7ffcd87b369e634d4e4dd8a7f817b48a9e388f1c37a75de295d7db927af9e3b2442c655361eb57bc21a22905b7c2 revert-kwindowsystem-bump.patch" diff --git a/user/lxqt-powermanagement/revert-kwindowsystem-bump.patch b/user/lxqt-powermanagement/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..b7bc62975 --- /dev/null +++ b/user/lxqt-powermanagement/revert-kwindowsystem-bump.patch @@ -0,0 +1,32 @@ +diff '--color=auto' -Nurd lxqt-powermanagement-1.4.0/CMakeLists.txt lxqt-powermanagement-1.4.0.new/CMakeLists.txt +--- lxqt-powermanagement-1.4.0/CMakeLists.txt 2023-11-05 03:52:24.000000000 -0800 ++++ lxqt-powermanagement-1.4.0.new/CMakeLists.txt 2023-11-26 05:38:24.944824050 -0800 +@@ -16,7 +16,7 @@ + option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) + + set(LXQTBT_MINIMUM_VERSION "0.13.0") +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(LXQT_MINIMUM_VERSION "1.4.0") + set(QT_MINIMUM_VERSION "5.15.0") + +diff '--color=auto' -Nurd lxqt-powermanagement-1.4.0/src/idlenesswatcher.cpp lxqt-powermanagement-1.4.0.new/src/idlenesswatcher.cpp +--- lxqt-powermanagement-1.4.0/src/idlenesswatcher.cpp 2023-11-05 03:52:24.000000000 -0800 ++++ lxqt-powermanagement-1.4.0.new/src/idlenesswatcher.cpp 2023-11-26 05:38:48.084639516 -0800 +@@ -30,7 +30,6 @@ + #include <Solid/Device> + #include <Solid/Battery> + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + #include <KWindowSystem/KWindowInfo> + #include <QDebug> + #include <LXQt/lxqtnotification.h> +@@ -162,7 +161,7 @@ + + // check if disable Idleness when fullscreen is enabled + if (mPSettings.isDisableIdlenessWhenFullscreenEnabled()) { +- WId w = KX11Extras::activeWindow(); ++ WId w = KWindowSystem::activeWindow(); + KWindowInfo info(w, NET::WMState); + if (info.hasState(NET::FullScreen)) { + QTimer::singleShot(0, this, [] { diff --git a/user/lxqt-qtplugin/APKBUILD b/user/lxqt-qtplugin/APKBUILD index 23f1ae4c3..c6d6bafc1 100644 --- a/user/lxqt-qtplugin/APKBUILD +++ b/user/lxqt-qtplugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-qtplugin -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt plugin for platform integration with LXQt" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="a1fefe5af7aacfb3c594fa1c181c2146c702fe0fabaf269c7e22e5755026accc68745d4ba64cd725ba66691f704c5a5d69658b55188b9919586601efbadc27ff lxqt-qtplugin-1.3.0.tar.xz" +sha512sums="1d6306d396e560fbab1c64e2dda47e0456e6d8fcff077bcb7104adb8f89ef73bfef9457ab5b65aa07101acc3d7d2701efb88e8d36a0c74780a187480288acbea lxqt-qtplugin-1.4.0.tar.xz" diff --git a/user/lxqt-runner/APKBUILD b/user/lxqt-runner/APKBUILD index 65ea00bd1..8a98051f8 100644 --- a/user/lxqt-runner/APKBUILD +++ b/user/lxqt-runner/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-runner -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt-based application launcher for LXQt" @@ -11,11 +11,12 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt - liblxqt-dev>=${pkgver%.*}.0 lxqt-globalkeys-dev>=${pkgver%.*}.0 + liblxqt-dev>=${pkgver%.*} lxqt-globalkeys-dev>=${pkgver%.*} muparser-dev kwindowsystem-dev menu-cache-dev qt5-qttools-dev qt5-qtsvg-dev" subpackages="$pkgname-doc" -source="https://github.com/lxqt/lxqt-runner/releases/download/$pkgver/lxqt-runner-$pkgver.tar.xz" +source="https://github.com/lxqt/lxqt-runner/releases/download/$pkgver/lxqt-runner-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -40,4 +41,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="79351e4cebb14ce6578197dc4d4ec3ee3b5be3d3832da778b075c5e2da38dcb518113c8076a4488570e68f51cedc5a3fe4855e296e813aa2b848a386ddcd6fbc lxqt-runner-1.3.0.tar.xz" +sha512sums="53ead3b6cd45cbf57a01c06861a97f20ddab9f3a5f3a90b3b9c3e6c3b67344feec99e11e14a90a0d0a6beb7e0cf74e092b5664d5f8ec32f827893623e104ee12 lxqt-runner-1.4.0.tar.xz +fe7d33dbdcb4500391c586bfbd43ab3e4dc660810a482fa38dcd6142b8f50df8f3ab0b53e7c71eeb09ecdc48056d490347cf68a62d01de809d5899f6152d1ca7 revert-kwindowsystem-bump.patch" diff --git a/user/lxqt-runner/revert-kwindowsystem-bump.patch b/user/lxqt-runner/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..a640b193a --- /dev/null +++ b/user/lxqt-runner/revert-kwindowsystem-bump.patch @@ -0,0 +1,92 @@ +diff '--color=auto' -Nurd lxqt-runner-1.4.0/CMakeLists.txt lxqt-runner-1.4.0.new/CMakeLists.txt +--- lxqt-runner-1.4.0/CMakeLists.txt 2023-11-05 04:08:33.000000000 -0800 ++++ lxqt-runner-1.4.0.new/CMakeLists.txt 2023-11-26 05:46:06.721141501 -0800 +@@ -25,7 +25,7 @@ + ) + + # Minimum Versions +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(LIBMENUCACHE_MINIMUM_VERSION "1.1.0") + set(LXQT_MINIMUM_VERSION "1.4.0") + set(LXQT_GLOBALKEYS_MINIMUM_VERSION "1.4.0") +diff '--color=auto' -Nurd lxqt-runner-1.4.0/dialog.cpp lxqt-runner-1.4.0.new/dialog.cpp +--- lxqt-runner-1.4.0/dialog.cpp 2023-11-05 04:08:33.000000000 -0800 ++++ lxqt-runner-1.4.0.new/dialog.cpp 2023-11-26 05:46:44.460840536 -0800 +@@ -55,7 +55,6 @@ + #include <QScrollBar> + + #include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> + + #define DEFAULT_SHORTCUT "Alt+F2" + +@@ -201,8 +200,8 @@ + ************************************************/ + void Dialog::showEvent(QShowEvent *event) + { +- connect(KX11Extras::self(), &KX11Extras::activeWindowChanged, this, &Dialog::onActiveWindowChanged); +- connect(KX11Extras::self(), &KX11Extras::currentDesktopChanged, this, &Dialog::onCurrentDesktopChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::activeWindowChanged, this, &Dialog::onActiveWindowChanged); ++ connect(KWindowSystem::self(), &KWindowSystem::currentDesktopChanged, this, &Dialog::onCurrentDesktopChanged); + return QDialog::showEvent(event); + } + +@@ -213,8 +212,8 @@ + void Dialog::hideEvent(QHideEvent *event) + { + QDialog::hideEvent(event); +- disconnect(KX11Extras::self(), &KX11Extras::currentDesktopChanged, this, &Dialog::onCurrentDesktopChanged); +- disconnect(KX11Extras::self(), &KX11Extras::activeWindowChanged, this, &Dialog::onActiveWindowChanged); ++ disconnect(KWindowSystem::self(), &KWindowSystem::currentDesktopChanged, this, &Dialog::onCurrentDesktopChanged); ++ disconnect(KWindowSystem::self(), &KWindowSystem::activeWindowChanged, this, &Dialog::onActiveWindowChanged); + } + + +@@ -349,7 +348,7 @@ + { + // Using KWindowSystem to detect the active window since + // QWidget::isActiveWindow is not working reliably. +- if (isVisible() && (KX11Extras::activeWindow() == winId())) ++ if (isVisible() && (KWindowSystem::activeWindow() == winId())) + { + hide(); + } +@@ -357,7 +356,7 @@ + { + realign(); + show(); +- KX11Extras::forceActiveWindow(winId()); ++ KWindowSystem::forceActiveWindow(winId()); + ui->commandEd->setFocus(); + ui->commandEd->selectAll(); + } +@@ -378,7 +377,7 @@ + screenNumber = screen ? screens.indexOf(screen) : 0; + } + +- desktop = screens.at(screenNumber)->availableGeometry().intersected(KX11Extras::workArea(screenNumber)); ++ desktop = screens.at(screenNumber)->availableGeometry().intersected(KWindowSystem::workArea(screenNumber)); + + QRect rect = this->geometry(); + rect.moveCenter(desktop.center()); +@@ -452,7 +451,7 @@ + if (mDesktopChanged) + { + mDesktopChanged = false; +- KX11Extras::forceActiveWindow(winId()); ++ KWindowSystem::forceActiveWindow(winId()); + } else + { + hide(); +@@ -468,8 +467,8 @@ + { + if (isVisible()) + { +- KX11Extras::setOnDesktop(winId(), screen); +- KX11Extras::forceActiveWindow(winId()); ++ KWindowSystem::setOnDesktop(winId(), screen); ++ KWindowSystem::forceActiveWindow(winId()); + //Note: workaround for changing desktop while runner is shown + // The KWindowSystem::forceActiveWindow may fail to correctly activate runner if there + // are any other windows on the new desktop (probably because of the sequence while WM diff --git a/user/lxqt-session/APKBUILD b/user/lxqt-session/APKBUILD index 2a7107214..6defb32e8 100644 --- a/user/lxqt-session/APKBUILD +++ b/user/lxqt-session/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-session -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Session management utilities for LXQt" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="qtxdg-tools xdg-user-dirs" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt eudev-dev - liblxqt-dev>=${pkgver%.*}.0 procps-dev qt5-qttools-dev kwindowsystem-dev" + liblxqt-dev>=${pkgver%.*} procps-dev qt5-qttools-dev kwindowsystem-dev" subpackages="$pkgname-doc" source="https://github.com/lxde/lxqt-session/releases/download/$pkgver/lxqt-session-$pkgver.tar.xz" @@ -40,4 +40,4 @@ package() { rm "$pkgdir"/usr/share/man/man1/start* } -sha512sums="4ad358ad8a01fe6df697cb4dc19abee7ed9b37dce13022e2fc1b309a5adbb942c69fc4de401fbc16e51394d38482a98bf2f5ebcc0a64194e03bd714691ad96db lxqt-session-1.3.0.tar.xz" +sha512sums="4f5731969582222eef9d0d2f2b37c4a160c3c6469f3a16cb4b1804ba76a9320d36b0ed91cada6ee905339ed8cfbd443851804086d978424c4d79045cc90e1629 lxqt-session-1.4.0.tar.xz" diff --git a/user/lxqt-sudo/APKBUILD b/user/lxqt-sudo/APKBUILD index ae85f4f64..95f141d66 100644 --- a/user/lxqt-sudo/APKBUILD +++ b/user/lxqt-sudo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lxqt-sudo -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Graphical LXQt utility for sudo/su" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="LGPL-2.1+" depends="sudo" makedepends="cmake extra-cmake-modules qt5-qtbase-dev lxqt-build-tools>=$_lxqt - liblxqt-dev>=${pkgver%.*}.0 qt5-qttools-dev kwindowsystem-dev" + liblxqt-dev>=${pkgver%.*} qt5-qttools-dev kwindowsystem-dev" subpackages="$pkgname-doc" source="https://github.com/lxqt/lxqt-sudo/releases/download/$pkgver/lxqt-sudo-$pkgver.tar.xz" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="43ee7a0a1322258591259bf248651bd0ca5f438a38e8ac11c5b0edc3fa132b5b269a023a648f707a5844640ff30835155d3830955285608d6c157f72fe23debd lxqt-sudo-1.3.0.tar.xz" +sha512sums="0f9eda1ae4272410b18fdce1059702715c1f8ea3d75893a00d18890b713cd0269a727f95e95959a3156d998447770b666119b068c2d1af9686938fb03a59e16e lxqt-sudo-1.4.0.tar.xz" diff --git a/user/lynx/APKBUILD b/user/lynx/APKBUILD index 2797637f2..3fcc569ac 100644 --- a/user/lynx/APKBUILD +++ b/user/lynx/APKBUILD @@ -2,8 +2,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=lynx -pkgver=2.8.9_p1 -_relver="${pkgver%_p*}rel.${pkgver#*_p}" +pkgver=2.9.2 pkgrel=0 pkgdesc="Cross-platform text-based browser" url="https://lynx.invisible-island.net/" @@ -12,8 +11,8 @@ license="GPL-2.0-only" depends="gzip" makedepends="glib-dev ncurses-dev openssl-dev perl utmps-dev zlib-dev" subpackages="$pkgname-doc $pkgname-lang" -source="https://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_relver}.tar.bz2" -builddir="$srcdir/${pkgname}${_relver}" +source="https://invisible-island.net/archives/lynx/tarballs/${pkgname}${pkgver}.tar.bz2" +builddir="$srcdir/${pkgname}${pkgver}" build() { ./configure \ @@ -26,6 +25,7 @@ build() { --localstatedir=/var \ --enable-ipv6 \ --enable-nls \ + --with-screen=ncursesw \ --with-ssl make helpdir=/usr/share/doc/lynx/help \ docdir=/usr/share/doc/lynx @@ -41,4 +41,4 @@ package() { docdir=/usr/share/doc/lynx } -sha512sums="61edbe082684fcbd91bdbf4f4d27c3baf92358811aaffc2f8af46adf23ca7b48aede1520fc5f2a8fc974a2f4bbf4e57e7e6027a187bfc6101e56878c98178e6d lynx2.8.9rel.1.tar.bz2" +sha512sums="bb9ed23a5f8664ca8bccd95cc55683849aa707f601e209d84e0acaed151b78cd772316f527881022ff120049c4fc586c05d579f9d616a2b108d9ddfaa5b2159d lynx2.9.2.tar.bz2" diff --git a/user/mariadb/APKBUILD b/user/mariadb/APKBUILD index 7c44f4c46..ee293e709 100644 --- a/user/mariadb/APKBUILD +++ b/user/mariadb/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Dan Theisen <djt@hxx.in> pkgname=mariadb pkgver=10.6.4 -pkgrel=0 +pkgrel=1 pkgdesc="Open source database server" url="https://mariadb.org/" arch="all" @@ -26,6 +26,7 @@ subpackages="$pkgname-client $pkgname-server $pkgname-libs $pkgname-embedded $pkgname-doc $pkgname-dev" source="https://archive.mariadb.org/$pkgname-$pkgver/source/$pkgname-$pkgver.tar.gz ppchax.patch + missing-header.patch mariadb.initd mariadb-server.limits " @@ -270,5 +271,6 @@ doc() { sha512sums="c216244ce126e6f8954303a76078dc12146e8ea941041edd215dc05201adda1d5158cd7f1c9831328f783aba4f884965ae288f33bbc43229bc6224a4f1079071 mariadb-10.6.4.tar.gz 0cb265173923cb85517a1144cfa904dafe059c1f859e13b4415442cabbb414db5904f2dcee0e865914b0f9c181d1d61d220834cb187b14f8538a0d2552025a9d ppchax.patch +6618ee5608b06941da08872ea7ea16149b72a0174b157f970c03a9a9110efe0704c72742e63181f8059244e89fe25d1b07f1c87fed72115d62f347f58fafccdd missing-header.patch 1a2b058aad5fd6d6964db58b663591299a5bf82e7ad21a105d53a3e7ad1c3674c737caf3ee12799cce947cf8ead1f3e789dd8afcfc769891f08208b3006f9654 mariadb.initd d47324b34a87410eddb554f65199d145dfba9ae40407a62fb77df4e1ebf13087d15eb28e61e5e7cc9139eb42f093a0955136edae4020822652a1f0b4e219849e mariadb-server.limits" diff --git a/user/mariadb/missing-header.patch b/user/mariadb/missing-header.patch new file mode 100644 index 000000000..bdb89daa3 --- /dev/null +++ b/user/mariadb/missing-header.patch @@ -0,0 +1,12 @@ +Needed for compilation on GCC 13. + +--- mariadb-10.6.4/tpool/aio_linux.cc.old 2021-08-03 09:48:41.000000000 -0500 ++++ mariadb-10.6.4/tpool/aio_linux.cc 2024-05-28 18:55:26.914066003 -0500 +@@ -18,6 +18,7 @@ + + # include <thread> + # include <atomic> ++# include <cstdio> + # include <libaio.h> + # include <sys/syscall.h> + diff --git a/user/mate-complete/APKBUILD b/user/mate-complete/APKBUILD index c05eb7545..d414cd174 100644 --- a/user/mate-complete/APKBUILD +++ b/user/mate-complete/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=mate-complete pkgver=1.26.0 -pkgrel=0 +pkgrel=2 pkgdesc="Complete MATE desktop environment" url="https://mate-desktop.org" arch="noarch" @@ -14,8 +14,8 @@ depends="atril caja caja-dropbox caja-extensions elogind engrampa eom marco mate-menus mate-netbook mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-sensors-applet mate-session-manager mate-settings-daemon mate-system-monitor - mate-terminal mate-user-guide mate-user-share mate-utils mozo pluma - pluma-plugins" + mate-terminal mate-themes mate-user-guide mate-user-share mate-utils + mozo pluma pluma-plugins adelie-fonts adelie-mate-theme" makedepends="" subpackages="" source="org.adelie-linux.about-mate.desktop diff --git a/user/mate-themes/APKBUILD b/user/mate-themes/APKBUILD new file mode 100644 index 000000000..a0361b8c4 --- /dev/null +++ b/user/mate-themes/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> +pkgname=mate-themes +pkgver=3.22.24 +pkgrel=0 +pkgdesc="Themes for the MATE desktop environment" +url="https://mate-desktop.org" +arch="noarch" +license="LGPL-2.1-only AND GPL-3.0-only AND LGPL-2.1+" +depends="gtk+2.0 gdk-pixbuf" +makedepends="gtk+2.0-dev gdk-pixbuf-dev" +subpackages="$pkgname-lang" +source="https://pub.mate-desktop.org/releases/themes/${pkgver%.*}/$pkgname-$pkgver.tar.xz" + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + make check +} + +package() { + make DESTDIR="$pkgdir" install +} + +sha512sums="a92b78c3899b9ad159dbc1ee310939c300c45c203a9976bc83a76e49beb79b4fb551bfaa26c638d54da7630639a61df802113466844a6664e83ea6ab68c7dbc5 mate-themes-3.22.24.tar.xz" diff --git a/user/mbedtls/APKBUILD b/user/mbedtls/APKBUILD index 46d1d5461..912f1f57c 100644 --- a/user/mbedtls/APKBUILD +++ b/user/mbedtls/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=mbedtls -pkgver=3.4.1 +pkgver=3.6.0 pkgrel=0 pkgdesc="Lightweight TLS library" url="https://tls.mbed.org" @@ -11,9 +11,7 @@ depends="" checkdepends="python3" makedepends="cmake" subpackages="$pkgname-dev" -source="mbedtls-$pkgver.tar.gz::https://github.com/ARMmbed/mbedtls/archive/refs/tags/v$pkgver.tar.gz - fix-big-endian-alignment-tests.patch - " +source="https://github.com/ARMmbed/mbedtls/releases/download/v$pkgver/$pkgname-$pkgver.tar.bz2" # secfixes: # 3.3.0-r0: @@ -51,5 +49,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4aa322b55489bdc54f3b6f4e6175515ca22e74b2d3615334b32f89fb61ac13339e24a5c659bfae27dd948e4ac8783d7f2b3628418ac3df412dc5b5decceebc69 mbedtls-3.4.1.tar.gz -40a4aefd39b63babf1f54bb2ab655278aaca1482da6e0b8943751a55c067307f8a591217b0c3b546a8ae02f7eca72c22da9d74378a5c28e00f8ca97dbcf1b7f8 fix-big-endian-alignment-tests.patch" +sha512sums="5c395890d486144af882aa96c9430103f79df889139969a64a490c0cafbdd5631a72bb668aa59b062204f19a5bb36dfcc5a096b59d76c7ef27f2560cd2388682 mbedtls-3.6.0.tar.bz2" diff --git a/user/mbedtls/fix-big-endian-alignment-tests.patch b/user/mbedtls/fix-big-endian-alignment-tests.patch deleted file mode 100644 index c03fdb426..000000000 --- a/user/mbedtls/fix-big-endian-alignment-tests.patch +++ /dev/null @@ -1,313 +0,0 @@ -See also: - - * https://git.adelielinux.org/adelie/packages/-/issues/1002 - * https://github.com/Mbed-TLS/mbedtls/issues/7428 - * https://github.com/Mbed-TLS/mbedtls/pull/7440 - -From 9dc8b6a6a201ccdbfcbf0de8f76b8b0ddfc2f85c Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 12:53:35 +0100 -Subject: [PATCH 1/6] Test fixes for big-endian - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 58 ++++++++++++---------- - 1 file changed, 31 insertions(+), 27 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index f6703318ce7..45080cc7b6a 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -17,6 +17,20 @@ int parse_hex_string(char *hex_string, uint64_t *result) - if (mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0) { - return 0; - } -+ -+ /* If < 8 bytes, shift right and pad with leading zeros for big-endian */ -+ if (MBEDTLS_IS_BIG_ENDIAN) { -+ if (olen < 8) { -+ int offset = 8 - olen; -+ for (int i = olen - 1; i >= 0; i--) { -+ raw[i + offset] = raw[i]; -+ } -+ for (int i = 0; i < offset; i++) { -+ raw[i] = 0; -+ } -+ } -+ } -+ - *result = 0; - for (size_t i = 0; i < olen; i++) { - if (MBEDTLS_IS_BIG_ENDIAN) { -@@ -57,38 +71,28 @@ void mbedtls_unaligned_access(int size, int offset) - break; - } - -- /* Generate expected result */ -- uint64_t expected = 0; -- for (uint8_t i = 0; i < 8; i++) { -- uint8_t shift; -- if (MBEDTLS_IS_BIG_ENDIAN) { -- /* -- * Similar to little-endian case described below, but the shift needs -- * to be inverted -- */ -- shift = 7 - (i * 8); -- } else { -- /* example for offset == 1: -- * expected = (( 1 + 0 ) << (0 * 8)) | (( 1 + 1 ) << (1 * 8)) | (( 1 + 2 ) << (2 * 8))) -- * = (1 << 0) | (2 << 8) | (3 << 16) ... -- * = 0x0807060504030201 -- * x = { 0, 1, 2, 3, ... } -- * ie expected is the value that would be read from x on a LE system, when -- * byte swapping is not performed -- */ -- shift = i * 8; -- } -- uint64_t b = offset + i; -- expected |= b << shift; -+ /* Define expected result by manually aligning the raw bytes, and -+ * reading back with a normal pointer access. */ -+ uint64_t raw_aligned = 0; -+ uint8_t *e8 = (uint8_t *) &raw_aligned; -+ uint8_t *r8 = ((uint8_t *) &raw) + offset; -+ /* Make aligned copy */ -+ for (int i = 0; i < size / 8; i++) { -+ e8[i] = r8[i]; - } -- -- /* Mask out excess bits from expected result */ -+ /* Make a 16/32/64 byte read from the aligned location, and copy to expected */ -+ uint64_t expected = 0; - switch (size) { - case 16: -- expected &= 0xffff; -+ uint16_t *e16 = (uint16_t *) &raw_aligned; -+ expected = *e16; - break; - case 32: -- expected &= 0xffffffff; -+ uint32_t *e32 = (uint32_t *) &raw_aligned; -+ expected = *e32; -+ break; -+ case 64: -+ expected = raw_aligned; - break; - } - - -From 0a05e703dbc303fc5e1154e926bc96cb312ace89 Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 13:01:34 +0100 -Subject: [PATCH 2/6] Tidy-up - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 29 ++++++++-------------- - 1 file changed, 11 insertions(+), 18 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index 45080cc7b6a..cd4502005f0 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -19,15 +19,13 @@ int parse_hex_string(char *hex_string, uint64_t *result) - } - - /* If < 8 bytes, shift right and pad with leading zeros for big-endian */ -- if (MBEDTLS_IS_BIG_ENDIAN) { -- if (olen < 8) { -- int offset = 8 - olen; -- for (int i = olen - 1; i >= 0; i--) { -- raw[i + offset] = raw[i]; -- } -- for (int i = 0; i < offset; i++) { -- raw[i] = 0; -- } -+ if (MBEDTLS_IS_BIG_ENDIAN && olen < 8) { -+ int offset = 8 - olen; -+ for (int i = olen - 1; i >= 0; i--) { -+ raw[i + offset] = raw[i]; -+ } -+ for (int i = 0; i < offset; i++) { -+ raw[i] = 0; - } - } - -@@ -73,13 +71,8 @@ void mbedtls_unaligned_access(int size, int offset) - - /* Define expected result by manually aligning the raw bytes, and - * reading back with a normal pointer access. */ -- uint64_t raw_aligned = 0; -- uint8_t *e8 = (uint8_t *) &raw_aligned; -- uint8_t *r8 = ((uint8_t *) &raw) + offset; -- /* Make aligned copy */ -- for (int i = 0; i < size / 8; i++) { -- e8[i] = r8[i]; -- } -+ uint64_t raw_aligned; -+ memcpy(&raw_aligned, ((uint8_t*)&raw) + offset, size / 8); - /* Make a 16/32/64 byte read from the aligned location, and copy to expected */ - uint64_t expected = 0; - switch (size) { -@@ -98,7 +91,7 @@ void mbedtls_unaligned_access(int size, int offset) - - TEST_EQUAL(r, expected); - -- /* Write sentinel to the part of the array we will testing writing to */ -+ /* Write sentinel to the part of the array we will test writing to */ - for (size_t i = 0; i < (size_t) (size / 8); i++) { - x[i + offset] = 0xff; - } -@@ -319,7 +312,7 @@ void unaligned_access_endian_aware(int size, int offset, int big_endian) - /* Verify read */ - TEST_EQUAL(read, expected); - -- /* Test writing back to memory. First write sentiel */ -+ /* Test writing back to memory. First write sentinel */ - for (size_t i = 0; i < (size_t) (size / 8); i++) { - x[i + offset] = 0xff; - } - -From df2d5b1ca1569f3a6e129e276756d9d15980f719 Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 13:41:09 +0100 -Subject: [PATCH 3/6] Fix compile error - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index cd4502005f0..3a5038e98c2 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -71,21 +71,21 @@ void mbedtls_unaligned_access(int size, int offset) - - /* Define expected result by manually aligning the raw bytes, and - * reading back with a normal pointer access. */ -- uint64_t raw_aligned; -- memcpy(&raw_aligned, ((uint8_t*)&raw) + offset, size / 8); -+ uint64_t raw_aligned_64; -+ uint16_t *raw_aligned_16 = (uint16_t *) &raw_aligned_64; -+ uint32_t *raw_aligned_32 = (uint32_t *) &raw_aligned_64; -+ memcpy(&raw_aligned_64, ((uint8_t *) &raw) + offset, size / 8); - /* Make a 16/32/64 byte read from the aligned location, and copy to expected */ - uint64_t expected = 0; - switch (size) { - case 16: -- uint16_t *e16 = (uint16_t *) &raw_aligned; -- expected = *e16; -+ expected = *raw_aligned_16; - break; - case 32: -- uint32_t *e32 = (uint32_t *) &raw_aligned; -- expected = *e32; -+ expected = *raw_aligned_32; - break; - case 64: -- expected = raw_aligned; -+ expected = raw_aligned_64; - break; - } - - -From b169671c50e7c1779763ac89d35af11dc0997477 Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 13:46:46 +0100 -Subject: [PATCH 4/6] Tidy-up - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index 3a5038e98c2..b027c4b1165 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -20,13 +20,8 @@ int parse_hex_string(char *hex_string, uint64_t *result) - - /* If < 8 bytes, shift right and pad with leading zeros for big-endian */ - if (MBEDTLS_IS_BIG_ENDIAN && olen < 8) { -- int offset = 8 - olen; -- for (int i = olen - 1; i >= 0; i--) { -- raw[i + offset] = raw[i]; -- } -- for (int i = 0; i < offset; i++) { -- raw[i] = 0; -- } -+ memmove(raw + 8 - olen, raw, olen); -+ memset(raw, 0, 8 - olen); - } - - *result = 0; - -From c07df36f9e402ef8b97beb92b25556b04c10c77e Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 14:54:12 +0100 -Subject: [PATCH 5/6] More fixes for big-endian - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 12 +----------- - 1 file changed, 1 insertion(+), 11 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index b027c4b1165..717c51a6951 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -18,19 +18,9 @@ int parse_hex_string(char *hex_string, uint64_t *result) - return 0; - } - -- /* If < 8 bytes, shift right and pad with leading zeros for big-endian */ -- if (MBEDTLS_IS_BIG_ENDIAN && olen < 8) { -- memmove(raw + 8 - olen, raw, olen); -- memset(raw, 0, 8 - olen); -- } -- - *result = 0; - for (size_t i = 0; i < olen; i++) { -- if (MBEDTLS_IS_BIG_ENDIAN) { -- *result |= ((uint64_t) raw[i]) << (i * 8); -- } else { -- *result |= ((uint64_t) raw[i]) << ((olen - i - 1) * 8); -- } -+ *result |= ((uint64_t) raw[i]) << ((olen - i - 1) * 8); - } - return 1; - } - -From 9145dc46ed98f0bc19e09d52486ba120c1f14589 Mon Sep 17 00:00:00 2001 -From: Dave Rodgman <dave.rodgman@arm.com> -Date: Thu, 13 Apr 2023 14:59:03 +0100 -Subject: [PATCH 6/6] Ensure variables initialised - -Signed-off-by: Dave Rodgman <dave.rodgman@arm.com> ---- - tests/suites/test_suite_alignment.function | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function -index 717c51a6951..ed8f918d8c3 100644 ---- a/tests/suites/test_suite_alignment.function -+++ b/tests/suites/test_suite_alignment.function -@@ -12,7 +12,7 @@ - */ - int parse_hex_string(char *hex_string, uint64_t *result) - { -- uint8_t raw[8]; -+ uint8_t raw[8] = {0}; - size_t olen; - if (mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0) { - return 0; -@@ -104,7 +104,7 @@ void mbedtls_unaligned_access(int size, int offset) - /* BEGIN_CASE */ - void mbedtls_byteswap(char *input_str, int size, char *expected_str) - { -- uint64_t input, expected; -+ uint64_t input = 0, expected = 0; - TEST_ASSERT(parse_hex_string(input_str, &input)); - TEST_ASSERT(parse_hex_string(expected_str, &expected)); - diff --git a/user/mdadm/0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch b/user/mdadm/0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch new file mode 100644 index 000000000..d0e63fc98 --- /dev/null +++ b/user/mdadm/0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch @@ -0,0 +1,28 @@ +From 1750758c7ff526e3560433f6235e5cfa35cf646a Mon Sep 17 00:00:00 2001 +From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> +Date: Wed, 6 Mar 2024 15:50:55 +0100 +Subject: [PATCH] udev.c: Do not require libudev.h if DNO_LIBUDEV + +libudev may not be presented at all, do not require it. + +Reported-by: Boian Bonev <bbonev@ipacct.com> +Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> + +diff --git a/udev.c b/udev.c +index bc4722b0..066e6ab1 100644 +--- a/udev.c ++++ b/udev.c +@@ -26,7 +26,10 @@ + #include <signal.h> + #include <limits.h> + #include <syslog.h> ++ ++#ifndef NO_LIBUDEV + #include <libudev.h> ++#endif + + static char *unblock_path; + +-- +2.43.4 + diff --git a/user/mdadm/APKBUILD b/user/mdadm/APKBUILD index 13adda8e2..c39bf46ba 100644 --- a/user/mdadm/APKBUILD +++ b/user/mdadm/APKBUILD @@ -2,8 +2,8 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: pkgname=mdadm -pkgver=4.1 -pkgrel=2 +pkgver=4.3 +pkgrel=0 pkgdesc="Tool for managing Linux soft RAID arrays" url="http://neil.brown.name/blog/mdadm" arch="all" @@ -17,12 +17,14 @@ source="https://mirrors.kernel.org/pub/linux/utils/raid/$pkgname/$pkgname-$pkgve $pkgname.initd $pkgname.confd $pkgname-raid.initd - sysmacros.patch time64.patch + falloc.patch + missing-header.patch + 0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch " build() { - make + make CXFLAGS="${CFLAGS} -DNO_LIBUDEV" } package() { @@ -49,9 +51,11 @@ misc() { install -Dm755 "$builddir"/misc/syslog-events "$subpkgdir"/usr/sbin/handle-mdadm-events } -sha512sums="f9bff760795ba7361f19fd1cbc02efedcdaa4b0125b99cf1369e78f30e5c128126751915fde41407d46c544514d864bf82b508419bc08f1db7aa447557e2ca9e mdadm-4.1.tar.gz +sha512sums="a77af2b371ed27b7bd89b7991302282f0fc77999eb93d7959446fc4b1c28388582d08ff0abfc470a9f9a8c8036acb0158edc44d9a8d406f807ca28111bf74459 mdadm-4.3.tar.gz ca5f4e3ff5b284102b44e818d11622e1889066e3d18edce2d62c1a44ee8f4cfdc0979121c0462a916c638423c5ebc706c46aa996a7c4f68e030589adc62803f4 mdadm.initd 7d45bf489ef93a4f217ffcf72311eb661b8de7fbf63a5344697252c0d3a684b0123ff60efa5f218da4eb4cda7c88d91c2ef3625d5e44a588e3e1210cb60b0ab9 mdadm.confd 37022593ba090eb0690669b99d6386152242c017c1e608cea7b5420b7a6f754b377e916e4f81e2abf9941e791db78b5820e63db0e706d5de8b35e796678e921c mdadm-raid.initd -47564bba9d45dfb39d63df9e6cd96ad03b37b314e794af180911481feb4e038035aa1ea6d3de2061982f46b51d1a205168f98e6f0a092f55f6f8e760dbabdae6 sysmacros.patch -53c2fe442e8657a7a5a011eab1cd1bfcca6c315ee42e4148a50e1314d238f957e7e722e1264c64c548d398a2c6b10600cccf45a4fb69351d3d9ad403f90c1fde time64.patch" +cb21650ffb7f8bd1a7a72e27e48e5f18de7158cb8ba23315f9fc48ff5fa79662d0a64128d8b61eff76da7a41e0ccbc5be375a10c852823d489aa648baab76ba4 time64.patch +72544b173499c4ecbcf85284cd4ca5560c2e3548e319e8e7e99967e369f3334e7b77950ff7ed2ed61b6e3c338894595154b2a7c6ccb30b5be1bbd2b75756738c falloc.patch +669e0f14df7de0650eaa7a395167be3e12c08ed8c53ed0388d45be2a17c2e34dc08a2a77dc0d8692b2cd051154a644d6cc7cfcadbe58125dd4c09f9349bb2451 missing-header.patch +b8fdfad727872a0bfc9bc97024b0fb49d6d39ae6d9eac81c65adb0c524add014a27bd9157f2c47b14a54fbe30abf87b64fbeb9218f2bc5a0ada48d06e0e6ea66 0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch" diff --git a/user/mdadm/falloc.patch b/user/mdadm/falloc.patch new file mode 100644 index 000000000..9f8d4ddd9 --- /dev/null +++ b/user/mdadm/falloc.patch @@ -0,0 +1,41 @@ +From 52bead95d2957437c691891fcdc49bd6afccdd49 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Fri, 12 Apr 2024 18:45:13 +0200 +Subject: Create.c: fix uclibc build + +Define FALLOC_FL_ZERO_RANGE if needed as FALLOC_FL_ZERO_RANGE is only +defined for aarch64 on uclibc-ng resulting in the following or1k build +failure since commit 577fd10486d8d1472a6b559066f344ac30a3a391: + +Create.c: In function 'write_zeroes_fork': +Create.c:155:35: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function) + 155 | if (fallocate(fd, FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE, + | ^~~~~~~~~~~~~~~~~~~~ + +Fixes: + - http://autobuild.buildroot.org/results/0e04bcdb591ca5642053e1f7e31384f06581e989 + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> +--- + Create.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Create.c b/Create.c +index 4397ff49..d94253b1 100644 +--- a/Create.c ++++ b/Create.c +@@ -32,6 +32,10 @@ + #include <sys/signalfd.h> + #include <sys/wait.h> + ++#ifndef FALLOC_FL_ZERO_RANGE ++#define FALLOC_FL_ZERO_RANGE 16 ++#endif ++ + static int round_size_and_verify(unsigned long long *size, int chunk) + { + if (*size == 0) +-- +cgit 1.2.3-korg + diff --git a/user/mdadm/missing-header.patch b/user/mdadm/missing-header.patch new file mode 100644 index 000000000..85dea22a8 --- /dev/null +++ b/user/mdadm/missing-header.patch @@ -0,0 +1,29 @@ +From 8bda86099089b44129ef6206764f9de47a45f0db Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 12 Mar 2024 11:01:50 +0100 +Subject: util.c: add limits.h include for NAME_MAX definition + +Add limits.h include for NAME_MAX definition. + +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> +--- + util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util.c b/util.c +index 05ad3343..49a9c6e2 100644 +--- a/util.c ++++ b/util.c +@@ -36,7 +36,7 @@ + #include <ctype.h> + #include <dirent.h> + #include <dlfcn.h> +- ++#include <limits.h> + + /* + * following taken from linux/blkpg.h because they aren't +-- +cgit 1.2.3-korg + diff --git a/user/mdadm/sysmacros.patch b/user/mdadm/sysmacros.patch deleted file mode 100644 index 22a393447..000000000 --- a/user/mdadm/sysmacros.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://bugs.gentoo.org/580188 - -From 5c97e465b33bf8fefb17da7f553a1c3812e508d5 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Tue, 19 Apr 2016 18:10:54 -0400 -Subject: [PATCH] include sys/sysmacros.h for major/minor/makedev prototypes - -These funcs are defined in sys/sysmacros.h, so include it for them. -It works today due to an implicit include by sys/types.h, but the -various Linux C libraries are moving away from that. - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - mdadm.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/mdadm.h b/mdadm.h -index d209488..b8767a7 100755 ---- a/mdadm.h -+++ b/mdadm.h -@@ -33,6 +33,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); - # endif - #endif - -+#include <sys/sysmacros.h> - #include <sys/types.h> - #include <sys/stat.h> - #include <stdint.h> --- -2.7.4 - diff --git a/user/mdadm/time64.patch b/user/mdadm/time64.patch index fd05fcb2f..aff2af9cd 100644 --- a/user/mdadm/time64.patch +++ b/user/mdadm/time64.patch @@ -8,7 +8,7 @@ #include <sys/syscall.h> #include <sys/select.h> #include <signal.h> -@@ -447,7 +448,7 @@ +@@ -449,7 +450,7 @@ } gettimeofday(&tv, NULL); diff --git a/user/mdds/APKBUILD b/user/mdds/APKBUILD index 4b56cc780..c782a1649 100644 --- a/user/mdds/APKBUILD +++ b/user/mdds/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: Max Rees <maxcrees@me.com> pkgname=mdds -pkgver=2.0.3 +pkgver=2.1.1 pkgrel=0 pkgdesc="Multi-dimensional data index algorithms" url="https://gitlab.com/mdds/mdds" @@ -9,13 +9,16 @@ arch="noarch" license="MIT" depends="" checkdepends="boost-dev" -makedepends="autoconf automake libtool" +makedepends="" subpackages="$pkgname-doc" replaces="$pkgname-dev" -source="https://gitlab.com/mdds/mdds/-/archive/$pkgver/$pkgname-$pkgver.tar.bz2" +source="https://gitlab.com/api/v4/projects/mdds%2Fmdds/packages/generic/source/$pkgver/$pkgname-$pkgver.tar.xz" build() { - ./autogen.sh \ + # GCC 13 changed default fp precision behavior. (#1193, #1205) + export CXXFLAGS="${CXXFLAGS} -fexcess-precision=fast" + + ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ @@ -36,4 +39,4 @@ package() { mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib/ } -sha512sums="6d069ce4d1a59f15a0aba02ecc7f2082486df734eb23f6e2f865be1dff7b22a023ec421b60b6cb13d1fbf803bf3f68964b83236481c3415e40dca66b217efca8 mdds-2.0.3.tar.bz2" +sha512sums="5fe345e7d84d2e290a519d65b27332f69001c01da961c05a30abfe2a17cb8545822490bcd63b320d49e1b26291a4a898f77495951919aece83208133027848ea mdds-2.1.1.tar.xz" diff --git a/user/menu-cache/APKBUILD b/user/menu-cache/APKBUILD index dd8b8a0f5..3c20b042c 100644 --- a/user/menu-cache/APKBUILD +++ b/user/menu-cache/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: pkgname=menu-cache pkgver=1.1.0 -pkgrel=0 +pkgrel=1 pkgdesc="Caching mechanism for freedesktop.org menus" url="https://lxde.org/" arch="all" @@ -11,7 +11,9 @@ license="GPL-2.0+" depends="" makedepends="glib-dev libfm-extra-dev" subpackages="$pkgname-dev" -source="https://downloads.sourceforge.net/lxde/menu-cache/1.1/$pkgname-$pkgver.tar.xz" +source="https://downloads.sourceforge.net/lxde/menu-cache/1.1/$pkgname-$pkgver.tar.xz + gcc10.patch + " build() { ./configure \ @@ -26,4 +28,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e4c6619ade7b9a1b97c1366bb94dffb9975be5664b193cf0c69cf9470ef7ae19bda3390d04d98ee9a5b1658ec48aa5c83508c26c347af689161ee67c076b3c9e menu-cache-1.1.0.tar.xz" +sha512sums="e4c6619ade7b9a1b97c1366bb94dffb9975be5664b193cf0c69cf9470ef7ae19bda3390d04d98ee9a5b1658ec48aa5c83508c26c347af689161ee67c076b3c9e menu-cache-1.1.0.tar.xz +ce4aa02e56bca4af6e32ef7ce689c26387309ef6e1d9560f37d344bca6ef5aba6c3c8c9c3ea38127ca71f8aaff0cfbfed47775c7b2cbb9703deae99b6fc78645 gcc10.patch" diff --git a/user/menu-cache/gcc10.patch b/user/menu-cache/gcc10.patch new file mode 100644 index 000000000..9949d09a9 --- /dev/null +++ b/user/menu-cache/gcc10.patch @@ -0,0 +1,103 @@ +From 4a82095ca4a334ceaf306c128248eb020f11bef1 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtasaka@fedoraproject.org> +Date: Fri, 24 Jan 2020 13:33:00 +0900 +Subject: [PATCH] Support gcc10 compilation + +gcc10 now defaults to -fno-common. + +(original commit message cut by committer and supplemented below) + +Do not define variables in a header file. Declare globally used +variables as "extern" instead. +--- + menu-cache-gen/menu-tags.h | 55 ++++++++++++-------------------------- + 1 file changed, 17 insertions(+), 38 deletions(-) + +diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h +index f3fd7d3..f71c0bc 100644 +--- a/menu-cache-gen/menu-tags.h ++++ b/menu-cache-gen/menu-tags.h +@@ -22,38 +22,17 @@ + #include <libfm/fm-extra.h> + #include <menu-cache.h> + +-FmXmlFileTag menuTag_Menu; +-FmXmlFileTag menuTag_AppDir; +-FmXmlFileTag menuTag_DefaultAppDirs; +-FmXmlFileTag menuTag_DirectoryDir; +-FmXmlFileTag menuTag_DefaultDirectoryDirs; +-FmXmlFileTag menuTag_Include; +-FmXmlFileTag menuTag_Exclude; +-FmXmlFileTag menuTag_Filename; +-FmXmlFileTag menuTag_Or; +-FmXmlFileTag menuTag_And; +-FmXmlFileTag menuTag_Not; +-FmXmlFileTag menuTag_Category; +-FmXmlFileTag menuTag_MergeFile; +-FmXmlFileTag menuTag_MergeDir; +-FmXmlFileTag menuTag_DefaultMergeDirs; +-FmXmlFileTag menuTag_Directory; +-FmXmlFileTag menuTag_Name; +-FmXmlFileTag menuTag_Deleted; +-FmXmlFileTag menuTag_NotDeleted; +-FmXmlFileTag menuTag_OnlyUnallocated; +-FmXmlFileTag menuTag_NotOnlyUnallocated; +-FmXmlFileTag menuTag_All; +-FmXmlFileTag menuTag_LegacyDir; +-FmXmlFileTag menuTag_KDELegacyDirs; +-FmXmlFileTag menuTag_Move; +-FmXmlFileTag menuTag_Old; +-FmXmlFileTag menuTag_New; +-FmXmlFileTag menuTag_Layout; +-FmXmlFileTag menuTag_DefaultLayout; +-FmXmlFileTag menuTag_Menuname; +-FmXmlFileTag menuTag_Separator; +-FmXmlFileTag menuTag_Merge; ++extern FmXmlFileTag menuTag_AppDir; ++extern FmXmlFileTag menuTag_DirectoryDir; ++extern FmXmlFileTag menuTag_Include; ++extern FmXmlFileTag menuTag_Exclude; ++extern FmXmlFileTag menuTag_Filename; ++extern FmXmlFileTag menuTag_Or; ++extern FmXmlFileTag menuTag_And; ++extern FmXmlFileTag menuTag_Not; ++extern FmXmlFileTag menuTag_Category; ++extern FmXmlFileTag menuTag_All; ++extern FmXmlFileTag menuTag_LegacyDir; + + typedef enum { + MERGE_NONE, /* starting value */ +@@ -152,19 +131,19 @@ typedef struct { + } MenuRule; + + /* requested language(s) */ +-char **languages; ++extern char **languages; + + /* list of menu files to monitor */ +-GSList *MenuFiles; ++extern GSList *MenuFiles; + + /* list of menu dirs to monitor */ +-GSList *MenuDirs; ++extern GSList *MenuDirs; + + /* list of available app dirs */ +-GSList *AppDirs; ++extern GSList *AppDirs; + + /* list of available dir dirs */ +-GSList *DirDirs; ++extern GSList *DirDirs; + + /* parse and merge menu files */ + MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error); +@@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil + void _free_layout_items(GList *data); + + /* verbosity level */ +-gint verbose; ++extern gint verbose; + + #define DBG if (verbose) g_debug + #define VDBG if (verbose > 1) g_debug diff --git a/user/mesa/APKBUILD b/user/mesa/APKBUILD index f04943365..84c658c58 100644 --- a/user/mesa/APKBUILD +++ b/user/mesa/APKBUILD @@ -1,8 +1,8 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=mesa -pkgver=21.3.8 +pkgver=21.3.9 _llvmver=14 -pkgrel=0 +pkgrel=2 pkgdesc="Mesa DRI OpenGL library" url="https://www.mesa3d.org" arch="all" @@ -25,6 +25,7 @@ source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz big-endian-flipping.patch musl-fixes.patch no-tls.patch + nouveau-flush-fix.patch " _dri_driverdir=/usr/lib/xorg/modules/dri @@ -37,6 +38,7 @@ x86* | pmmx) _dri_drivers="${_dri_drivers},i965" _gallium_drivers="${_gallium_drivers},i915,svga,iris" _vulkan_drivers="${_vulkan_drivers},intel" + _arch_conf="-Dsse2=false" ;; aarch64 | arm*) _gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,kmsro,v3d,lima,panfrost,etnaviv" @@ -50,7 +52,15 @@ ppc64) esac build() { + # This is to fix #796, and is derived from: + # https://gitlab.freedesktop.org/mesa/mesa/-/commit/cc2b3a99ccf035a084d768e5c5ffa81478d685c1 + cat > native.file <<EOF +[binaries] +llvm-config = '$(command -v llvm${_llvmver}-config)' +EOF + meson \ + --native-file=native.file \ -Dprefix=/usr \ -Ddri-drivers-path=$_dri_driverdir \ -Dplatforms=x11,wayland \ @@ -151,7 +161,8 @@ dri() { mv "$pkgdir"/usr/share/vulkan/icd.d "$subpkgdir"/usr/share/vulkan/ } -sha512sums="0462c44fa8e358dafd03088411452bc172a365902795b3198df1e6cfbf1d87675ef5b72b572de7f15e5ee87b30ce5b2f217c81ea72b376962f6428c6ff83f2e9 mesa-21.3.8.tar.xz +sha512sums="4cec6f4f50f444fcd327f7c40f8899c2f265e348e121455262b540b1f890a1468bbea59965af0876c548fa97aa0a05a1b23fa6ca7d308bd60328cfdeab757684 mesa-21.3.9.tar.xz 3417e5c6d7ec564178e1d72431042b0a6ba659321f13a3dda81eda5fa0f2c8bc7c6972cb8266aea84ab05976ffb161659e9988c50ecc418e8bc1e1ce8f93a65f big-endian-flipping.patch 9f7a050f09571a2b17098d495b82e2e85b293fb7285e7d6d7c3c48cd4220a1bdcc61a7321ba78dd14860939ecabe7e89b32d6110f3728f793273e1e26b78a553 musl-fixes.patch -076bb17d85235f3c833af8f1641f3556e406ad187b7ae1ebacced5f57b8832243a878678de4e50880c9a50b2aae3c42ad2342ed8c3e18d881edb7dd5018a710e no-tls.patch" +076bb17d85235f3c833af8f1641f3556e406ad187b7ae1ebacced5f57b8832243a878678de4e50880c9a50b2aae3c42ad2342ed8c3e18d881edb7dd5018a710e no-tls.patch +7283dc0e86e1ddaf4590008db57dd591921f47928945782afaa283f3b87770c731bab19d3d8879b4bf8b785f8886b9b46c576ca735296123f8afff29655abaeb nouveau-flush-fix.patch" diff --git a/user/mesa/llvm-opaque.patch b/user/mesa/llvm-opaque.patch new file mode 100644 index 000000000..80bd18967 --- /dev/null +++ b/user/mesa/llvm-opaque.patch @@ -0,0 +1,8467 @@ +From af20d46a39e4431b85d593f56912a185a157554e Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:14:48 +0300 +Subject: [PATCH 01/22] gallium: add opaque pointers shim for LLVM < 8.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +LLVM is transitioning to "opaque pointers", and as such deprecates +LLVMBuildGEP, LLVMBuildCall, LLVMBuildLoad, replacing them with +LLVMBuildGEP2, LLVMBuildCall2, LLVMBuildLoad2 respectivelly. +These new functions were added in LLVM 8.0; so for LLVM before 8.0 we +simply forward to the non-opaque-pointer variants. + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld.h | 42 ++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld.h b/src/gallium/auxiliary/gallivm/lp_bld.h +index 9144428c8e162..5846afa3ce065 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld.h +@@ -87,4 +87,46 @@ + #define GALLIVM_HAVE_CORO 0 + #endif + ++/* LLVM is transitioning to "opaque pointers", and as such deprecates ++ * LLVMBuildGEP, LLVMBuildCall, LLVMBuildLoad, replacing them with ++ * LLVMBuildGEP2, LLVMBuildCall2, LLVMBuildLoad2 respectivelly. ++ * These new functions were added in LLVM 8.0; so for LLVM before 8.0 we ++ * simply forward to the non-opaque-pointer variants. ++ */ ++#if LLVM_VERSION_MAJOR < 8 ++ ++static inline LLVMValueRef ++LLVMBuildGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, ++ LLVMValueRef Pointer, LLVMValueRef *Indices, ++ unsigned NumIndices, const char *Name) ++{ ++ return LLVMBuildGEP(B, Pointer, Indices, NumIndices, Name); ++} ++ ++static inline LLVMValueRef ++LLVMBuildInBoundsGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, ++ LLVMValueRef Pointer, LLVMValueRef *Indices, ++ unsigned NumIndices, const char *Name) ++{ ++ return LLVMBuildInBoundsGEP(B, Pointer, Indices, NumIndices, Name); ++} ++ ++static inline LLVMValueRef ++LLVMBuildLoad2(LLVMBuilderRef B, LLVMTypeRef Ty, ++ LLVMValueRef PointerVal, const char *Name) ++{ ++ LLVMValueRef val = LLVMBuildLoad(B, PointerVal, Name); ++ return LLVMTypeOf(val) == Ty ? val : LLVMBuildBitCast(B, val, Ty, Name); ++} ++ ++static inline LLVMValueRef ++LLVMBuildCall2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, ++ LLVMValueRef *Args, unsigned NumArgs, ++ const char *Name) ++{ ++ return LLVMBuildCall(B, Fn, Args, NumArgs, Name); ++} ++ ++#endif /* LLVM_VERSION_MAJOR < 8 */ ++ + #endif /* LP_BLD_H */ +-- +GitLab + + +From eb9a65c91422eb765df80693b2220f625404468c Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:20:01 +0300 +Subject: [PATCH 02/22] gallium: use LLVM opaque pointers in draw_llvm.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/draw/draw_llvm.c | 150 ++++++++++++------------- + src/gallium/auxiliary/draw/draw_llvm.h | 7 ++ + 2 files changed, 81 insertions(+), 76 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c +index 5e5ce53a3ab79..1f68170d99e03 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.c ++++ b/src/gallium/auxiliary/draw/draw_llvm.c +@@ -639,14 +639,13 @@ create_tcs_jit_output_type(struct gallivm_state *gallivm) + } + + static LLVMTypeRef +-create_tes_jit_input_type(struct gallivm_state *gallivm) ++create_tes_jit_input_deref_type(struct gallivm_state *gallivm) + { + LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context); + LLVMTypeRef input_array; + + input_array = LLVMArrayType(float_type, TGSI_NUM_CHANNELS); /* num channels */ + input_array = LLVMArrayType(input_array, PIPE_MAX_SHADER_INPUTS); /* num attrs per vertex */ +- input_array = LLVMPointerType(input_array, 0); /* num vertices per prim */ + + return input_array; + } +@@ -721,8 +720,7 @@ static void + create_jit_types(struct draw_llvm_variant *variant) + { + struct gallivm_state *gallivm = variant->gallivm; +- LLVMTypeRef texture_type, sampler_type, context_type, buffer_type, +- vb_type, image_type; ++ LLVMTypeRef texture_type, sampler_type, context_type, image_type; + + texture_type = create_jit_texture_type(gallivm, "texture"); + sampler_type = create_jit_sampler_type(gallivm, "sampler"); +@@ -733,11 +731,11 @@ create_jit_types(struct draw_llvm_variant *variant) + "draw_jit_context"); + variant->context_ptr_type = LLVMPointerType(context_type, 0); + +- buffer_type = create_jit_dvbuffer_type(gallivm, "draw_vertex_buffer"); +- variant->buffer_ptr_type = LLVMPointerType(buffer_type, 0); ++ variant->buffer_type = create_jit_dvbuffer_type(gallivm, "draw_vertex_buffer"); ++ variant->buffer_ptr_type = LLVMPointerType(variant->buffer_type, 0); + +- vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer"); +- variant->vb_ptr_type = LLVMPointerType(vb_type, 0); ++ variant->vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer"); ++ variant->vb_ptr_type = LLVMPointerType(variant->vb_type, 0); + } + + +@@ -770,8 +768,7 @@ get_vb_ptr_type(struct draw_llvm_variant *variant) + static LLVMTypeRef + get_vertex_header_ptr_type(struct draw_llvm_variant *variant) + { +- if (!variant->vertex_header_ptr_type) +- create_jit_types(variant); ++ assert(variant->vertex_header_ptr_type); + return variant->vertex_header_ptr_type; + } + +@@ -871,7 +868,6 @@ draw_llvm_create_variant(struct draw_llvm *llvm, + struct draw_llvm_variant *variant; + struct llvm_vertex_shader *shader = + llvm_vertex_shader(llvm->draw->vs.vertex_shader); +- LLVMTypeRef vertex_header; + char module_name[64]; + unsigned char ir_sha1_cache_key[20]; + struct lp_cached_code cached = { 0 }; +@@ -914,9 +910,8 @@ draw_llvm_create_variant(struct draw_llvm *llvm, + draw_llvm_dump_variant_key(&variant->key); + } + +- vertex_header = create_jit_vertex_header(variant->gallivm, num_inputs); +- +- variant->vertex_header_ptr_type = LLVMPointerType(vertex_header, 0); ++ variant->vertex_header_type = create_jit_vertex_header(variant->gallivm, num_inputs); ++ variant->vertex_header_ptr_type = LLVMPointerType(variant->vertex_header_type, 0); + + draw_llvm_generate(llvm, variant); + +@@ -957,7 +952,7 @@ do_clamp_vertex_color(struct gallivm_state *gallivm, + switch (info->output_semantic_name[attrib]) { + case TGSI_SEMANTIC_COLOR: + case TGSI_SEMANTIC_BCOLOR: +- out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); ++ out = LLVMBuildLoad2(builder, LLVMTypeOf(bld.zero), outputs[attrib][chan], ""); + out = lp_build_clamp(&bld, out, bld.zero, bld.one); + LLVMBuildStore(builder, out, outputs[attrib][chan]); + break; +@@ -1393,7 +1388,6 @@ store_clip(struct gallivm_state *gallivm, + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef soa[4]; + LLVMValueRef aos[LP_MAX_VECTOR_LENGTH]; +- LLVMValueRef indices[2]; + LLVMValueRef io_ptrs[LP_MAX_VECTOR_WIDTH / 32]; + LLVMValueRef inds[LP_MAX_VECTOR_WIDTH / 32]; + LLVMValueRef clip_ptrs[LP_MAX_VECTOR_WIDTH / 32]; +@@ -1402,9 +1396,6 @@ store_clip(struct gallivm_state *gallivm, + 4), 0); + int i, j; + +- indices[0] = +- indices[1] = lp_build_const_int32(gallivm, 0); +- + for (i = 0; i < vs_type.length; i++) { + inds[i] = lp_build_const_int32(gallivm, i); + io_ptrs[i] = LLVMBuildGEP(builder, io_ptr, &inds[i], 1, ""); +@@ -1430,8 +1421,7 @@ store_clip(struct gallivm_state *gallivm, + for (j = 0; j < vs_type.length; j++) { + LLVMValueRef clip_ptr; + +- clip_ptr = LLVMBuildGEP(builder, clip_ptrs[j], indices, 2, "clipo"); +- clip_ptr = LLVMBuildPointerCast(builder, clip_ptr, clip_ptr_type, ""); ++ clip_ptr = LLVMBuildPointerCast(builder, clip_ptrs[j], clip_ptr_type, ""); + + /* Unaligned store */ + LLVMSetAlignment(LLVMBuildStore(builder, aos[j], clip_ptr), sizeof(float)); +@@ -1454,7 +1444,7 @@ generate_viewport(struct draw_llvm_variant *variant, + struct lp_type f32_type = vs_type; + const unsigned pos = variant->llvm->draw->vs.position_output; + LLVMTypeRef vs_type_llvm = lp_build_vec_type(gallivm, vs_type); +- LLVMValueRef out3 = LLVMBuildLoad(builder, outputs[pos][3], ""); /*w0 w1 .. wn*/ ++ LLVMValueRef out3 = LLVMBuildLoad2(builder, vs_type_llvm, outputs[pos][3], ""); /*w0 w1 .. wn*/ + LLVMValueRef const1 = lp_build_const_vec(gallivm, f32_type, 1.0); /*1.0 1.0 1.0 1.0*/ + LLVMValueRef vp_ptr = draw_jit_context_viewports(gallivm, context_ptr); + +@@ -1466,9 +1456,11 @@ generate_viewport(struct draw_llvm_variant *variant, + out3 = LLVMBuildFDiv(builder, const1, out3, ""); + LLVMBuildStore(builder, out3, outputs[pos][3]); + ++ LLVMTypeRef elem_type = lp_build_elem_type(gallivm, vs_type); ++ + /* Viewport Mapping */ + for (i=0; i<3; i++) { +- LLVMValueRef out = LLVMBuildLoad(builder, outputs[pos][i], ""); /*x0 x1 .. xn*/ ++ LLVMValueRef out = LLVMBuildLoad2(builder, vs_type_llvm, outputs[pos][i], ""); /*x0 x1 .. xn*/ + LLVMValueRef scale; + LLVMValueRef trans; + LLVMValueRef scale_i; +@@ -1476,15 +1468,15 @@ generate_viewport(struct draw_llvm_variant *variant, + LLVMValueRef index; + + index = lp_build_const_int32(gallivm, i + scale_index_offset); +- scale_i = LLVMBuildGEP(builder, vp_ptr, &index, 1, ""); ++ scale_i = LLVMBuildGEP2(builder, elem_type, vp_ptr, &index, 1, ""); + + index = lp_build_const_int32(gallivm, i + trans_index_offset); +- trans_i = LLVMBuildGEP(builder, vp_ptr, &index, 1, ""); ++ trans_i = LLVMBuildGEP2(builder, elem_type, vp_ptr, &index, 1, ""); + + scale = lp_build_broadcast(gallivm, vs_type_llvm, +- LLVMBuildLoad(builder, scale_i, "scale")); ++ LLVMBuildLoad2(builder, elem_type, scale_i, "scale")); + trans = lp_build_broadcast(gallivm, vs_type_llvm, +- LLVMBuildLoad(builder, trans_i, "trans")); ++ LLVMBuildLoad2(builder, elem_type, trans_i, "trans")); + + /* divide by w */ + out = LLVMBuildFMul(builder, out, out3, ""); +@@ -1543,20 +1535,22 @@ generate_clipmask(struct draw_llvm *llvm, + zero = lp_build_const_vec(gallivm, f32_type, 0); /* 0.0f 0.0f 0.0f 0.0f */ + shift = lp_build_const_int_vec(gallivm, i32_type, 1); /* 1 1 1 1 */ + ++ LLVMTypeRef vec_type = LLVMTypeOf(zero); ++ + /* + * load clipvertex and position from correct locations. + * if they are the same just load them once. + */ +- pos_x = LLVMBuildLoad(builder, outputs[pos][0], ""); /*x0 x1 .. xn */ +- pos_y = LLVMBuildLoad(builder, outputs[pos][1], ""); /*y0 y1 .. yn */ +- pos_z = LLVMBuildLoad(builder, outputs[pos][2], ""); /*z0 z1 .. zn */ +- pos_w = LLVMBuildLoad(builder, outputs[pos][3], ""); /*w0 w1 .. wn */ ++ pos_x = LLVMBuildLoad2(builder, vec_type, outputs[pos][0], ""); /*x0 x1 .. xn */ ++ pos_y = LLVMBuildLoad2(builder, vec_type, outputs[pos][1], ""); /*y0 y1 .. yn */ ++ pos_z = LLVMBuildLoad2(builder, vec_type, outputs[pos][2], ""); /*z0 z1 .. zn */ ++ pos_w = LLVMBuildLoad2(builder, vec_type, outputs[pos][3], ""); /*w0 w1 .. wn */ + + if (clip_user && cv != pos) { +- cv_x = LLVMBuildLoad(builder, outputs[cv][0], ""); /*x0 x1 .. xn */ +- cv_y = LLVMBuildLoad(builder, outputs[cv][1], ""); /*y0 y1 .. yn */ +- cv_z = LLVMBuildLoad(builder, outputs[cv][2], ""); /*z0 z1 .. zn */ +- cv_w = LLVMBuildLoad(builder, outputs[cv][3], ""); /*w0 w1 .. wn */ ++ cv_x = LLVMBuildLoad2(builder, vec_type, outputs[cv][0], ""); /*x0 x1 .. xn */ ++ cv_y = LLVMBuildLoad2(builder, vec_type, outputs[cv][1], ""); /*y0 y1 .. yn */ ++ cv_z = LLVMBuildLoad2(builder, vec_type, outputs[cv][2], ""); /*z0 z1 .. zn */ ++ cv_w = LLVMBuildLoad2(builder, vec_type, outputs[cv][3], ""); /*w0 w1 .. wn */ + } else { + cv_x = pos_x; + cv_y = pos_y; +@@ -1641,9 +1635,9 @@ generate_clipmask(struct draw_llvm *llvm, + + *have_clipdist = TRUE; + if (i < 4) { +- clipdist = LLVMBuildLoad(builder, outputs[cd[0]][i], ""); ++ clipdist = LLVMBuildLoad2(builder, vec_type, outputs[cd[0]][i], ""); + } else { +- clipdist = LLVMBuildLoad(builder, outputs[cd[1]][i-4], ""); ++ clipdist = LLVMBuildLoad2(builder, vec_type, outputs[cd[1]][i-4], ""); + } + test = lp_build_compare(gallivm, f32_type, PIPE_FUNC_GREATER, zero, clipdist); + is_nan_or_inf = lp_build_is_inf_or_nan(gallivm, vs_type, clipdist); +@@ -1652,31 +1646,32 @@ generate_clipmask(struct draw_llvm *llvm, + test = LLVMBuildAnd(builder, test, temp, ""); + mask = LLVMBuildOr(builder, mask, test, ""); + } else { ++ LLVMTypeRef vs_elem_type = lp_build_elem_type(gallivm, vs_type); + LLVMTypeRef vs_type_llvm = lp_build_vec_type(gallivm, vs_type); + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, plane_idx); + + indices[2] = lp_build_const_int32(gallivm, 0); + plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad(builder, plane_ptr, "plane_x"); ++ plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_x"); + planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); + sum = LLVMBuildFMul(builder, planes, cv_x, ""); + + indices[2] = lp_build_const_int32(gallivm, 1); + plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad(builder, plane_ptr, "plane_y"); ++ plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_y"); + planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); + sum = lp_build_fmuladd(builder, planes, cv_y, sum); + + indices[2] = lp_build_const_int32(gallivm, 2); + plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad(builder, plane_ptr, "plane_z"); ++ plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_z"); + planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); + sum = lp_build_fmuladd(builder, planes, cv_z, sum); + + indices[2] = lp_build_const_int32(gallivm, 3); + plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad(builder, plane_ptr, "plane_w"); ++ plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_w"); + planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); + sum = lp_build_fmuladd(builder, planes, cv_w, sum); + +@@ -1694,7 +1689,7 @@ generate_clipmask(struct draw_llvm *llvm, + */ + unsigned edge_attr = llvm->draw->vs.edgeflag_output; + LLVMValueRef one = lp_build_const_vec(gallivm, f32_type, 1.0); +- LLVMValueRef edgeflag = LLVMBuildLoad(builder, outputs[edge_attr][0], ""); ++ LLVMValueRef edgeflag = LLVMBuildLoad2(builder, vec_type, outputs[edge_attr][0], ""); + test = lp_build_compare(gallivm, f32_type, PIPE_FUNC_EQUAL, one, edgeflag); + temp = lp_build_const_int_vec(gallivm, i32_type, + 1LL << DRAW_TOTAL_CLIP_PLANES); +@@ -2062,7 +2057,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + LLVMVectorType(LLVMInt64TypeInContext(context), 4), ""); + fake_buf = LLVMBuildBitCast(builder, fake_buf, + LLVMPointerType(LLVMInt8TypeInContext(context), 0), ""); +- fake_buf_ptr = LLVMBuildGEP(builder, fake_buf, &bld.zero, 1, ""); ++ fake_buf_ptr = LLVMBuildGEP2(builder, LLVMInt8TypeInContext(context), fake_buf, &bld.zero, 1, ""); + + /* code generated texture sampling */ + sampler = draw_llvm_sampler_soa_create(draw_llvm_variant_key_samplers(key), key->nr_samplers); +@@ -2104,8 +2099,8 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + struct lp_build_if_state if_ctx; + + if (velem->src_format != PIPE_FORMAT_NONE) { +- vbuffer_ptr = LLVMBuildGEP(builder, vbuffers_ptr, &vb_index, 1, ""); +- vb_info = LLVMBuildGEP(builder, vb_ptr, &vb_index, 1, ""); ++ vbuffer_ptr = LLVMBuildGEP2(builder, variant->buffer_type, vbuffers_ptr, &vb_index, 1, ""); ++ vb_info = LLVMBuildGEP2(builder, variant->vb_type, vb_ptr, &vb_index, 1, ""); + vb_stride[j] = draw_jit_vbuffer_stride(gallivm, vb_info); + vb_stride[j] = LLVMBuildZExt(gallivm->builder, vb_stride[j], + LLVMInt32TypeInContext(context), ""); +@@ -2157,8 +2152,9 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + buffer_size_adj[j] = LLVMBuildSelect(builder, ofbit, bld.zero, + buffer_size_adj[j], ""); + +- temp_ptr = lp_build_alloca_undef(gallivm, +- LLVMPointerType(LLVMInt8TypeInContext(context), 0), ""); ++ LLVMTypeRef byte_type = LLVMInt8TypeInContext(context); ++ LLVMTypeRef byte_ptr_type = LLVMPointerType(byte_type, 0); ++ temp_ptr = lp_build_alloca_undef(gallivm, byte_ptr_type, ""); + + lp_build_if(&if_ctx, gallivm, ofbit); + { +@@ -2166,11 +2162,11 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + } + lp_build_else(&if_ctx); + { +- map_ptr[j] = LLVMBuildGEP(builder, map_ptr[j], &buf_offset, 1, ""); ++ map_ptr[j] = LLVMBuildGEP2(builder, byte_type, map_ptr[j], &buf_offset, 1, ""); + LLVMBuildStore(builder, map_ptr[j], temp_ptr); + } + lp_build_endif(&if_ctx); +- map_ptr[j] = LLVMBuildLoad(builder, temp_ptr, "map_ptr"); ++ map_ptr[j] = LLVMBuildLoad2(builder, byte_ptr_type, temp_ptr, "map_ptr"); + + if (0) { + lp_build_printf(gallivm, "velem %d, vbuf index = %u, vb_stride = %u\n", +@@ -2196,7 +2192,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + + io_itr = lp_loop.counter; + +- io = LLVMBuildGEP(builder, io_ptr, &io_itr, 1, ""); ++ io = LLVMBuildGEP2(builder, variant->vertex_header_type, io_ptr, &io_itr, 1, ""); + #if DEBUG_STORE + lp_build_printf(gallivm, " --- io %d = %p, loop counter %d\n", + io_itr, io, lp_loop.counter); +@@ -2259,7 +2255,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + } + lp_build_endif(&if_ctx); + +- true_index_array = LLVMBuildLoad(builder, index_store, ""); ++ true_index_array = LLVMBuildLoad2(builder, blduivec.vec_type, index_store, ""); + + for (j = 0; j < key->nr_vertex_elements; ++j) { + struct pipe_vertex_element *velem = &key->vertex_element[j]; +@@ -2329,7 +2325,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + + /* do cliptest */ + if (enable_cliptest) { +- LLVMValueRef temp = LLVMBuildLoad(builder, clipmask_bool_ptr, ""); ++ LLVMValueRef temp = LLVMBuildLoad2(builder, blduivec.vec_type, clipmask_bool_ptr, ""); + /* allocate clipmask, assign it integer type */ + clipmask = generate_clipmask(llvm, + gallivm, +@@ -2788,13 +2784,13 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, + + assert(variant->vertex_header_ptr_type); + ++ LLVMTypeRef prim_id_type = LLVMVectorType(int32_type, vector_length); + arg_types[0] = get_gs_context_ptr_type(variant); /* context */ + arg_types[1] = variant->input_array_type; /* input */ + arg_types[2] = LLVMPointerType(variant->vertex_header_ptr_type, 0); /* vertex_header */ + arg_types[3] = int32_type; /* num_prims */ + arg_types[4] = int32_type; /* instance_id */ +- arg_types[5] = LLVMPointerType( +- LLVMVectorType(int32_type, vector_length), 0); /* prim_id_ptr */ ++ arg_types[5] = LLVMPointerType(prim_id_type, 0); /* prim_id_ptr */ + arg_types[6] = int32_type; + arg_types[7] = int32_type; + +@@ -2874,7 +2870,7 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, + lp_build_mask_begin(&mask, gallivm, gs_type, mask_val); + + if (gs_info->uses_primid) { +- system_values.prim_id = LLVMBuildLoad(builder, prim_id_ptr, "prim_id"); ++ system_values.prim_id = LLVMBuildLoad2(builder, prim_id_type, prim_id_ptr, "prim_id"); + } + + if (gallivm_debug & (GALLIVM_DEBUG_TGSI | GALLIVM_DEBUG_IR)) { +@@ -3459,15 +3455,15 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, + args[4] = patch_vertices_in; + args[5] = view_index; + args[6] = loop_state[0].counter; +- LLVMValueRef coro_entry = LLVMBuildGEP(builder, coro_hdls, &loop_state[0].counter, 1, ""); +- LLVMValueRef coro_hdl = LLVMBuildLoad(builder, coro_entry, "coro_hdl"); ++ LLVMValueRef coro_entry = LLVMBuildGEP2(builder, hdl_ptr_type, coro_hdls, &loop_state[0].counter, 1, ""); ++ LLVMValueRef coro_hdl = LLVMBuildLoad2(builder, hdl_ptr_type, coro_entry, "coro_hdl"); + + struct lp_build_if_state ifstate; + LLVMValueRef cmp = LLVMBuildICmp(builder, LLVMIntEQ, loop_state[1].counter, + lp_build_const_int32(gallivm, 0), ""); + /* first time here - call the coroutine function entry point */ + lp_build_if(&ifstate, gallivm, cmp); +- LLVMValueRef coro_ret = LLVMBuildCall(builder, variant_coro, args, 7, ""); ++ LLVMValueRef coro_ret = LLVMBuildCall2(builder, coro_func_type, variant_coro, args, 7, ""); + LLVMBuildStore(builder, coro_ret, coro_entry); + lp_build_else(&ifstate); + /* subsequent calls for this invocation - check if done. */ +@@ -3762,7 +3758,8 @@ create_tes_jit_types(struct draw_tes_llvm_variant *var) + "draw_tes_jit_context"); + var->context_ptr_type = LLVMPointerType(context_type, 0); + +- var->input_array_type = create_tes_jit_input_type(gallivm); ++ var->input_array_deref_type = create_tes_jit_input_deref_type(gallivm); ++ var->input_array_type = LLVMPointerType(var->input_array_deref_type, 0); /* num vertices per prim */ + } + + static LLVMTypeRef +@@ -3841,8 +3838,8 @@ draw_tes_llvm_fetch_vertex_input(const struct lp_build_tes_iface *tes_iface, + indices[1] = attr_chan_index; + indices[2] = swiz_chan_index; + +- channel_vec = LLVMBuildGEP(builder, tes->input, indices, 3, ""); +- channel_vec = LLVMBuildLoad(builder, channel_vec, ""); ++ channel_vec = LLVMBuildGEP2(builder, tes->variant->input_array_deref_type, tes->input, indices, 3, ""); ++ channel_vec = LLVMBuildLoad2(builder, LLVMFloatTypeInContext(gallivm->context), channel_vec, ""); + + res = LLVMBuildInsertElement(builder, res, channel_vec, idx, ""); + } +@@ -3851,8 +3848,8 @@ draw_tes_llvm_fetch_vertex_input(const struct lp_build_tes_iface *tes_iface, + indices[1] = attrib_index; + indices[2] = swizzle_index; + +- res = LLVMBuildGEP(builder, tes->input, indices, 3, ""); +- res = LLVMBuildLoad(builder, res, ""); ++ res = LLVMBuildGEP2(builder, tes->variant->input_array_deref_type, tes->input, indices, 3, ""); ++ res = LLVMBuildLoad2(builder, LLVMFloatTypeInContext(gallivm->context), res, ""); + res = lp_build_broadcast_scalar(bld, res); + } + return res; +@@ -3891,8 +3888,8 @@ draw_tes_llvm_fetch_patch_input(const struct lp_build_tes_iface *tes_iface, + indices[1] = attr_chan_index; + indices[2] = swizzle_index; + +- channel_vec = LLVMBuildGEP(builder, tes->input, indices, 3, ""); +- channel_vec = LLVMBuildLoad(builder, channel_vec, ""); ++ channel_vec = LLVMBuildGEP2(builder, tes->variant->input_array_deref_type, tes->input, indices, 3, ""); ++ channel_vec = LLVMBuildLoad2(builder, LLVMFloatTypeInContext(gallivm->context), channel_vec, ""); + + res = LLVMBuildInsertElement(builder, res, channel_vec, idx, ""); + } +@@ -3901,8 +3898,8 @@ draw_tes_llvm_fetch_patch_input(const struct lp_build_tes_iface *tes_iface, + indices[1] = attrib_index; + indices[2] = swizzle_index; + +- res = LLVMBuildGEP(builder, tes->input, indices, 3, ""); +- res = LLVMBuildLoad(builder, res, ""); ++ res = LLVMBuildGEP2(builder, tes->variant->input_array_deref_type, tes->input, indices, 3, ""); ++ res = LLVMBuildLoad2(builder, LLVMFloatTypeInContext(gallivm->context), res, ""); + res = lp_build_broadcast_scalar(bld, res); + } + return res; +@@ -3946,6 +3943,9 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + + snprintf(func_name, sizeof(func_name), "draw_llvm_tes_variant"); + ++ LLVMTypeRef tess_outer_deref_type = LLVMArrayType(flt_type, 4); ++ LLVMTypeRef tess_inner_deref_type = LLVMArrayType(flt_type, 2); ++ + arg_types[0] = get_tes_context_ptr_type(variant); /* context */ + arg_types[1] = variant->input_array_type; /* input */ + arg_types[2] = variant->vertex_header_ptr_type; +@@ -3953,8 +3953,8 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + arg_types[4] = int32_type; + arg_types[5] = LLVMPointerType(flt_type, 0); + arg_types[6] = LLVMPointerType(flt_type, 0); +- arg_types[7] = LLVMPointerType(LLVMArrayType(flt_type, 4), 0); +- arg_types[8] = LLVMPointerType(LLVMArrayType(flt_type, 2), 0); ++ arg_types[7] = LLVMPointerType(tess_outer_deref_type, 0); ++ arg_types[8] = LLVMPointerType(tess_inner_deref_type, 0); + arg_types[9] = int32_type; + arg_types[10] = int32_type; + +@@ -4025,8 +4025,8 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + variant->key.nr_images); + step = lp_build_const_int32(gallivm, vector_length); + +- system_values.tess_outer = LLVMBuildLoad(builder, tess_outer, ""); +- system_values.tess_inner = LLVMBuildLoad(builder, tess_inner, ""); ++ system_values.tess_outer = LLVMBuildLoad2(builder, tess_outer_deref_type, tess_outer, ""); ++ system_values.tess_inner = LLVMBuildLoad2(builder, tess_inner_deref_type, tess_inner, ""); + + system_values.prim_id = lp_build_broadcast_scalar(&bldvec, prim_id); + +@@ -4046,7 +4046,7 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + { + LLVMValueRef io; + +- io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); ++ io = LLVMBuildGEP2(builder, variant->vertex_header_type, io_ptr, &lp_loop.counter, 1, ""); + mask_val = generate_tes_mask_value(variant, tes_type, num_tess_coord, lp_loop.counter); + lp_build_mask_begin(&mask, gallivm, tes_type, mask_val); + +@@ -4122,7 +4122,6 @@ draw_tes_llvm_create_variant(struct draw_llvm *llvm, + { + struct draw_tes_llvm_variant *variant; + struct llvm_tess_eval_shader *shader = llvm_tess_eval_shader(llvm->draw->tes.tess_eval_shader); +- LLVMTypeRef vertex_header; + char module_name[64]; + unsigned char ir_sha1_cache_key[20]; + struct lp_cached_code cached = { 0 }; +@@ -4157,9 +4156,8 @@ draw_tes_llvm_create_variant(struct draw_llvm *llvm, + + create_tes_jit_types(variant); + +- vertex_header = create_jit_vertex_header(variant->gallivm, num_outputs); +- +- variant->vertex_header_ptr_type = LLVMPointerType(vertex_header, 0); ++ variant->vertex_header_type = create_jit_vertex_header(variant->gallivm, num_outputs); ++ variant->vertex_header_ptr_type = LLVMPointerType(variant->vertex_header_type, 0); + + if (gallivm_debug & (GALLIVM_DEBUG_TGSI | GALLIVM_DEBUG_IR)) { + nir_print_shader(llvm->draw->tes.tess_eval_shader->state.ir.nir, stderr); +diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h +index 7506a87161ee8..4e118bef091b9 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.h ++++ b/src/gallium/auxiliary/draw/draw_llvm.h +@@ -681,6 +681,10 @@ struct draw_llvm_variant + LLVMTypeRef vb_ptr_type; + LLVMTypeRef vertex_header_ptr_type; + ++ LLVMTypeRef buffer_type; ++ LLVMTypeRef vb_type; ++ LLVMTypeRef vertex_header_type; ++ + LLVMValueRef function; + draw_jit_vert_func jit_func; + +@@ -755,6 +759,9 @@ struct draw_tes_llvm_variant + LLVMTypeRef input_array_type; + LLVMTypeRef patch_input_array_type; + ++ LLVMTypeRef input_array_deref_type; ++ LLVMTypeRef vertex_header_type; ++ + LLVMValueRef context_ptr; + LLVMValueRef io_ptr; + LLVMValueRef num_prims; +-- +GitLab + + +From f90d71f51831cc04e09466553afa56f5f62aed5d Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:26:25 +0300 +Subject: [PATCH 03/22] gallium/llvmpipe: use LLVM opaque pointers in + lp_bld_interp.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/drivers/llvmpipe/lp_bld_interp.c | 60 +++++++++++--------- + src/gallium/drivers/llvmpipe/lp_bld_interp.h | 1 + + 2 files changed, 34 insertions(+), 27 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.c b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +index a93879c9382f9..e0a57116c5d9d 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.c ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +@@ -191,6 +191,20 @@ calc_centroid_offsets(struct lp_build_interp_soa_context *bld, + *centroid_y = lp_build_select(coeff_bld, s_mask_and, pix_center_offset, centroid_y_offset); + } + ++/* Note: this assumes the pointer to elem_type is in address space 0 */ ++static LLVMValueRef ++load_casted(LLVMBuilderRef builder, LLVMTypeRef elem_type, LLVMValueRef ptr, const char *name) { ++ ptr = LLVMBuildBitCast(builder, ptr, LLVMPointerType(elem_type, 0), name); ++ return LLVMBuildLoad2(builder, elem_type, ptr, name); ++} ++ ++static LLVMValueRef ++indexed_load(LLVMBuilderRef builder, LLVMTypeRef gep_type, ++ LLVMTypeRef elem_type, LLVMValueRef ptr, LLVMValueRef index, const char *name) { ++ ptr = LLVMBuildGEP2(builder, gep_type, ptr, &index, 1, name); ++ return load_casted(builder, elem_type, ptr, name); ++} ++ + /* Much easier, and significantly less instructions in the per-stamp + * part (less than half) but overall more instructions so a loss if + * most quads are active. Might be a win though with larger vectors. +@@ -224,36 +238,27 @@ coeffs_init_simple(struct lp_build_interp_soa_context *bld, + const unsigned interp = bld->interp[attrib]; + LLVMValueRef index = lp_build_const_int32(gallivm, + attrib * TGSI_NUM_CHANNELS); +- LLVMValueRef ptr; + LLVMValueRef dadxaos = setup_bld->zero; + LLVMValueRef dadyaos = setup_bld->zero; + LLVMValueRef a0aos = setup_bld->zero; + ++ /* See: lp_state_fs.c / generate_fragment() / fs_elem_type */ ++ LLVMTypeRef fs_elem_type = LLVMFloatTypeInContext(gallivm->context); ++ + switch (interp) { + case LP_INTERP_PERSPECTIVE: + FALLTHROUGH; + + case LP_INTERP_LINEAR: +- ptr = LLVMBuildGEP(builder, dadx_ptr, &index, 1, ""); +- ptr = LLVMBuildBitCast(builder, ptr, +- LLVMPointerType(setup_bld->vec_type, 0), ""); +- dadxaos = LLVMBuildLoad(builder, ptr, ""); +- +- ptr = LLVMBuildGEP(builder, dady_ptr, &index, 1, ""); +- ptr = LLVMBuildBitCast(builder, ptr, +- LLVMPointerType(setup_bld->vec_type, 0), ""); +- dadyaos = LLVMBuildLoad(builder, ptr, ""); +- ++ dadxaos = indexed_load(builder, fs_elem_type, setup_bld->vec_type, dadx_ptr, index, ""); ++ dadyaos = indexed_load(builder, fs_elem_type, setup_bld->vec_type, dady_ptr, index, ""); + attrib_name(dadxaos, attrib, 0, ".dadxaos"); + attrib_name(dadyaos, attrib, 0, ".dadyaos"); + FALLTHROUGH; + + case LP_INTERP_CONSTANT: + case LP_INTERP_FACING: +- ptr = LLVMBuildGEP(builder, a0_ptr, &index, 1, ""); +- ptr = LLVMBuildBitCast(builder, ptr, +- LLVMPointerType(setup_bld->vec_type, 0), ""); +- a0aos = LLVMBuildLoad(builder, ptr, ""); ++ a0aos = indexed_load(builder, fs_elem_type, setup_bld->vec_type, a0_ptr, index, ""); + attrib_name(a0aos, attrib, 0, ".a0aos"); + break; + +@@ -297,10 +302,10 @@ attribs_update_simple(struct lp_build_interp_soa_context *bld, + /* could do this with code-generated passed in pixel offsets too */ + + assert(loop_iter); +- ptr = LLVMBuildGEP(builder, bld->xoffset_store, &loop_iter, 1, ""); +- pixoffx = LLVMBuildLoad(builder, ptr, ""); +- ptr = LLVMBuildGEP(builder, bld->yoffset_store, &loop_iter, 1, ""); +- pixoffy = LLVMBuildLoad(builder, ptr, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->xoffset_store, &loop_iter, 1, ""); ++ pixoffx = LLVMBuildLoad2(builder, bld->store_elem_type, ptr, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->yoffset_store, &loop_iter, 1, ""); ++ pixoffy = LLVMBuildLoad2(builder, bld->store_elem_type, ptr, ""); + + pixoffx = LLVMBuildFAdd(builder, pixoffx, + lp_build_broadcast_scalar(coeff_bld, bld->x), ""); +@@ -529,10 +534,10 @@ lp_build_interp_soa(struct lp_build_interp_soa_context *bld, + /* could do this with code-generated passed in pixel offsets too */ + + assert(loop_iter); +- ptr = LLVMBuildGEP(builder, bld->xoffset_store, &loop_iter, 1, ""); +- pixoffx = LLVMBuildLoad(builder, ptr, ""); +- ptr = LLVMBuildGEP(builder, bld->yoffset_store, &loop_iter, 1, ""); +- pixoffy = LLVMBuildLoad(builder, ptr, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->xoffset_store, &loop_iter, 1, ""); ++ pixoffx = LLVMBuildLoad2(builder, bld->store_elem_type, ptr, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->yoffset_store, &loop_iter, 1, ""); ++ pixoffy = LLVMBuildLoad2(builder, bld->store_elem_type, ptr, ""); + + pixoffx = LLVMBuildFAdd(builder, pixoffx, + lp_build_broadcast_scalar(coeff_bld, bld->x), ""); +@@ -769,20 +774,21 @@ lp_build_interp_soa_init(struct lp_build_interp_soa_context *bld, + LLVMValueRef pixoffx, pixoffy, index; + LLVMValueRef ptr; + ++ bld->store_elem_type = lp_build_vec_type(gallivm, type); + bld->xoffset_store = lp_build_array_alloca(gallivm, +- lp_build_vec_type(gallivm, type), ++ bld->store_elem_type, + lp_build_const_int32(gallivm, num_loops), + ""); + bld->yoffset_store = lp_build_array_alloca(gallivm, +- lp_build_vec_type(gallivm, type), ++ bld->store_elem_type, + lp_build_const_int32(gallivm, num_loops), + ""); + for (i = 0; i < num_loops; i++) { + index = lp_build_const_int32(gallivm, i); + calc_offsets(&bld->coeff_bld, i*type.length/4, &pixoffx, &pixoffy); +- ptr = LLVMBuildGEP(builder, bld->xoffset_store, &index, 1, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->xoffset_store, &index, 1, ""); + LLVMBuildStore(builder, pixoffx, ptr); +- ptr = LLVMBuildGEP(builder, bld->yoffset_store, &index, 1, ""); ++ ptr = LLVMBuildGEP2(builder, bld->store_elem_type, bld->yoffset_store, &index, 1, ""); + LLVMBuildStore(builder, pixoffy, ptr); + } + } +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.h b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +index f77d2192258a6..6525ffb0bf038 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.h ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +@@ -107,6 +107,7 @@ struct lp_build_interp_soa_context + + LLVMValueRef xoffset_store; + LLVMValueRef yoffset_store; ++ LLVMTypeRef store_elem_type; + + /* + * Convenience pointers. Callers may access this one. +-- +GitLab + + +From d53fe793c38344382a71a89e3790249a31e3d4f3 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:28:22 +0300 +Subject: [PATCH 04/22] gallium/llvmpipe: use LLVM opaque pointers in + lp_bld_depth.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/drivers/llvmpipe/lp_bld_depth.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_depth.c b/src/gallium/drivers/llvmpipe/lp_bld_depth.c +index dc559bc3ffb10..cb4a727fa3cf8 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_depth.c ++++ b/src/gallium/drivers/llvmpipe/lp_bld_depth.c +@@ -510,7 +510,7 @@ lp_build_occlusion_count(struct gallivm_state *gallivm, + count = LLVMBuildZExt(builder, count, LLVMIntTypeInContext(context, 64), ""); + } + } +- newcount = LLVMBuildLoad(builder, counter, "origcount"); ++ newcount = LLVMBuildLoad2(builder, LLVMTypeOf(count), counter, "origcount"); + newcount = LLVMBuildAdd(builder, newcount, count, "newcount"); + LLVMBuildStore(builder, newcount, counter); + } +@@ -551,7 +551,8 @@ lp_build_depth_stencil_load_swizzled(struct gallivm_state *gallivm, + struct lp_type zs_load_type = zs_type; + + zs_load_type.length = zs_load_type.length / 2; +- load_ptr_type = LLVMPointerType(lp_build_vec_type(gallivm, zs_load_type), 0); ++ LLVMTypeRef zs_dst_type = lp_build_vec_type(gallivm, zs_load_type); ++ load_ptr_type = LLVMPointerType(zs_dst_type, 0); + + if (z_src_type.length == 4) { + unsigned i; +@@ -590,14 +591,14 @@ lp_build_depth_stencil_load_swizzled(struct gallivm_state *gallivm, + /* Load current z/stencil values from z/stencil buffer */ + zs_dst_ptr = LLVMBuildGEP(builder, depth_ptr, &depth_offset1, 1, ""); + zs_dst_ptr = LLVMBuildBitCast(builder, zs_dst_ptr, load_ptr_type, ""); +- zs_dst1 = LLVMBuildLoad(builder, zs_dst_ptr, ""); ++ zs_dst1 = LLVMBuildLoad2(builder, zs_dst_type, zs_dst_ptr, ""); + if (is_1d) { + zs_dst2 = lp_build_undef(gallivm, zs_load_type); + } + else { + zs_dst_ptr = LLVMBuildGEP(builder, depth_ptr, &depth_offset2, 1, ""); + zs_dst_ptr = LLVMBuildBitCast(builder, zs_dst_ptr, load_ptr_type, ""); +- zs_dst2 = LLVMBuildLoad(builder, zs_dst_ptr, ""); ++ zs_dst2 = LLVMBuildLoad2(builder, zs_dst_type, zs_dst_ptr, ""); + } + + *z_fb = LLVMBuildShuffleVector(builder, zs_dst1, zs_dst2, +-- +GitLab + + +From 1e1ebbe6df456a4677d64a535bbb553ba4f702ea Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:31:29 +0300 +Subject: [PATCH 05/22] gallivm: use LLVM opaque pointers in lp_bld_arit.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_arit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c +index 9cff0162b2334..2061902a215a3 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c +@@ -3757,7 +3757,7 @@ lp_build_fpstate_set_denorms_zero(struct gallivm_state *gallivm, + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef mxcsr_ptr = lp_build_fpstate_get(gallivm); + LLVMValueRef mxcsr = +- LLVMBuildLoad(builder, mxcsr_ptr, "mxcsr"); ++ LLVMBuildLoad2(builder, LLVMInt32TypeInContext(gallivm->context), mxcsr_ptr, "mxcsr"); + + if (util_get_cpu_caps()->has_daz) { + /* Enable denormals are zero mode */ +-- +GitLab + + +From 70e9db951d5134546d0115cf773593ec33d5b5d2 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:32:25 +0300 +Subject: [PATCH 06/22] gallivm: use LLVM opaque pointers in lp_bld_assert.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_assert.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_assert.c b/src/gallium/auxiliary/gallivm/lp_bld_assert.c +index 02755765c0eac..f50da3c127e61 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_assert.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_assert.c +@@ -75,9 +75,11 @@ lp_build_assert(struct gallivm_state *gallivm, + arg_types[0] = LLVMInt32TypeInContext(context); + arg_types[1] = LLVMPointerType(LLVMInt8TypeInContext(context), 0); + +- function = lp_build_const_func_pointer(gallivm, ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, 2, 0); ++ ++ function = lp_build_const_func_pointer_from_type(gallivm, + func_to_pointer((func_pointer)lp_assert), +- ret_type, arg_types, ARRAY_SIZE(arg_types), ++ function_type, + "assert"); + + /* build function call param list */ +@@ -87,6 +89,5 @@ lp_build_assert(struct gallivm_state *gallivm, + /* check arg types */ + assert(LLVMTypeOf(args[0]) == arg_types[0]); + assert(LLVMTypeOf(args[1]) == arg_types[1]); +- +- LLVMBuildCall(builder, function, args, ARRAY_SIZE(args), ""); ++ LLVMBuildCall2(builder, function_type, function, args, ARRAY_SIZE(args), ""); + } +-- +GitLab + + +From 6867b184cac892e3f6aaf3fab3e0453bd784aaf7 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:41:12 +0300 +Subject: [PATCH 07/22] gallivm: use LLVM opaque pointers in + lp_bld_format_aos.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Also extract lp_build_const_func_pointer_from_type() in lp_bld_const.h +taking explicit function type. + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_const.c | 25 ++++++----- + src/gallium/auxiliary/gallivm/lp_bld_const.h | 6 +++ + .../auxiliary/gallivm/lp_bld_format_aos.c | 45 +++++++++---------- + 3 files changed, 40 insertions(+), 36 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_const.c b/src/gallium/auxiliary/gallivm/lp_bld_const.c +index 4f4bddf44b813..7d9f3176ec1bd 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_const.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_const.c +@@ -455,6 +455,17 @@ lp_build_const_string(struct gallivm_state *gallivm, + return string; + } + ++LLVMValueRef ++lp_build_const_func_pointer_from_type(struct gallivm_state *gallivm, ++ const void *ptr, ++ LLVMTypeRef function_type, ++ const char *name) ++{ ++ return LLVMBuildBitCast(gallivm->builder, ++ lp_build_const_int_pointer(gallivm, ptr), ++ LLVMPointerType(function_type, 0), ++ name); ++} + + /** + * Build a callable function pointer. +@@ -470,16 +481,6 @@ lp_build_const_func_pointer(struct gallivm_state *gallivm, + unsigned num_args, + const char *name) + { +- LLVMTypeRef function_type; +- LLVMValueRef function; +- +- function_type = LLVMFunctionType(ret_type, arg_types, num_args, 0); +- +- function = lp_build_const_int_pointer(gallivm, ptr); +- +- function = LLVMBuildBitCast(gallivm->builder, function, +- LLVMPointerType(function_type, 0), +- name); +- +- return function; ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, num_args, 0); ++ return lp_build_const_func_pointer_from_type(gallivm, ptr, function_type, name); + } +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_const.h b/src/gallium/auxiliary/gallivm/lp_bld_const.h +index 385b5b02d038e..d4098765f5e7a 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_const.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_const.h +@@ -176,4 +176,10 @@ lp_build_const_func_pointer(struct gallivm_state *gallivm, + const char *name); + + ++LLVMValueRef ++lp_build_const_func_pointer_from_type(struct gallivm_state *gallivm, ++ const void *ptr, ++ LLVMTypeRef function_type, ++ const char *name); ++ + #endif /* !LP_BLD_CONST_H */ +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c +index 74fe1672b27f8..86cca0bb0e8f1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c +@@ -820,6 +820,7 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + * Declare and bind format_desc->fetch_rgba_8unorm(). + */ + ++ LLVMTypeRef function_type; + { + /* + * Function to call looks like: +@@ -827,7 +828,6 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + */ + LLVMTypeRef ret_type; + LLVMTypeRef arg_types[4]; +- LLVMTypeRef function_type; + + ret_type = LLVMVoidTypeInContext(gallivm->context); + arg_types[0] = pi8t; +@@ -836,19 +836,16 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + arg_types[3] = i32t; + function_type = LLVMFunctionType(ret_type, arg_types, + ARRAY_SIZE(arg_types), 0); +- +- if (gallivm->cache) +- gallivm->cache->dont_cache = true; +- /* make const pointer for the C fetch_rgba_8unorm function */ +- function = lp_build_const_int_pointer(gallivm, +- func_to_pointer((func_pointer) unpack->fetch_rgba_8unorm)); +- +- /* cast the callee pointer to the function's type */ +- function = LLVMBuildBitCast(builder, function, +- LLVMPointerType(function_type, 0), +- "cast callee"); + } + ++ if (gallivm->cache) ++ gallivm->cache->dont_cache = true; ++ /* make const pointer for the C fetch_rgba_8unorm function */ ++ function = lp_build_const_int_pointer(gallivm, ++ func_to_pointer((func_pointer) unpack->fetch_rgba_8unorm)); ++ /* cast the callee pointer to the function's type */ ++ function = LLVMBuildBitCast(builder, function, LLVMPointerType(function_type, 0), "cast callee"); ++ + tmp_ptr = lp_build_alloca(gallivm, i32t, ""); + + res = LLVMGetUndef(LLVMVectorType(i32t, num_pixels)); +@@ -875,9 +872,9 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + args[3] = LLVMBuildExtractElement(builder, j, index, ""); + } + +- LLVMBuildCall(builder, function, args, ARRAY_SIZE(args), ""); ++ LLVMBuildCall2(builder, function_type, function, args, ARRAY_SIZE(args), ""); + +- tmp = LLVMBuildLoad(builder, tmp_ptr, ""); ++ tmp = LLVMBuildLoad2(builder, i32t, tmp_ptr, ""); + + if (num_pixels == 1) { + res = tmp; +@@ -929,6 +926,7 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + * Declare and bind unpack->fetch_rgba_float(). + */ + ++ LLVMTypeRef function_type = NULL; + { + /* + * Function to call looks like: +@@ -942,15 +940,14 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + arg_types[1] = pi8t; + arg_types[2] = i32t; + arg_types[3] = i32t; +- +- if (gallivm->cache) +- gallivm->cache->dont_cache = true; +- function = lp_build_const_func_pointer(gallivm, +- func_to_pointer((func_pointer) fetch_rgba), +- ret_type, +- arg_types, ARRAY_SIZE(arg_types), +- format_desc->short_name); ++ function_type = LLVMFunctionType(ret_type, arg_types, ARRAY_SIZE(arg_types), 0); + } ++ if (gallivm->cache) ++ gallivm->cache->dont_cache = true; ++ function = lp_build_const_func_pointer_from_type(gallivm, ++ func_to_pointer((func_pointer) fetch_rgba), ++ function_type, ++ format_desc->short_name); + + tmp_ptr = lp_build_alloca(gallivm, f32x4t, ""); + +@@ -976,9 +973,9 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, + args[3] = LLVMBuildExtractElement(builder, j, index, ""); + } + +- LLVMBuildCall(builder, function, args, ARRAY_SIZE(args), ""); ++ LLVMBuildCall2(builder, function_type, function, args, ARRAY_SIZE(args), ""); + +- tmps[k] = LLVMBuildLoad(builder, tmp_ptr, ""); ++ tmps[k] = LLVMBuildLoad2(builder, f32x4t, tmp_ptr, ""); + } + + lp_build_conv(gallivm, +-- +GitLab + + +From f1fc0bb567e5fdc92abd121a43fe2a632150c91c Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:44:19 +0300 +Subject: [PATCH 08/22] gallivm: use LLVM opaque pointers in lp_bld_conv.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_conv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_conv.c b/src/gallium/auxiliary/gallivm/lp_bld_conv.c +index 1073ff4fa66c3..69494ed22aaed 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_conv.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_conv.c +@@ -229,7 +229,7 @@ lp_build_float_to_half(struct gallivm_state *gallivm, + */ + LLVMValueRef f16 = lp_build_intrinsic_unary(builder, "llvm.convert.to.fp16", i16t, f32); + #else +- LLVMValueRef f16 = LLVMBuildCall(builder, func, &f32, 1, ""); ++ LLVMValueRef f16 = LLVMBuildCall2(builder, func_type, func, &f32, 1, ""); + #endif + ref_result = LLVMBuildInsertElement(builder, ref_result, f16, index, ""); + } +-- +GitLab + + +From 2a6e9d13fb9e02e88cb9bfc3a89864f72156a91e Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:51:30 +0300 +Subject: [PATCH 09/22] gallivm: use LLVM opaque pointers in lp_bld_coro.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_coro.c | 15 +++++++++++---- + src/gallium/auxiliary/gallivm/lp_bld_init.h | 3 +++ + 2 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.c b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +index d3d5e6dc9693c..a423f60d939a6 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_coro.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +@@ -169,8 +169,10 @@ void lp_build_coro_declare_malloc_hooks(struct gallivm_state *gallivm) + LLVMTypeRef int32_type = LLVMInt32TypeInContext(gallivm->context); + LLVMTypeRef mem_ptr_type = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); + LLVMTypeRef malloc_type = LLVMFunctionType(mem_ptr_type, &int32_type, 1, 0); ++ gallivm->coro_malloc_hook_type = malloc_type; + gallivm->coro_malloc_hook = LLVMAddFunction(gallivm->module, "coro_malloc", malloc_type); + LLVMTypeRef free_type = LLVMFunctionType(LLVMVoidTypeInContext(gallivm->context), &mem_ptr_type, 1, 0); ++ gallivm->coro_free_hook_type = free_type; + gallivm->coro_free_hook = LLVMAddFunction(gallivm->module, "coro_free", free_type); + } + +@@ -184,7 +186,10 @@ LLVMValueRef lp_build_coro_begin_alloc_mem(struct gallivm_state *gallivm, LLVMVa + LLVMValueRef alloc_mem; + + assert(gallivm->coro_malloc_hook); +- alloc_mem = LLVMBuildCall(gallivm->builder, gallivm->coro_malloc_hook, &coro_size, 1, ""); ++ LLVMTypeRef malloc_type = ++ LLVMFunctionType(mem_ptr_type, ++ (LLVMTypeRef[]){LLVMInt32TypeInContext(gallivm->context)}, 1, 0); ++ alloc_mem = LLVMBuildCall2(gallivm->builder, malloc_type, gallivm->coro_malloc_hook, &coro_size, 1, ""); + lp_build_endif(&if_state_coro); + + LLVMValueRef phi = LLVMBuildPhi(gallivm->builder, mem_ptr_type, ""); +@@ -212,7 +217,8 @@ LLVMValueRef lp_build_coro_alloc_mem_array(struct gallivm_state *gallivm, + LLVMValueRef alloc_mem; + LLVMValueRef alloc_size = LLVMBuildMul(gallivm->builder, coro_num_hdls, coro_size, ""); + assert(gallivm->coro_malloc_hook); +- alloc_mem = LLVMBuildCall(gallivm->builder, gallivm->coro_malloc_hook, &alloc_size, 1, ""); ++ assert(gallivm->coro_malloc_hook_type); ++ alloc_mem = LLVMBuildCall2(gallivm->builder, gallivm->coro_malloc_hook_type, gallivm->coro_malloc_hook, &alloc_size, 1, ""); + LLVMBuildStore(gallivm->builder, alloc_mem, coro_hdl_ptr); + lp_build_endif(&if_state_coro); + +@@ -223,8 +229,9 @@ void lp_build_coro_free_mem(struct gallivm_state *gallivm, LLVMValueRef coro_id, + { + LLVMValueRef alloc_mem = lp_build_coro_free(gallivm, coro_id, coro_hdl); + +- assert(gallivm->coro_malloc_hook); +- alloc_mem = LLVMBuildCall(gallivm->builder, gallivm->coro_free_hook, &alloc_mem, 1, ""); ++ assert(gallivm->coro_free_hook); ++ assert(gallivm->coro_free_hook_type); ++ alloc_mem = LLVMBuildCall2(gallivm->builder, gallivm->coro_free_hook_type, gallivm->coro_free_hook, &alloc_mem, 1, ""); + } + + void lp_build_coro_suspend_switch(struct gallivm_state *gallivm, const struct lp_build_coro_suspend_info *sus_info, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h +index 7c516b2b266d6..7eaaa31745b8f 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h +@@ -57,6 +57,9 @@ struct gallivm_state + LLVMValueRef coro_malloc_hook; + LLVMValueRef coro_free_hook; + LLVMValueRef debug_printf_hook; ++ ++ LLVMTypeRef coro_malloc_hook_type; ++ LLVMTypeRef coro_free_hook_type; + }; + + +-- +GitLab + + +From 1e0ddda79679955f2a3ad9487ce4eab84b0ec7b1 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:53:10 +0300 +Subject: [PATCH 10/22] gallivm: use LLVM opaque pointers in lp_bld_printf.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_printf.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c +index 4db2c09423114..5e08a0c2fe6dc 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c +@@ -63,11 +63,11 @@ lp_build_print_args(struct gallivm_state* gallivm, + args[i] = LLVMBuildFPExt(builder, args[i], LLVMDoubleTypeInContext(context), ""); + } + ++ LLVMTypeRef printf_type = LLVMFunctionType(LLVMInt32TypeInContext(context), NULL, 0, 1); + if (!gallivm->debug_printf_hook) { +- LLVMTypeRef printf_type = LLVMFunctionType(LLVMInt32TypeInContext(context), NULL, 0, 1); + gallivm->debug_printf_hook = LLVMAddFunction(gallivm->module, "debug_printf", printf_type); + } +- return LLVMBuildCall(builder, gallivm->debug_printf_hook, args, argcount, ""); ++ return LLVMBuildCall2(builder, printf_type, gallivm->debug_printf_hook, args, argcount, ""); + } + + +-- +GitLab + + +From 3143f871ac948cda9608579f08ca059e063882fa Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:54:57 +0300 +Subject: [PATCH 11/22] gallivm: use LLVM opaque pointers in lp_bld_flow.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_flow.c | 19 +++++++++++-------- + src/gallium/auxiliary/gallivm/lp_bld_flow.h | 7 +++++-- + 2 files changed, 16 insertions(+), 10 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_flow.c b/src/gallium/auxiliary/gallivm/lp_bld_flow.c +index d5d903f66f237..8858aac9cb4ff 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_flow.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_flow.c +@@ -168,8 +168,9 @@ lp_build_mask_begin(struct lp_build_mask_context *mask, + memset(mask, 0, sizeof *mask); + + mask->reg_type = LLVMIntTypeInContext(gallivm->context, type.width * type.length); ++ mask->var_type = lp_build_int_vec_type(gallivm, type); + mask->var = lp_build_alloca(gallivm, +- lp_build_int_vec_type(gallivm, type), ++ mask->var_type, + "execution_mask"); + + LLVMBuildStore(gallivm->builder, value, mask->var); +@@ -181,7 +182,7 @@ lp_build_mask_begin(struct lp_build_mask_context *mask, + LLVMValueRef + lp_build_mask_value(struct lp_build_mask_context *mask) + { +- return LLVMBuildLoad(mask->skip.gallivm->builder, mask->var, ""); ++ return LLVMBuildLoad2(mask->skip.gallivm->builder, mask->var_type, mask->var, ""); + } + + +@@ -233,7 +234,8 @@ lp_build_loop_begin(struct lp_build_loop_state *state, + + state->block = lp_build_insert_new_block(gallivm, "loop_begin"); + +- state->counter_var = lp_build_alloca(gallivm, LLVMTypeOf(start), "loop_counter"); ++ state->counter_type = LLVMTypeOf(start); ++ state->counter_var = lp_build_alloca(gallivm, state->counter_type, "loop_counter"); + state->gallivm = gallivm; + + LLVMBuildStore(builder, start, state->counter_var); +@@ -242,7 +244,7 @@ lp_build_loop_begin(struct lp_build_loop_state *state, + + LLVMPositionBuilderAtEnd(builder, state->block); + +- state->counter = LLVMBuildLoad(builder, state->counter_var, ""); ++ state->counter = LLVMBuildLoad2(builder, state->counter_type, state->counter_var, ""); + } + + +@@ -272,7 +274,7 @@ lp_build_loop_end_cond(struct lp_build_loop_state *state, + + LLVMPositionBuilderAtEnd(builder, after_block); + +- state->counter = LLVMBuildLoad(builder, state->counter_var, ""); ++ state->counter = LLVMBuildLoad2(builder, state->counter_type, state->counter_var, ""); + } + + void +@@ -287,7 +289,7 @@ void + lp_build_loop_force_reload_counter(struct lp_build_loop_state *state) + { + LLVMBuilderRef builder = state->gallivm->builder; +- state->counter = LLVMBuildLoad(builder, state->counter_var, ""); ++ state->counter = LLVMBuildLoad2(builder, state->counter_type, state->counter_var, ""); + } + + void +@@ -324,7 +326,8 @@ lp_build_for_loop_begin(struct lp_build_for_loop_state *state, + + state->begin = lp_build_insert_new_block(gallivm, "loop_begin"); + state->step = step; +- state->counter_var = lp_build_alloca(gallivm, LLVMTypeOf(start), "loop_counter"); ++ state->counter_type = LLVMTypeOf(start); ++ state->counter_var = lp_build_alloca(gallivm, state->counter_type, "loop_counter"); + state->gallivm = gallivm; + state->cond = cmp_op; + state->end = end; +@@ -333,7 +336,7 @@ lp_build_for_loop_begin(struct lp_build_for_loop_state *state, + LLVMBuildBr(builder, state->begin); + + LLVMPositionBuilderAtEnd(builder, state->begin); +- state->counter = LLVMBuildLoad(builder, state->counter_var, ""); ++ state->counter = LLVMBuildLoad2(builder, state->counter_type, state->counter_var, ""); + + state->body = lp_build_insert_new_block(gallivm, "loop_body"); + LLVMPositionBuilderAtEnd(builder, state->body); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_flow.h b/src/gallium/auxiliary/gallivm/lp_bld_flow.h +index c4ffa833e2add..c79502af5c4de 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_flow.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_flow.h +@@ -73,7 +73,8 @@ struct lp_build_mask_context + struct lp_build_skip_context skip; + + LLVMTypeRef reg_type; +- ++ LLVMTypeRef var_type; ++ /* 'var' is a pointer (alloca) pointing to 'var_type' */ + LLVMValueRef var; + }; + +@@ -107,7 +108,7 @@ lp_build_mask_end(struct lp_build_mask_context *mask); + + /** + * LLVM's IR doesn't represent for-loops directly. Furthermore it +- * it requires creating code blocks, branches, phi variables, so it ++ * requires creating code blocks, branches, phi variables, so it + * requires a fair amount of code. + * + * @sa http://www.llvm.org/docs/tutorial/LangImpl5.html#for +@@ -117,6 +118,7 @@ struct lp_build_loop_state + LLVMBasicBlockRef block; + LLVMValueRef counter_var; + LLVMValueRef counter; ++ LLVMTypeRef counter_type; + struct gallivm_state *gallivm; + }; + +@@ -154,6 +156,7 @@ struct lp_build_for_loop_state + LLVMBasicBlockRef exit; + LLVMValueRef counter_var; + LLVMValueRef counter; ++ LLVMTypeRef counter_type; + LLVMValueRef step; + LLVMIntPredicate cond; + LLVMValueRef end; +-- +GitLab + + +From 84ba15ac06285b5851e4363837ba57380c12d07a Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:56:33 +0300 +Subject: [PATCH 12/22] gallivm: use LLVM opaque pointers in lp_bld_intr.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_intr.c | 50 ++++++++++++--------- + src/gallium/auxiliary/gallivm/lp_bld_intr.h | 5 +++ + 2 files changed, 34 insertions(+), 21 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c b/src/gallium/auxiliary/gallivm/lp_bld_intr.c +index 2ce723c7e5ddc..99f5c77c4f03a 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c +@@ -103,19 +103,13 @@ lp_format_intrinsic(char *name, + + + LLVMValueRef +-lp_declare_intrinsic(LLVMModuleRef module, +- const char *name, +- LLVMTypeRef ret_type, +- LLVMTypeRef *arg_types, +- unsigned num_args) ++lp_declare_intrinsic_with_type(LLVMModuleRef module, ++ const char *name, ++ LLVMTypeRef function_type) + { +- LLVMTypeRef function_type; +- LLVMValueRef function; +- + assert(!LLVMGetNamedFunction(module, name)); + +- function_type = LLVMFunctionType(ret_type, arg_types, num_args, 0); +- function = LLVMAddFunction(module, name, function_type); ++ LLVMValueRef function = LLVMAddFunction(module, name, function_type); + + LLVMSetFunctionCallConv(function, LLVMCCallConv); + LLVMSetLinkage(function, LLVMExternalLinkage); +@@ -126,6 +120,18 @@ lp_declare_intrinsic(LLVMModuleRef module, + } + + ++LLVMValueRef ++lp_declare_intrinsic(LLVMModuleRef module, ++ const char *name, ++ LLVMTypeRef ret_type, ++ LLVMTypeRef *arg_types, ++ unsigned num_args) ++{ ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, num_args, 0); ++ return lp_declare_intrinsic_with_type(module, name, function_type); ++} ++ ++ + #if LLVM_VERSION_MAJOR < 4 + static LLVMAttribute lp_attr_to_llvm_attr(enum lp_func_attr attr) + { +@@ -232,19 +238,21 @@ lp_build_intrinsic(LLVMBuilderRef builder, + bool set_callsite_attrs = LLVM_VERSION_MAJOR >= 4 && + !(attr_mask & LP_FUNC_ATTR_LEGACY); + +- function = LLVMGetNamedFunction(module, name); +- if(!function) { +- LLVMTypeRef arg_types[LP_MAX_FUNC_ARGS]; +- unsigned i; ++ LLVMTypeRef arg_types[LP_MAX_FUNC_ARGS]; ++ ++ assert(num_args <= LP_MAX_FUNC_ARGS); + +- assert(num_args <= LP_MAX_FUNC_ARGS); ++ for(unsigned i = 0; i < num_args; ++i) { ++ assert(args[i]); ++ arg_types[i] = LLVMTypeOf(args[i]); ++ } + +- for(i = 0; i < num_args; ++i) { +- assert(args[i]); +- arg_types[i] = LLVMTypeOf(args[i]); +- } ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, num_args, 0); + +- function = lp_declare_intrinsic(module, name, ret_type, arg_types, num_args); ++ function = LLVMGetNamedFunction(module, name); ++ ++ if(!function) { ++ function = lp_declare_intrinsic_with_type(module, name, function_type); + + /* + * If llvm removes an intrinsic we use, we'll hit this abort (rather +@@ -265,7 +273,7 @@ lp_build_intrinsic(LLVMBuilderRef builder, + } + } + +- call = LLVMBuildCall(builder, function, args, num_args, ""); ++ call = LLVMBuildCall2(builder, function_type, function, args, num_args, ""); + if (set_callsite_attrs) + lp_add_func_attributes(call, attr_mask); + return call; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.h b/src/gallium/auxiliary/gallivm/lp_bld_intr.h +index ed90979f16fbb..98dfb0d0cb31d 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_intr.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.h +@@ -78,6 +78,11 @@ lp_declare_intrinsic(LLVMModuleRef module, + LLVMTypeRef *arg_types, + unsigned num_args); + ++LLVMValueRef ++lp_declare_intrinsic_with_type(LLVMModuleRef module, ++ const char *name, ++ LLVMTypeRef function_type); ++ + void + lp_add_function_attr(LLVMValueRef function_or_call, + int attr_idx, enum lp_func_attr attr); +-- +GitLab + + +From 61da78c31109a44b503c9350794d471a3acc7c7f Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 15:59:55 +0300 +Subject: [PATCH 13/22] gallivm: use LLVM opaque pointers in + lp_bld_format_s3tc.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + .../auxiliary/gallivm/lp_bld_format_s3tc.c | 39 +++++++------------ + 1 file changed, 15 insertions(+), 24 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +index 497d403fad372..8f972b840fa66 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +@@ -1097,13 +1097,12 @@ lp_build_gather_s3tc_simple_scalar(struct gallivm_state *gallivm, + LLVMValueRef elem, shuf; + LLVMTypeRef type32 = LLVMIntTypeInContext(gallivm->context, 32); + LLVMTypeRef src_type = LLVMIntTypeInContext(gallivm->context, block_bits); +- LLVMTypeRef src_ptr_type = LLVMPointerType(src_type, 0); + LLVMTypeRef type32_4 = LLVMVectorType(type32, 4); + + assert(block_bits == 64 || block_bits == 128); + +- ptr = LLVMBuildBitCast(builder, ptr, src_ptr_type, ""); +- elem = LLVMBuildLoad(builder, ptr, ""); ++ ptr = LLVMBuildBitCast(builder, ptr, LLVMPointerType(src_type, 0), ""); ++ elem = LLVMBuildLoad2(builder, src_type, ptr, ""); + + if (block_bits == 128) { + /* just return block as is */ +@@ -1139,15 +1138,13 @@ s3tc_store_cached_block(struct gallivm_state *gallivm, + LLVMBuildStore(builder, tag_value, ptr); + + indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_DATA); +- hash_index = LLVMBuildMul(builder, hash_index, +- lp_build_const_int32(gallivm, 16), ""); ++ hash_index = LLVMBuildMul(builder, hash_index, lp_build_const_int32(gallivm, 16), ""); + for (count = 0; count < 4; count++) { + indices[2] = hash_index; + ptr = LLVMBuildGEP(builder, cache, indices, ARRAY_SIZE(indices), ""); + ptr = LLVMBuildBitCast(builder, ptr, type_ptr4x32, ""); + LLVMBuildStore(builder, col[count], ptr); +- hash_index = LLVMBuildAdd(builder, hash_index, +- lp_build_const_int32(gallivm, 4), ""); ++ hash_index = LLVMBuildAdd(builder, hash_index, lp_build_const_int32(gallivm, 4), ""); + } + } + +@@ -1177,8 +1174,9 @@ s3tc_lookup_tag_data(struct gallivm_state *gallivm, + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); + indices[2] = index; ++ LLVMTypeRef tag_type = LLVMInt64TypeInContext(gallivm->context); + member_ptr = LLVMBuildGEP(builder, ptr, indices, ARRAY_SIZE(indices), ""); +- return LLVMBuildLoad(builder, member_ptr, "tag_data"); ++ return LLVMBuildLoad2(builder, tag_type, member_ptr, "tag_data"); + } + + #if LP_BUILD_FORMAT_CACHE_DEBUG +@@ -1996,24 +1994,17 @@ update_cached_block(struct gallivm_state *gallivm, + format_desc->short_name); + function = LLVMGetNamedFunction(module, name); + +- if (!function) { +- LLVMTypeRef ret_type; +- LLVMTypeRef arg_types[3]; +- LLVMTypeRef function_type; +- unsigned arg; ++ LLVMTypeRef ret_type = LLVMVoidTypeInContext(gallivm->context); ++ LLVMTypeRef arg_types[3]; ++ arg_types[0] = pi8t; ++ arg_types[1] = LLVMInt32TypeInContext(gallivm->context); ++ arg_types[2] = LLVMTypeOf(cache); // XXX: put right type here ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, ARRAY_SIZE(arg_types), 0); + +- /* +- * Generate the function prototype. +- */ +- +- ret_type = LLVMVoidTypeInContext(gallivm->context); +- arg_types[0] = pi8t; +- arg_types[1] = LLVMInt32TypeInContext(gallivm->context); +- arg_types[2] = LLVMTypeOf(cache); // XXX: put right type here +- function_type = LLVMFunctionType(ret_type, arg_types, ARRAY_SIZE(arg_types), 0); ++ if (!function) { + function = LLVMAddFunction(module, name, function_type); + +- for (arg = 0; arg < ARRAY_SIZE(arg_types); ++arg) ++ for (unsigned arg = 0; arg < ARRAY_SIZE(arg_types); ++arg) + if (LLVMGetTypeKind(arg_types[arg]) == LLVMPointerTypeKind) + lp_add_function_attr(function, arg + 1, LP_FUNC_ATTR_NOALIAS); + +@@ -2026,7 +2017,7 @@ update_cached_block(struct gallivm_state *gallivm, + args[1] = hash_index; + args[2] = cache; + +- LLVMBuildCall(builder, function, args, ARRAY_SIZE(args), ""); ++ LLVMBuildCall2(builder, function_type, function, args, ARRAY_SIZE(args), ""); + bb = LLVMGetInsertBlock(builder); + inst = LLVMGetLastInstruction(bb); + LLVMSetInstructionCallConv(inst, LLVMFastCallConv); +-- +GitLab + + +From 36c45736ce03c7e66c8fe5422d0df49b5954a213 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:01:52 +0300 +Subject: [PATCH 14/22] gallivm: use LLVM opaque pointers in lp_bld_gather.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_gather.c | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_gather.c b/src/gallium/auxiliary/gallivm/lp_bld_gather.c +index 42cc17371a0db..2f2506803cf9a 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_gather.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_gather.c +@@ -55,7 +55,8 @@ lp_build_gather_elem_ptr(struct gallivm_state *gallivm, + LLVMValueRef offset; + LLVMValueRef ptr; + +- assert(LLVMTypeOf(base_ptr) == LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0)); ++ ASSERTED LLVMTypeRef element_type = LLVMInt8TypeInContext(gallivm->context); ++ assert(LLVMTypeOf(base_ptr) == LLVMPointerType(element_type, 0)); + + if (length == 1) { + assert(i == 0); +@@ -65,7 +66,7 @@ lp_build_gather_elem_ptr(struct gallivm_state *gallivm, + offset = LLVMBuildExtractElement(gallivm->builder, offsets, index, ""); + } + +- ptr = LLVMBuildGEP(gallivm->builder, base_ptr, &offset, 1, ""); ++ ptr = LLVMBuildGEP2(gallivm->builder, element_type, base_ptr, &offset, 1, ""); + + return ptr; + } +@@ -88,7 +89,6 @@ lp_build_gather_elem(struct gallivm_state *gallivm, + boolean vector_justify) + { + LLVMTypeRef src_type = LLVMIntTypeInContext(gallivm->context, src_width); +- LLVMTypeRef src_ptr_type = LLVMPointerType(src_type, 0); + LLVMTypeRef dst_elem_type = LLVMIntTypeInContext(gallivm->context, dst_width); + LLVMValueRef ptr; + LLVMValueRef res; +@@ -96,8 +96,8 @@ lp_build_gather_elem(struct gallivm_state *gallivm, + assert(LLVMTypeOf(base_ptr) == LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0)); + + ptr = lp_build_gather_elem_ptr(gallivm, length, base_ptr, offsets, i); +- ptr = LLVMBuildBitCast(gallivm->builder, ptr, src_ptr_type, ""); +- res = LLVMBuildLoad(gallivm->builder, ptr, ""); ++ ptr = LLVMBuildBitCast(gallivm->builder, ptr, LLVMPointerType(src_type, 0), ""); ++ res = LLVMBuildLoad2(gallivm->builder, src_type, ptr, ""); + + /* XXX + * On some archs we probably really want to avoid having to deal +@@ -173,12 +173,11 @@ lp_build_gather_elem_vec(struct gallivm_state *gallivm, + boolean vector_justify) + { + LLVMValueRef ptr, res; +- LLVMTypeRef src_ptr_type = LLVMPointerType(src_type, 0); + assert(LLVMTypeOf(base_ptr) == LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0)); + + ptr = lp_build_gather_elem_ptr(gallivm, length, base_ptr, offsets, i); +- ptr = LLVMBuildBitCast(gallivm->builder, ptr, src_ptr_type, ""); +- res = LLVMBuildLoad(gallivm->builder, ptr, ""); ++ ptr = LLVMBuildBitCast(gallivm->builder, ptr, LLVMPointerType(src_type, 0), ""); ++ res = LLVMBuildLoad2(gallivm->builder, src_type, ptr, ""); + + /* XXX + * On some archs we probably really want to avoid having to deal +@@ -324,7 +323,7 @@ lp_build_gather_avx2(struct gallivm_state *gallivm, + assert(LLVMTypeOf(offsets) == i32_vec_type); + offsets = LLVMBuildSDiv(builder, offsets, scale, ""); + +- src_ptr = LLVMBuildGEP(builder, base_ptr, &offsets, 1, "vector-gep"); ++ src_ptr = LLVMBuildGEP2(builder, src_type, base_ptr, &offsets, 1, "vector-gep"); + + char intrinsic[64]; + snprintf(intrinsic, sizeof intrinsic, "llvm.masked.gather.v%u%s%u", +-- +GitLab + + +From 2a59fdb96d5a7bfe8c10b6ce7eec621480abd092 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:03:36 +0300 +Subject: [PATCH 15/22] gallivm: use LLVM opaque pointers in lp_bld_nir_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + .../auxiliary/gallivm/lp_bld_nir_soa.c | 89 ++++++++++--------- + 1 file changed, 45 insertions(+), 44 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +index 5a8fd02561bfb..e31faf577077b 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +@@ -282,8 +282,8 @@ build_gather(struct lp_build_nir_context *bld_base, + index = LLVMBuildExtractElement(builder, + indexes, si, ""); + } +- scalar_ptr = LLVMBuildGEP(builder, base_ptr, +- &index, 1, "gather_ptr"); ++ ++ scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "gather_ptr"); + scalar = LLVMBuildLoad(builder, scalar_ptr, ""); + + res = LLVMBuildInsertElement(builder, res, scalar, di, ""); +@@ -324,8 +324,8 @@ emit_mask_scatter(struct lp_build_nir_soa_context *bld, + for (i = 0; i < bld->bld_base.base.type.length; i++) { + LLVMValueRef ii = lp_build_const_int32(gallivm, i); + LLVMValueRef index = LLVMBuildExtractElement(builder, indexes, ii, ""); +- LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "scatter_ptr"); + LLVMValueRef val = LLVMBuildExtractElement(builder, values, ii, "scatter_val"); ++ LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "scatter_ptr"); + LLVMValueRef scalar_pred = pred ? + LLVMBuildExtractElement(builder, pred, ii, "scatter_pred") : NULL; + +@@ -335,7 +335,7 @@ emit_mask_scatter(struct lp_build_nir_soa_context *bld, + + if (scalar_pred) { + LLVMValueRef real_val, dst_val; +- dst_val = LLVMBuildLoad(builder, scalar_ptr, ""); ++ dst_val = LLVMBuildLoad2(builder, LLVMTypeOf(val), scalar_ptr, ""); + scalar_pred = LLVMBuildTrunc(builder, scalar_pred, LLVMInt1TypeInContext(gallivm->context), ""); + real_val = LLVMBuildSelect(builder, scalar_pred, val, dst_val, ""); + LLVMBuildStore(builder, real_val, scalar_ptr); +@@ -862,13 +862,13 @@ static void emit_load_global(struct lp_build_nir_context *bld_base, + LLVMValueRef value_ptr = lp_build_pointer_get(builder, addr_ptr, lp_build_const_int32(gallivm, c)); + + LLVMValueRef temp_res; +- temp_res = LLVMBuildLoad(builder, result, ""); ++ temp_res = LLVMBuildLoad2(builder, res_bld->vec_type, result, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, value_ptr, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result); + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- outval[c] = LLVMBuildLoad(builder, result, ""); ++ outval[c] = LLVMBuildLoad2(builder, res_bld->vec_type, result, ""); + } + } + +@@ -1007,11 +1007,11 @@ static void emit_atomic_global(struct lp_build_nir_context *bld_base, + LLVMAtomicOrderingSequentiallyConsistent, + false); + } +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, LLVMTypeOf(val), atom_res, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, atom_res); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, LLVMTypeOf(val), atom_res, ""); + bool is_float = LLVMTypeOf(val) == bld_base->base.vec_type; + LLVMValueRef zero_val; + if (is_float) { +@@ -1031,7 +1031,7 @@ static void emit_atomic_global(struct lp_build_nir_context *bld_base, + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- *result = LLVMBuildLoad(builder, atom_res, ""); ++ *result = LLVMBuildLoad2(builder, LLVMTypeOf(val), atom_res, ""); + } + + static void emit_load_ubo(struct lp_build_nir_context *bld_base, +@@ -1135,7 +1135,7 @@ mem_access_base_pointer(struct lp_build_nir_context *bld_base, + *bounds = NULL; + } + +- /* Cast it to the pointer type of the access this instruciton is doing. */ ++ /* Cast it to the pointer type of the access this instruction is doing. */ + if (bit_size == 32) + return ptr; + else +@@ -1187,7 +1187,7 @@ static void emit_load_mem(struct lp_build_nir_context *bld_base, + LLVMBuildStore(builder, lp_build_pointer_get(builder, mem_ptr, chan_offset), res_store); + lp_build_endif(&ifthen); + +- scalar = LLVMBuildLoad(builder, res_store, ""); ++ scalar = LLVMBuildLoad2(builder, LLVMTypeOf(zero), res_store, ""); + } else { + scalar = lp_build_pointer_get(builder, mem_ptr, chan_offset); + } +@@ -1233,11 +1233,11 @@ static void emit_load_mem(struct lp_build_nir_context *bld_base, + lp_build_if(&ifthen, gallivm, fetch_cond); + LLVMValueRef scalar = lp_build_pointer_get(builder, mem_ptr, loop_index); + +- temp_res = LLVMBuildLoad(builder, result[c], ""); ++ temp_res = LLVMBuildLoad2(builder, load_bld->vec_type, result[c], ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result[c]); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, result[c], ""); ++ temp_res = LLVMBuildLoad2(builder, load_bld->vec_type, result[c], ""); + LLVMValueRef zero = lp_build_zero_bits(gallivm, bit_size); + temp_res = LLVMBuildInsertElement(builder, temp_res, zero, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result[c]); +@@ -1248,7 +1248,7 @@ static void emit_load_mem(struct lp_build_nir_context *bld_base, + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); + for (unsigned c = 0; c < nc; c++) +- outval[c] = LLVMBuildLoad(gallivm->builder, result[c], ""); ++ outval[c] = LLVMBuildLoad2(gallivm->builder, load_bld->vec_type, result[c], ""); + + } + +@@ -1356,7 +1356,7 @@ static void emit_atomic_mem(struct lp_build_nir_context *bld_base, + loop_state.counter, ""); + value_ptr = LLVMBuildBitCast(gallivm->builder, value_ptr, atomic_bld->elem_type, ""); + +- LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, mem_ptr, &loop_offset, 1, ""); ++ LLVMValueRef scalar_ptr = LLVMBuildGEP2(builder, atomic_bld->elem_type, mem_ptr, &loop_offset, 1, ""); + + struct lp_build_if_state ifthen; + LLVMValueRef inner_cond, temp_res; +@@ -1423,11 +1423,11 @@ static void emit_atomic_mem(struct lp_build_nir_context *bld_base, + LLVMAtomicOrderingSequentiallyConsistent, + false); + } +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, atomic_bld->vec_type, atom_res, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, atom_res); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, atomic_bld->vec_type, atom_res, ""); + LLVMValueRef zero = lp_build_zero_bits(gallivm, bit_size); + temp_res = LLVMBuildInsertElement(builder, temp_res, zero, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, atom_res); +@@ -1436,7 +1436,7 @@ static void emit_atomic_mem(struct lp_build_nir_context *bld_base, + lp_build_endif(&exec_ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- *result = LLVMBuildLoad(builder, atom_res, ""); ++ *result = LLVMBuildLoad2(builder, atomic_bld->vec_type, atom_res, ""); + } + + static void emit_barrier(struct lp_build_nir_context *bld_base) +@@ -1614,7 +1614,7 @@ static void emit_tex(struct lp_build_nir_context *bld_base, + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); +- LLVMValueRef idx_val = LLVMBuildLoad(builder, res_store, ""); ++ LLVMValueRef idx_val = LLVMBuildLoad2(builder, bld_base->uint_bld.elem_type, res_store, ""); + params->texture_index_offset = idx_val; + } + +@@ -1856,7 +1856,7 @@ increment_vec_ptr_by_mask(struct lp_build_nir_context * bld_base, + LLVMValueRef mask) + { + LLVMBuilderRef builder = bld_base->base.gallivm->builder; +- LLVMValueRef current_vec = LLVMBuildLoad(builder, ptr, ""); ++ LLVMValueRef current_vec = LLVMBuildLoad2(builder, LLVMTypeOf(mask), ptr, ""); + + current_vec = LLVMBuildSub(builder, current_vec, mask, ""); + +@@ -1869,7 +1869,7 @@ clear_uint_vec_ptr_from_mask(struct lp_build_nir_context * bld_base, + LLVMValueRef mask) + { + LLVMBuilderRef builder = bld_base->base.gallivm->builder; +- LLVMValueRef current_vec = LLVMBuildLoad(builder, ptr, ""); ++ LLVMValueRef current_vec = LLVMBuildLoad2(builder, bld_base->uint_bld.vec_type, ptr, ""); + + current_vec = lp_build_select(&bld_base->uint_bld, + mask, +@@ -1902,7 +1902,7 @@ static void emit_vertex(struct lp_build_nir_context *bld_base, uint32_t stream_i + return; + assert(bld->gs_iface->emit_vertex); + LLVMValueRef total_emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->total_emitted_vertices_vec_ptr[stream_id], ""); ++ LLVMBuildLoad2(builder, bld->bld_base.uint_bld.vec_type, bld->total_emitted_vertices_vec_ptr[stream_id], ""); + LLVMValueRef mask = mask_vec(bld_base); + mask = clamp_mask_to_max_output_vertices(bld, mask, + total_emitted_vertices_vec); +@@ -1929,11 +1929,11 @@ end_primitive_masked(struct lp_build_nir_context * bld_base, + return; + struct lp_build_context *uint_bld = &bld_base->uint_bld; + LLVMValueRef emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->emitted_vertices_vec_ptr[stream_id], ""); ++ LLVMBuildLoad2(builder, bld->bld_base.uint_bld.vec_type, bld->emitted_vertices_vec_ptr[stream_id], ""); + LLVMValueRef emitted_prims_vec = +- LLVMBuildLoad(builder, bld->emitted_prims_vec_ptr[stream_id], ""); ++ LLVMBuildLoad2(builder, bld->bld_base.uint_bld.vec_type, bld->emitted_prims_vec_ptr[stream_id], ""); + LLVMValueRef total_emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->total_emitted_vertices_vec_ptr[stream_id], ""); ++ LLVMBuildLoad2(builder, bld->bld_base.uint_bld.vec_type, bld->total_emitted_vertices_vec_ptr[stream_id], ""); + + LLVMValueRef emitted_mask = lp_build_cmp(uint_bld, + PIPE_FUNC_NOTEQUAL, +@@ -1977,8 +1977,7 @@ emit_prologue(struct lp_build_nir_soa_context *bld) + LLVMValueRef lindex = + lp_build_const_int32(gallivm, index * 4 + chan); + LLVMValueRef input_ptr = +- LLVMBuildGEP(gallivm->builder, bld->inputs_array, +- &lindex, 1, ""); ++ LLVMBuildGEP2(gallivm->builder, vec_type, bld->inputs_array, &lindex, 1, ""); + LLVMValueRef value = bld->inputs[index][chan]; + if (value) + LLVMBuildStore(gallivm->builder, value, input_ptr); +@@ -2015,7 +2014,7 @@ static void emit_vote(struct lp_build_nir_context *bld_base, LLVMValueRef src, + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); +- init_val = LLVMBuildLoad(builder, eq_store, ""); ++ init_val = LLVMBuildLoad2(builder, get_int_bld(bld_base, true, bit_size)->elem_type, eq_store, ""); + } else { + LLVMBuildStore(builder, lp_build_const_int32(gallivm, instr->intrinsic == nir_intrinsic_vote_any ? 0 : -1), res_store); + } +@@ -2029,7 +2028,7 @@ static void emit_vote(struct lp_build_nir_context *bld_base, LLVMValueRef src, + if_cond = LLVMBuildExtractElement(gallivm->builder, outer_cond, loop_state.counter, ""); + + lp_build_if(&ifthen, gallivm, if_cond); +- res = LLVMBuildLoad(builder, res_store, ""); ++ res = LLVMBuildLoad2(builder, bld_base->uint_bld.elem_type, res_store, ""); + + if (instr->intrinsic == nir_intrinsic_vote_feq) { + struct lp_build_context *flt_bld = get_flt_bld(bld_base, bit_size); +@@ -2050,7 +2049,8 @@ static void emit_vote(struct lp_build_nir_context *bld_base, LLVMValueRef src, + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); +- result[0] = lp_build_broadcast_scalar(&bld_base->uint_bld, LLVMBuildLoad(builder, res_store, "")); ++ result[0] = lp_build_broadcast_scalar(&bld_base->uint_bld, ++ LLVMBuildLoad2(builder, bld_base->uint_bld.elem_type, res_store, "")); + } + + static void emit_ballot(struct lp_build_nir_context *bld_base, LLVMValueRef src, nir_intrinsic_instr *instr, LLVMValueRef result[4]) +@@ -2065,7 +2065,7 @@ static void emit_ballot(struct lp_build_nir_context *bld_base, LLVMValueRef src, + lp_build_loop_begin(&loop_state, gallivm, lp_build_const_int32(gallivm, 0)); + LLVMValueRef value_ptr = LLVMBuildExtractElement(gallivm->builder, src, + loop_state.counter, ""); +- res = LLVMBuildLoad(builder, res_store, ""); ++ res = LLVMBuildLoad2(builder, bld_base->int_bld.elem_type, res_store, ""); + res = LLVMBuildOr(builder, + res, + LLVMBuildAnd(builder, value_ptr, LLVMBuildShl(builder, lp_build_const_int32(gallivm, 1), loop_state.counter, ""), ""), ""); +@@ -2073,7 +2073,8 @@ static void emit_ballot(struct lp_build_nir_context *bld_base, LLVMValueRef src, + + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); +- result[0] = lp_build_broadcast_scalar(&bld_base->uint_bld, LLVMBuildLoad(builder, res_store, "")); ++ result[0] = lp_build_broadcast_scalar(&bld_base->uint_bld, ++ LLVMBuildLoad2(builder, bld_base->int_bld.elem_type, res_store, "")); + } + + static void emit_elect(struct lp_build_nir_context *bld_base, LLVMValueRef result[4]) +@@ -2094,7 +2095,7 @@ static void emit_elect(struct lp_build_nir_context *bld_base, LLVMValueRef resul + lp_build_const_int32(gallivm, -1), ""); + LLVMValueRef cond2 = LLVMBuildICmp(gallivm->builder, + LLVMIntEQ, +- LLVMBuildLoad(builder, found_store, ""), ++ LLVMBuildLoad2(builder, bld_base->int_bld.elem_type, found_store, ""), + lp_build_const_int32(gallivm, 0), ""); + + cond = LLVMBuildAnd(builder, cond, cond2, ""); +@@ -2108,7 +2109,7 @@ static void emit_elect(struct lp_build_nir_context *bld_base, LLVMValueRef resul + + result[0] = LLVMBuildInsertElement(builder, bld_base->uint_bld.zero, + lp_build_const_int32(gallivm, -1), +- LLVMBuildLoad(builder, idx_store, ""), ++ LLVMBuildLoad2(builder, bld_base->int_bld.elem_type, idx_store, ""), + ""); + } + +@@ -2316,9 +2317,9 @@ static void emit_reduce(struct lp_build_nir_context *bld_base, LLVMValueRef src, + LLVMValueRef value = LLVMBuildExtractElement(gallivm->builder, src, loop_state.counter, ""); + + LLVMValueRef res = NULL; +- LLVMValueRef scan_val = LLVMBuildLoad(gallivm->builder, scan_store, ""); ++ LLVMValueRef scan_val = LLVMBuildLoad2(gallivm->builder, int_bld->elem_type, scan_store, ""); + if (instr->intrinsic != nir_intrinsic_reduce) +- res = LLVMBuildLoad(gallivm->builder, res_store, ""); ++ res = LLVMBuildLoad2(gallivm->builder, int_bld->vec_type, res_store, ""); + + if (instr->intrinsic == nir_intrinsic_exclusive_scan) + res = LLVMBuildInsertElement(builder, res, scan_val, loop_state.counter, ""); +@@ -2374,9 +2375,9 @@ static void emit_reduce(struct lp_build_nir_context *bld_base, LLVMValueRef src, + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); + if (instr->intrinsic == nir_intrinsic_reduce) +- result[0] = lp_build_broadcast_scalar(int_bld, LLVMBuildLoad(builder, scan_store, "")); ++ result[0] = lp_build_broadcast_scalar(int_bld, LLVMBuildLoad2(builder, int_bld->elem_type, scan_store, "")); + else +- result[0] = LLVMBuildLoad(builder, res_store, ""); ++ result[0] = LLVMBuildLoad2(builder, int_bld->vec_type, res_store, ""); + } + + static void emit_read_invocation(struct lp_build_nir_context *bld_base, +@@ -2409,7 +2410,7 @@ static void emit_read_invocation(struct lp_build_nir_context *bld_base, + + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, -1), + lp_build_const_int32(gallivm, -1), LLVMIntEQ); +- idx = LLVMBuildLoad(builder, res_store, ""); ++ idx = LLVMBuildLoad2(builder, bld_base->int_bld.elem_type, res_store, ""); + + LLVMValueRef value = LLVMBuildExtractElement(gallivm->builder, + src, idx, ""); +@@ -2492,18 +2493,18 @@ emit_load_scratch(struct lp_build_nir_context *bld_base, + LLVMValueRef ptr2 = LLVMBuildBitCast(builder, bld->scratch_ptr, LLVMPointerType(load_bld->elem_type, 0), ""); + scalar = lp_build_pointer_get(builder, ptr2, loop_index); + +- temp_res = LLVMBuildLoad(builder, result, ""); ++ temp_res = LLVMBuildLoad2(builder, load_bld->vec_type, result, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, result, ""); ++ temp_res = LLVMBuildLoad2(builder, load_bld->vec_type, result, ""); + LLVMValueRef zero = lp_build_zero_bits(gallivm, bit_size); + temp_res = LLVMBuildInsertElement(builder, temp_res, zero, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result); + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- outval[c] = LLVMBuildLoad(gallivm->builder, result, ""); ++ outval[c] = LLVMBuildLoad2(gallivm->builder, load_bld->vec_type, result, ""); + } + } + +@@ -2737,10 +2738,10 @@ void lp_build_nir_soa(struct gallivm_state *gallivm, + end_primitive_masked(&bld.bld_base, lp_build_mask_value(bld.mask), i); + + total_emitted_vertices_vec = +- LLVMBuildLoad(builder, bld.total_emitted_vertices_vec_ptr[i], ""); ++ LLVMBuildLoad2(builder, bld.bld_base.uint_bld.vec_type, bld.total_emitted_vertices_vec_ptr[i], ""); + + emitted_prims_vec = +- LLVMBuildLoad(builder, bld.emitted_prims_vec_ptr[i], ""); ++ LLVMBuildLoad2(builder, bld.bld_base.uint_bld.vec_type, bld.emitted_prims_vec_ptr[i], ""); + bld.gs_iface->gs_epilogue(bld.gs_iface, + total_emitted_vertices_vec, + emitted_prims_vec, i); +-- +GitLab + + +From 12cac07fe6e02d4557f0b4843e7eb526dc2f2292 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:04:44 +0300 +Subject: [PATCH 16/22] gallivm: use LLVM opaque pointers in lp_bld_sample.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_sample.c | 49 ++++++++----------- + 1 file changed, 20 insertions(+), 29 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +index f04b692204fc7..97f9766798856 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +@@ -1163,6 +1163,16 @@ lp_build_linear_mip_levels(struct lp_build_sample_context *bld, + lp_build_name(*lod_fpart_inout, "texture%u_mipweight", texture_unit); + } + ++/** ++ * A helper function that factorizes this common pattern. ++ */ ++static LLVMValueRef ++load_mip(struct gallivm_state *gallivm, LLVMValueRef offsets, LLVMValueRef index1) { ++ LLVMValueRef zero = lp_build_const_int32(gallivm, 0); ++ LLVMValueRef indexes[2] = {zero, index1}; ++ LLVMValueRef ptr = LLVMBuildGEP(gallivm->builder, offsets, indexes, ARRAY_SIZE(indexes), ""); ++ return LLVMBuildLoad(gallivm->builder, ptr, ""); ++} + + /** + * Return pointer to a single mipmap level. +@@ -1172,14 +1182,9 @@ LLVMValueRef + lp_build_get_mipmap_level(struct lp_build_sample_context *bld, + LLVMValueRef level) + { ++ LLVMValueRef mip_offset = load_mip(bld->gallivm, bld->mip_offsets, level); + LLVMBuilderRef builder = bld->gallivm->builder; +- LLVMValueRef indexes[2], data_ptr, mip_offset; +- +- indexes[0] = lp_build_const_int32(bld->gallivm, 0); +- indexes[1] = level; +- mip_offset = LLVMBuildGEP(builder, bld->mip_offsets, indexes, 2, ""); +- mip_offset = LLVMBuildLoad(builder, mip_offset, ""); +- data_ptr = LLVMBuildGEP(builder, bld->base_ptr, &mip_offset, 1, ""); ++ LLVMValueRef data_ptr = LLVMBuildGEP(builder, bld->base_ptr, &mip_offset, 1, ""); + return data_ptr; + } + +@@ -1192,13 +1197,10 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + LLVMValueRef level) + { + LLVMBuilderRef builder = bld->gallivm->builder; +- LLVMValueRef indexes[2], offsets, offset1; ++ LLVMValueRef offsets, offset1; + +- indexes[0] = lp_build_const_int32(bld->gallivm, 0); + if (bld->num_mips == 1) { +- indexes[1] = level; +- offset1 = LLVMBuildGEP(builder, bld->mip_offsets, indexes, 2, ""); +- offset1 = LLVMBuildLoad(builder, offset1, ""); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets, level); + offsets = lp_build_broadcast_scalar(&bld->int_coord_bld, offset1); + } + else if (bld->num_mips == bld->coord_bld.type.length / 4) { +@@ -1207,10 +1209,8 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + offsets = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); + LLVMValueRef indexo = lp_build_const_int32(bld->gallivm, 4 * i); +- indexes[1] = LLVMBuildExtractElement(builder, level, indexi, ""); +- offset1 = LLVMBuildGEP(builder, bld->mip_offsets, indexes, 2, ""); +- offset1 = LLVMBuildLoad(builder, offset1, ""); + offsets = LLVMBuildInsertElement(builder, offsets, offset1, indexo, ""); + } + offsets = lp_build_swizzle_scalar_aos(&bld->int_coord_bld, offsets, 0, 4); +@@ -1223,9 +1223,7 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + offsets = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- indexes[1] = LLVMBuildExtractElement(builder, level, indexi, ""); +- offset1 = LLVMBuildGEP(builder, bld->mip_offsets, indexes, 2, ""); +- offset1 = LLVMBuildLoad(builder, offset1, ""); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); + offsets = LLVMBuildInsertElement(builder, offsets, offset1, indexi, ""); + } + } +@@ -1310,12 +1308,9 @@ lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, + LLVMValueRef stride_array, LLVMValueRef level) + { + LLVMBuilderRef builder = bld->gallivm->builder; +- LLVMValueRef indexes[2], stride, stride1; +- indexes[0] = lp_build_const_int32(bld->gallivm, 0); ++ LLVMValueRef stride, stride1; + if (bld->num_mips == 1) { +- indexes[1] = level; +- stride1 = LLVMBuildGEP(builder, stride_array, indexes, 2, ""); +- stride1 = LLVMBuildLoad(builder, stride1, ""); ++ stride1 = load_mip(bld->gallivm, stride_array, level); + stride = lp_build_broadcast_scalar(&bld->int_coord_bld, stride1); + } + else if (bld->num_mips == bld->coord_bld.type.length / 4) { +@@ -1325,10 +1320,8 @@ lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, + stride = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); ++ stride1 = load_mip(bld->gallivm, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); + LLVMValueRef indexo = lp_build_const_int32(bld->gallivm, 4 * i); +- indexes[1] = LLVMBuildExtractElement(builder, level, indexi, ""); +- stride1 = LLVMBuildGEP(builder, stride_array, indexes, 2, ""); +- stride1 = LLVMBuildLoad(builder, stride1, ""); + stride = LLVMBuildInsertElement(builder, stride, stride1, indexo, ""); + } + stride = lp_build_swizzle_scalar_aos(&bld->int_coord_bld, stride, 0, 4); +@@ -1342,9 +1335,7 @@ lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, + stride = bld->int_coord_bld.undef; + for (i = 0; i < bld->coord_bld.type.length; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- indexes[1] = LLVMBuildExtractElement(builder, level, indexi, ""); +- stride1 = LLVMBuildGEP(builder, stride_array, indexes, 2, ""); +- stride1 = LLVMBuildLoad(builder, stride1, ""); ++ stride1 = load_mip(bld->gallivm, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); + stride = LLVMBuildInsertElement(builder, stride, stride1, indexi, ""); + } + } +-- +GitLab + + +From 1f636e7fb20292a1d377ea89404b8c10f5cf061e Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:06:06 +0300 +Subject: [PATCH 17/22] gallivm: use LLVM opaque pointers in + lp_bld_sample_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + .../auxiliary/gallivm/lp_bld_sample_soa.c | 171 +++++++++--------- + 1 file changed, 86 insertions(+), 85 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +index 8417cdd79fc9d..09f6080fca223 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +@@ -1078,6 +1078,8 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + flt_size, + &flt_width_vec, &flt_height_vec, &flt_depth_vec); + ++ LLVMTypeRef int1t = LLVMInt1TypeInContext(bld->gallivm->context); ++ + /* + * Compute integer texcoords. + */ +@@ -1130,7 +1132,6 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + } + else { + struct lp_build_if_state edge_if; +- LLVMTypeRef int1t; + LLVMValueRef new_faces[4], new_xcoords[4][2], new_ycoords[4][2]; + LLVMValueRef coord0, coord1, have_edge, have_corner; + LLVMValueRef fall_off_ym_notxm, fall_off_ym_notxp, fall_off_x, fall_off_y; +@@ -1183,7 +1184,6 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + have_edge = lp_build_any_true_range(ivec_bld, ivec_bld->type.length, have_edge); + + /* needed for accurate corner filtering branch later, rely on 0 init */ +- int1t = LLVMInt1TypeInContext(bld->gallivm->context); + have_corners = lp_build_alloca(bld->gallivm, int1t, "have_corner"); + + for (texel_index = 0; texel_index < 4; texel_index++) { +@@ -1302,18 +1302,19 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + + lp_build_endif(&edge_if); + +- x00 = LLVMBuildLoad(builder, xs[0], ""); +- x01 = LLVMBuildLoad(builder, xs[1], ""); +- x10 = LLVMBuildLoad(builder, xs[2], ""); +- x11 = LLVMBuildLoad(builder, xs[3], ""); +- y00 = LLVMBuildLoad(builder, ys[0], ""); +- y01 = LLVMBuildLoad(builder, ys[1], ""); +- y10 = LLVMBuildLoad(builder, ys[2], ""); +- y11 = LLVMBuildLoad(builder, ys[3], ""); +- z00 = LLVMBuildLoad(builder, zs[0], ""); +- z01 = LLVMBuildLoad(builder, zs[1], ""); +- z10 = LLVMBuildLoad(builder, zs[2], ""); +- z11 = LLVMBuildLoad(builder, zs[3], ""); ++ LLVMTypeRef type = ivec_bld->vec_type; ++ x00 = LLVMBuildLoad2(builder, type, xs[0], ""); ++ x01 = LLVMBuildLoad2(builder, type, xs[1], ""); ++ x10 = LLVMBuildLoad2(builder, type, xs[2], ""); ++ x11 = LLVMBuildLoad2(builder, type, xs[3], ""); ++ y00 = LLVMBuildLoad2(builder, type, ys[0], ""); ++ y01 = LLVMBuildLoad2(builder, type, ys[1], ""); ++ y10 = LLVMBuildLoad2(builder, type, ys[2], ""); ++ y11 = LLVMBuildLoad2(builder, type, ys[3], ""); ++ z00 = LLVMBuildLoad2(builder, type, zs[0], ""); ++ z01 = LLVMBuildLoad2(builder, type, zs[1], ""); ++ z10 = LLVMBuildLoad2(builder, type, zs[2], ""); ++ z11 = LLVMBuildLoad2(builder, type, zs[3], ""); + } + + if (linear_mask) { +@@ -1411,7 +1412,7 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + colorss[2] = lp_build_alloca(bld->gallivm, coord_bld->vec_type, "cs2"); + colorss[3] = lp_build_alloca(bld->gallivm, coord_bld->vec_type, "cs3"); + +- have_corner = LLVMBuildLoad(builder, have_corners, ""); ++ have_corner = LLVMBuildLoad2(builder, int1t, have_corners, ""); + + lp_build_if(&corner_if, bld->gallivm, have_corner); + +@@ -1668,10 +1669,10 @@ lp_build_sample_image_linear(struct lp_build_sample_context *bld, + + lp_build_endif(&corner_if); + +- colors0[0] = LLVMBuildLoad(builder, colorss[0], ""); +- colors0[1] = LLVMBuildLoad(builder, colorss[1], ""); +- colors0[2] = LLVMBuildLoad(builder, colorss[2], ""); +- colors0[3] = LLVMBuildLoad(builder, colorss[3], ""); ++ colors0[0] = LLVMBuildLoad2(builder, coord_bld->vec_type, colorss[0], ""); ++ colors0[1] = LLVMBuildLoad2(builder, coord_bld->vec_type, colorss[1], ""); ++ colors0[2] = LLVMBuildLoad2(builder, coord_bld->vec_type, colorss[2], ""); ++ colors0[3] = LLVMBuildLoad2(builder, coord_bld->vec_type, colorss[3], ""); + } + + if (dims == 3) { +@@ -2306,7 +2307,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + LLVMBuildBr(builder, v_loop_block); + LLVMPositionBuilderAtEnd(builder, v_loop_block); + +- LLVMValueRef v_val = LLVMBuildLoad(builder, v_limiter, ""); ++ LLVMValueRef v_val = LLVMBuildLoad2(builder, bld->int_coord_bld.vec_type, v_limiter, ""); + LLVMValueRef v_mask = LLVMBuildICmp(builder, + LLVMIntSLE, + v_val, +@@ -2338,7 +2339,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + LLVMBuildBr(builder, u_loop_block); + LLVMPositionBuilderAtEnd(builder, u_loop_block); + +- LLVMValueRef u_val = LLVMBuildLoad(builder, u_limiter, ""); ++ LLVMValueRef u_val = LLVMBuildLoad2(builder, bld->int_coord_bld.vec_type, u_limiter, ""); + LLVMValueRef u_mask = LLVMBuildICmp(builder, + LLVMIntSLE, + u_val, +@@ -2347,7 +2348,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + /* loop over U values */ + { + /* q = (int)q */ +- q = lp_build_itrunc(coord_bld, LLVMBuildLoad(builder, q_store, "")); ++ q = lp_build_itrunc(coord_bld, LLVMBuildLoad2(builder, bld->coord_bld.vec_type, q_store, "")); + + /* + * avoid OOB access to filter table, generate a mask for q > 1024, +@@ -2403,7 +2404,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + temp_colors); + + for (chan = 0; chan < 4; chan++) { +- LLVMValueRef tcolor = LLVMBuildLoad(builder, colors0[chan], ""); ++ LLVMValueRef tcolor = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, colors0[chan], ""); + + tcolor = lp_build_add(&bld->texel_bld, tcolor, lp_build_mul(&bld->texel_bld, temp_colors[chan], weights)); + LLVMBuildStore(builder, tcolor, colors0[chan]); +@@ -2411,22 +2412,22 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + + /* multiple colors by weight and add in. */ + /* den += weight; */ +- LLVMValueRef den = LLVMBuildLoad(builder, den_store, ""); ++ LLVMValueRef den = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, den_store, ""); + den = lp_build_add(&bld->texel_bld, den, weights); + LLVMBuildStore(builder, den, den_store); + + lp_build_endif(&noloadw0); + /* q += dq; */ + /* dq += ddq; */ +- q = LLVMBuildLoad(builder, q_store, ""); +- dq = LLVMBuildLoad(builder, dq_store, ""); ++ q = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, q_store, ""); ++ dq = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, dq_store, ""); + q = lp_build_add(coord_bld, q, dq); + dq = lp_build_add(coord_bld, dq, ddq); + LLVMBuildStore(builder, q, q_store); + LLVMBuildStore(builder, dq, dq_store); + } + /* u += 1 */ +- u_val = LLVMBuildLoad(builder, u_limiter, ""); ++ u_val = LLVMBuildLoad2(builder, bld->int_coord_bld.vec_type, u_limiter, ""); + u_val = lp_build_add(&bld->int_coord_bld, u_val, bld->int_coord_bld.one); + LLVMBuildStore(builder, u_val, u_limiter); + +@@ -2447,7 +2448,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + } + + /* v += 1 */ +- v_val = LLVMBuildLoad(builder, v_limiter, ""); ++ v_val = LLVMBuildLoad2(builder, bld->int_coord_bld.vec_type, v_limiter, ""); + v_val = lp_build_add(&bld->int_coord_bld, v_val, bld->int_coord_bld.one); + LLVMBuildStore(builder, v_val, v_limiter); + +@@ -2465,10 +2466,10 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld, + + LLVMPositionBuilderAtEnd(builder, v_end_loop); + +- LLVMValueRef den = LLVMBuildLoad(builder, den_store, ""); ++ LLVMValueRef den = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, den_store, ""); + + for (chan = 0; chan < 4; chan++) +- colors0[chan] = lp_build_div(&bld->texel_bld, LLVMBuildLoad(builder, colors0[chan], ""), den); ++ colors0[chan] = lp_build_div(&bld->texel_bld, LLVMBuildLoad2(builder, bld->texel_bld.vec_type, colors0[chan], ""), den); + LLVMValueRef den0 = lp_build_cmp(&bld->coord_bld, PIPE_FUNC_EQUAL, den, bld->coord_bld.zero); + + LLVMValueRef den0_any = lp_build_any_true_range(&bld->coord_bld, bld->coord_bld.type.length, den0); +@@ -2710,7 +2711,7 @@ lp_build_clamp_border_color(struct lp_build_sample_context *bld, + lp_build_const_int32(gallivm, 0)); + border_color_ptr = LLVMBuildBitCast(builder, border_color_ptr, + LLVMPointerType(vec4_bld.vec_type, 0), ""); +- border_color = LLVMBuildLoad(builder, border_color_ptr, ""); ++ border_color = LLVMBuildLoad2(builder, vec4_bld.vec_type, border_color_ptr, ""); + /* we don't have aligned type in the dynamic state unfortunately */ + LLVMSetAlignment(border_color, 4); + +@@ -3055,7 +3056,7 @@ lp_build_sample_general(struct lp_build_sample_context *bld, + } + + for (chan = 0; chan < 4; ++chan) { +- colors_out[chan] = LLVMBuildLoad(builder, texels[chan], ""); ++ colors_out[chan] = LLVMBuildLoad2(builder, bld->texel_bld.vec_type, texels[chan], ""); + lp_build_name(colors_out[chan], "sampler%u_texel_%c", sampler_unit, "xyzw"[chan]); + } + } +@@ -4116,60 +4117,60 @@ lp_build_sample_soa_func(struct gallivm_state *gallivm, + + function = LLVMGetNamedFunction(module, func_name); + +- if(!function) { +- LLVMTypeRef arg_types[LP_MAX_TEX_FUNC_ARGS]; +- LLVMTypeRef ret_type; +- LLVMTypeRef function_type; +- LLVMTypeRef val_type[4]; +- unsigned num_param = 0; ++ LLVMTypeRef arg_types[LP_MAX_TEX_FUNC_ARGS]; ++ LLVMTypeRef ret_type; ++ LLVMTypeRef val_type[4]; ++ unsigned num_param = 0; + +- /* +- * Generate the function prototype. +- */ ++ /* ++ * Generate the function prototype. ++ */ + +- arg_types[num_param++] = LLVMTypeOf(params->context_ptr); +- if (params->aniso_filter_table) +- arg_types[num_param++] = LLVMTypeOf(params->aniso_filter_table); +- if (need_cache) { +- arg_types[num_param++] = LLVMTypeOf(params->thread_data_ptr); +- } +- for (i = 0; i < num_coords; i++) { +- arg_types[num_param++] = LLVMTypeOf(coords[0]); +- assert(LLVMTypeOf(coords[0]) == LLVMTypeOf(coords[i])); +- } +- if (layer) { +- arg_types[num_param++] = LLVMTypeOf(coords[layer]); +- assert(LLVMTypeOf(coords[0]) == LLVMTypeOf(coords[layer])); +- } +- if (sample_key & LP_SAMPLER_SHADOW) { +- arg_types[num_param++] = LLVMTypeOf(coords[0]); +- } +- if (sample_key & LP_SAMPLER_FETCH_MS) { +- arg_types[num_param++] = LLVMTypeOf(params->ms_index); +- } +- if (sample_key & LP_SAMPLER_OFFSETS) { +- for (i = 0; i < num_offsets; i++) { +- arg_types[num_param++] = LLVMTypeOf(offsets[0]); +- assert(LLVMTypeOf(offsets[0]) == LLVMTypeOf(offsets[i])); +- } +- } +- if (lod_control == LP_SAMPLER_LOD_BIAS || +- lod_control == LP_SAMPLER_LOD_EXPLICIT) { +- arg_types[num_param++] = LLVMTypeOf(params->lod); ++ arg_types[num_param++] = LLVMTypeOf(params->context_ptr); ++ if (params->aniso_filter_table) ++ arg_types[num_param++] = LLVMTypeOf(params->aniso_filter_table); ++ if (need_cache) { ++ arg_types[num_param++] = LLVMTypeOf(params->thread_data_ptr); ++ } ++ for (i = 0; i < num_coords; i++) { ++ arg_types[num_param++] = LLVMTypeOf(coords[0]); ++ assert(LLVMTypeOf(coords[0]) == LLVMTypeOf(coords[i])); ++ } ++ if (layer) { ++ arg_types[num_param++] = LLVMTypeOf(coords[layer]); ++ assert(LLVMTypeOf(coords[0]) == LLVMTypeOf(coords[layer])); ++ } ++ if (sample_key & LP_SAMPLER_SHADOW) { ++ arg_types[num_param++] = LLVMTypeOf(coords[0]); ++ } ++ if (sample_key & LP_SAMPLER_FETCH_MS) { ++ arg_types[num_param++] = LLVMTypeOf(params->ms_index); ++ } ++ if (sample_key & LP_SAMPLER_OFFSETS) { ++ for (i = 0; i < num_offsets; i++) { ++ arg_types[num_param++] = LLVMTypeOf(offsets[0]); ++ assert(LLVMTypeOf(offsets[0]) == LLVMTypeOf(offsets[i])); + } +- else if (lod_control == LP_SAMPLER_LOD_DERIVATIVES) { +- for (i = 0; i < num_derivs; i++) { +- arg_types[num_param++] = LLVMTypeOf(derivs->ddx[i]); +- arg_types[num_param++] = LLVMTypeOf(derivs->ddy[i]); +- assert(LLVMTypeOf(derivs->ddx[0]) == LLVMTypeOf(derivs->ddx[i])); +- assert(LLVMTypeOf(derivs->ddy[0]) == LLVMTypeOf(derivs->ddy[i])); +- } ++ } ++ if (lod_control == LP_SAMPLER_LOD_BIAS || ++ lod_control == LP_SAMPLER_LOD_EXPLICIT) { ++ arg_types[num_param++] = LLVMTypeOf(params->lod); ++ } ++ else if (lod_control == LP_SAMPLER_LOD_DERIVATIVES) { ++ for (i = 0; i < num_derivs; i++) { ++ arg_types[num_param++] = LLVMTypeOf(derivs->ddx[i]); ++ arg_types[num_param++] = LLVMTypeOf(derivs->ddy[i]); ++ assert(LLVMTypeOf(derivs->ddx[0]) == LLVMTypeOf(derivs->ddx[i])); ++ assert(LLVMTypeOf(derivs->ddy[0]) == LLVMTypeOf(derivs->ddy[i])); + } ++ } + +- val_type[0] = val_type[1] = val_type[2] = val_type[3] = ++ val_type[0] = val_type[1] = val_type[2] = val_type[3] = + lp_build_vec_type(gallivm, params->type); +- ret_type = LLVMStructTypeInContext(gallivm->context, val_type, 4, 0); +- function_type = LLVMFunctionType(ret_type, arg_types, num_param, 0); ++ ret_type = LLVMStructTypeInContext(gallivm->context, val_type, 4, 0); ++ LLVMTypeRef function_type = LLVMFunctionType(ret_type, arg_types, num_param, 0); ++ ++ if(!function) { + function = LLVMAddFunction(module, func_name, function_type); + + for (i = 0; i < num_param; ++i) { +@@ -4232,7 +4233,7 @@ lp_build_sample_soa_func(struct gallivm_state *gallivm, + + assert(num_args <= LP_MAX_TEX_FUNC_ARGS); + +- *tex_ret = LLVMBuildCall(builder, function, args, num_args, ""); ++ *tex_ret = LLVMBuildCall2(builder, function_type, function, args, num_args, ""); + bb = LLVMGetInsertBlock(builder); + inst = LLVMGetLastInstruction(bb); + LLVMSetInstructionCallConv(inst, LLVMFastCallConv); +@@ -4529,8 +4530,8 @@ lp_build_do_atomic_soa(struct gallivm_state *gallivm, + return; + } + +- LLVMValueRef atom_res = lp_build_alloca(gallivm, +- LLVMVectorType(LLVMInt32TypeInContext(gallivm->context), type.length), ""); ++ LLVMTypeRef atom_res_elem_type = LLVMVectorType(LLVMInt32TypeInContext(gallivm->context), type.length); ++ LLVMValueRef atom_res = lp_build_alloca(gallivm, atom_res_elem_type, ""); + + offset = LLVMBuildGEP(gallivm->builder, base_ptr, &offset, 1, ""); + struct lp_build_loop_state loop_state; +@@ -4567,14 +4568,14 @@ lp_build_do_atomic_soa(struct gallivm_state *gallivm, + false); + } + +- LLVMValueRef temp_res = LLVMBuildLoad(gallivm->builder, atom_res, ""); ++ LLVMValueRef temp_res = LLVMBuildLoad2(gallivm->builder, atom_res_elem_type, atom_res, ""); + temp_res = LLVMBuildInsertElement(gallivm->builder, temp_res, data, loop_state.counter, ""); + LLVMBuildStore(gallivm->builder, temp_res, atom_res); + + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, type.length), + NULL, LLVMIntUGE); +- atomic_result[0] = LLVMBuildLoad(gallivm->builder, atom_res, ""); ++ atomic_result[0] = LLVMBuildLoad2(gallivm->builder, atom_res_elem_type, atom_res, ""); + } + + static void +-- +GitLab + + +From c8520c2a8fed749e6c280895748effb589bff79d Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:08:16 +0300 +Subject: [PATCH 18/22] gallivm: use LLVM opaque pointers in lp_bld_struct.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 067740b5c8853..bd969d4681ae6 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -134,15 +134,7 @@ lp_build_pointer_get(LLVMBuilderRef builder, + LLVMValueRef ptr, + LLVMValueRef index) + { +- LLVMValueRef element_ptr; +- LLVMValueRef res; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); +- res = LLVMBuildLoad(builder, element_ptr, ""); +-#ifdef DEBUG +- lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); +-#endif +- return res; ++ return lp_build_pointer_get_unaligned(builder, ptr, index, 0); + } + + +@@ -157,7 +149,8 @@ lp_build_pointer_get_unaligned(LLVMBuilderRef builder, + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); + element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); + res = LLVMBuildLoad(builder, element_ptr, ""); +- LLVMSetAlignment(res, alignment); ++ if (alignment) ++ LLVMSetAlignment(res, alignment); + #ifdef DEBUG + lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); + #endif +@@ -172,7 +165,7 @@ lp_build_pointer_set(LLVMBuilderRef builder, + LLVMValueRef value) + { + LLVMValueRef element_ptr; +- element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); ++ element_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(value), ptr, &index, 1, ""); + LLVMBuildStore(builder, value, element_ptr); + } + +@@ -186,7 +179,7 @@ lp_build_pointer_set_unaligned(LLVMBuilderRef builder, + { + LLVMValueRef element_ptr; + LLVMValueRef instr; +- element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); ++ element_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(value), ptr, &index, 1, ""); + instr = LLVMBuildStore(builder, value, element_ptr); + LLVMSetAlignment(instr, alignment); + } +-- +GitLab + + +From 32a55651cf4ecb830801acafe6410df3f66afca9 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:09:40 +0300 +Subject: [PATCH 19/22] gallivm: use LLVM opaque pointers in lp_bld_tgsi_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + .../auxiliary/gallivm/lp_bld_tgsi_soa.c | 82 ++++++++++--------- + 1 file changed, 42 insertions(+), 40 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +index afaf35e5b11b7..262fa533b3a29 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +@@ -597,9 +597,10 @@ build_gather(struct lp_build_tgsi_context *bld_base, + index = LLVMBuildExtractElement(builder, + indexes, si, ""); + } +- scalar_ptr = LLVMBuildGEP(builder, base_ptr, ++ LLVMTypeRef scalar_type = LLVMGetElementType(LLVMTypeOf(res)); ++ scalar_ptr = LLVMBuildGEP2(builder, scalar_type, base_ptr, + &index, 1, "gather_ptr"); +- scalar = LLVMBuildLoad(builder, scalar_ptr, ""); ++ scalar = LLVMBuildLoad2(builder, scalar_type, scalar_ptr, ""); + + res = LLVMBuildInsertElement(builder, res, scalar, di, ""); + } +@@ -640,8 +641,8 @@ emit_mask_scatter(struct lp_build_tgsi_soa_context *bld, + for (i = 0; i < bld->bld_base.base.type.length; i++) { + LLVMValueRef ii = lp_build_const_int32(gallivm, i); + LLVMValueRef index = LLVMBuildExtractElement(builder, indexes, ii, ""); +- LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "scatter_ptr"); + LLVMValueRef val = LLVMBuildExtractElement(builder, values, ii, "scatter_val"); ++ LLVMValueRef scalar_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(val), base_ptr, &index, 1, "scatter_ptr"); + LLVMValueRef scalar_pred = pred ? + LLVMBuildExtractElement(builder, pred, ii, "scatter_pred") : NULL; + +@@ -651,7 +652,7 @@ emit_mask_scatter(struct lp_build_tgsi_soa_context *bld, + + if (scalar_pred) { + LLVMValueRef real_val, dst_val; +- dst_val = LLVMBuildLoad(builder, scalar_ptr, ""); ++ dst_val = LLVMBuildLoad2(builder, LLVMTypeOf(val), scalar_ptr, ""); + real_val = lp_build_select(&bld->elem_bld, scalar_pred, val, dst_val); + LLVMBuildStore(builder, real_val, scalar_ptr); + } +@@ -690,7 +691,7 @@ get_indirect_index(struct lp_build_tgsi_soa_context *bld, + assert(swizzle < 4); + switch (indirect_reg->File) { + case TGSI_FILE_ADDRESS: +- rel = LLVMBuildLoad(builder, ++ rel = LLVMBuildLoad2(builder, bld->bld_base.base.int_elem_type, + bld->addr[indirect_reg->Index][swizzle], + "load addr reg"); + /* ADDR LLVM values already have LLVM integer type. */ +@@ -890,23 +891,23 @@ emit_fetch_constant( + res = LLVMBuildInsertElement(builder, res, scalar, shuffles[0], ""); + res = LLVMBuildInsertElement(builder, res, scalar2, shuffles[1], ""); + } else { ++ LLVMTypeRef scalar_type = NULL; + if (stype == TGSI_TYPE_DOUBLE) { +- LLVMTypeRef dptr_type = LLVMPointerType(LLVMDoubleTypeInContext(gallivm->context), 0); +- scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, dptr_type, ""); ++ scalar_type = LLVMPointerType(LLVMDoubleTypeInContext(gallivm->context), 0); ++ scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, scalar_type, ""); + bld_broad = &bld_base->dbl_bld; + } else if (stype == TGSI_TYPE_UNSIGNED64) { +- LLVMTypeRef u64ptr_type = LLVMPointerType(LLVMInt64TypeInContext(gallivm->context), 0); +- scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, u64ptr_type, ""); ++ scalar_type = LLVMPointerType(LLVMInt64TypeInContext(gallivm->context), 0); ++ scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, scalar_type, ""); + bld_broad = &bld_base->uint64_bld; + } else if (stype == TGSI_TYPE_SIGNED64) { +- LLVMTypeRef i64ptr_type = LLVMPointerType(LLVMInt64TypeInContext(gallivm->context), 0); +- scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, i64ptr_type, ""); ++ scalar_type = LLVMPointerType(LLVMInt64TypeInContext(gallivm->context), 0); ++ scalar_ptr = LLVMBuildBitCast(builder, scalar_ptr, scalar_type, ""); + bld_broad = &bld_base->int64_bld; + } +- scalar = LLVMBuildLoad(builder, scalar_ptr, ""); ++ scalar = LLVMBuildLoad2(builder, scalar_type, scalar_ptr, ""); + res = lp_build_broadcast_scalar(bld_broad, scalar); + } +- + } + + if (stype == TGSI_TYPE_SIGNED || stype == TGSI_TYPE_UNSIGNED || stype == TGSI_TYPE_DOUBLE || stype == TGSI_TYPE_SIGNED64 || stype == TGSI_TYPE_UNSIGNED64) { +@@ -1003,7 +1004,7 @@ emit_fetch_immediate( + gep[1] = lp_build_const_int32(gallivm, reg->Register.Index * 4 + swizzle); + LLVMValueRef imms_ptr = LLVMBuildGEP(builder, + bld->imms_array, gep, 2, ""); +- res = LLVMBuildLoad(builder, imms_ptr, ""); ++ res = LLVMBuildLoad2(builder, bld_base->base.vec_type, imms_ptr, ""); + + if (tgsi_type_is_64bit(stype)) { + LLVMValueRef imms_ptr2; +@@ -1012,7 +1013,7 @@ emit_fetch_immediate( + reg->Register.Index * 4 + (swizzle_in >> 16)); + imms_ptr2 = LLVMBuildGEP(builder, + bld->imms_array, gep, 2, ""); +- res2 = LLVMBuildLoad(builder, imms_ptr2, ""); ++ res2 = LLVMBuildLoad2(builder, bld_base->base.vec_type, imms_ptr2, ""); + res = emit_fetch_64bit(bld_base, stype, res, res2); + } + } +@@ -1076,10 +1077,10 @@ emit_fetch_input( + if (bld->indirect_files & (1 << TGSI_FILE_INPUT)) { + LLVMValueRef lindex = lp_build_const_int32(gallivm, + reg->Register.Index * 4 + swizzle); +- LLVMValueRef input_ptr = LLVMBuildGEP(builder, ++ LLVMValueRef input_ptr = LLVMBuildGEP2(builder, bld_base->base.vec_type, + bld->inputs_array, &lindex, 1, ""); + +- res = LLVMBuildLoad(builder, input_ptr, ""); ++ res = LLVMBuildLoad2(builder, bld_base->base.vec_type, input_ptr, ""); + if (tgsi_type_is_64bit(stype)) { + LLVMValueRef lindex1; + LLVMValueRef input_ptr2; +@@ -1087,9 +1088,9 @@ emit_fetch_input( + + lindex1 = lp_build_const_int32(gallivm, + reg->Register.Index * 4 + (swizzle_in >> 16)); +- input_ptr2 = LLVMBuildGEP(builder, ++ input_ptr2 = LLVMBuildGEP2(builder, bld_base->base.vec_type, + bld->inputs_array, &lindex1, 1, ""); +- res2 = LLVMBuildLoad(builder, input_ptr2, ""); ++ res2 = LLVMBuildLoad2(builder, bld_base->base.vec_type, input_ptr2, ""); + res = emit_fetch_64bit(bld_base, stype, res, res2); + } + } +@@ -1444,13 +1445,13 @@ emit_fetch_temporary( + else { + LLVMValueRef temp_ptr; + temp_ptr = lp_get_temp_ptr_soa(bld, reg->Register.Index, swizzle); +- res = LLVMBuildLoad(builder, temp_ptr, ""); ++ res = LLVMBuildLoad2(builder, bld->bld_base.base.vec_type, temp_ptr, ""); + + if (tgsi_type_is_64bit(stype)) { + LLVMValueRef temp_ptr2, res2; + + temp_ptr2 = lp_get_temp_ptr_soa(bld, reg->Register.Index, swizzle_in >> 16); +- res2 = LLVMBuildLoad(builder, temp_ptr2, ""); ++ res2 = LLVMBuildLoad2(builder, bld->bld_base.base.vec_type, temp_ptr2, ""); + res = emit_fetch_64bit(bld_base, stype, res, res2); + } + } +@@ -3539,17 +3540,17 @@ load_emit( + lp_build_if(&ifthen, gallivm, cond); + scalar = lp_build_pointer_get(builder, scalar_ptr, loop_index); + +- temp_res = LLVMBuildLoad(builder, result, ""); ++ temp_res = LLVMBuildLoad2(builder, uint_bld->vec_type, result, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, result, ""); ++ temp_res = LLVMBuildLoad2(builder, uint_bld->vec_type, result, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, lp_build_const_int32(gallivm, 0), loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, result); + lp_build_endif(&ifthen); + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- emit_data->output[chan_index] = LLVMBuildLoad(gallivm->builder, result, ""); ++ emit_data->output[chan_index] = LLVMBuildLoad2(gallivm->builder, uint_bld->vec_type, result, ""); + } + } + } +@@ -3875,18 +3876,18 @@ atomic_emit( + LLVMAtomicOrderingSequentiallyConsistent, + false); + } +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, uint_bld->vec_type, atom_res, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, scalar, loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, atom_res); + lp_build_else(&ifthen); +- temp_res = LLVMBuildLoad(builder, atom_res, ""); ++ temp_res = LLVMBuildLoad2(builder, uint_bld->vec_type, atom_res, ""); + temp_res = LLVMBuildInsertElement(builder, temp_res, lp_build_const_int32(gallivm, 0), loop_state.counter, ""); + LLVMBuildStore(builder, temp_res, atom_res); + lp_build_endif(&ifthen); + + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, uint_bld->type.length), + NULL, LLVMIntUGE); +- emit_data->output[emit_data->chan] = LLVMBuildLoad(gallivm->builder, atom_res, ""); ++ emit_data->output[emit_data->chan] = LLVMBuildLoad2(gallivm->builder, uint_bld->vec_type, atom_res, ""); + } + } + +@@ -3921,7 +3922,7 @@ increment_vec_ptr_by_mask(struct lp_build_tgsi_context * bld_base, + LLVMValueRef mask) + { + LLVMBuilderRef builder = bld_base->base.gallivm->builder; +- LLVMValueRef current_vec = LLVMBuildLoad(builder, ptr, ""); ++ LLVMValueRef current_vec = LLVMBuildLoad2(builder, LLVMTypeOf(mask), ptr, ""); + + current_vec = LLVMBuildSub(builder, current_vec, mask, ""); + +@@ -3934,7 +3935,7 @@ clear_uint_vec_ptr_from_mask(struct lp_build_tgsi_context * bld_base, + LLVMValueRef mask) + { + LLVMBuilderRef builder = bld_base->base.gallivm->builder; +- LLVMValueRef current_vec = LLVMBuildLoad(builder, ptr, ""); ++ LLVMValueRef current_vec = LLVMBuildLoad2(builder, LLVMTypeOf(mask), ptr, ""); + + current_vec = lp_build_select(&bld_base->uint_bld, + mask, +@@ -3973,7 +3974,7 @@ emit_vertex( + emit_data->inst->Src[0].Register.SwizzleX); + LLVMValueRef mask = mask_vec(bld_base); + LLVMValueRef total_emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->total_emitted_vertices_vec_ptr, ""); ++ LLVMBuildLoad2(builder, LLVMTypeOf(mask), bld->total_emitted_vertices_vec_ptr, ""); + + mask = clamp_mask_to_max_output_vertices(bld, mask, + total_emitted_vertices_vec); +@@ -4009,11 +4010,11 @@ end_primitive_masked(struct lp_build_tgsi_context * bld_base, + if (bld->gs_iface->end_primitive) { + struct lp_build_context *uint_bld = &bld_base->uint_bld; + LLVMValueRef emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->emitted_vertices_vec_ptr, ""); ++ LLVMBuildLoad2(builder, uint_bld->vec_type, bld->emitted_vertices_vec_ptr, ""); + LLVMValueRef emitted_prims_vec = +- LLVMBuildLoad(builder, bld->emitted_prims_vec_ptr, ""); ++ LLVMBuildLoad2(builder, uint_bld->vec_type, bld->emitted_prims_vec_ptr, ""); + LLVMValueRef total_emitted_vertices_vec = +- LLVMBuildLoad(builder, bld->total_emitted_vertices_vec_ptr, ""); ++ LLVMBuildLoad2(builder, uint_bld->vec_type, bld->total_emitted_vertices_vec_ptr, ""); + LLVMValueRef emitted_mask = lp_build_cmp(uint_bld, PIPE_FUNC_NOTEQUAL, + emitted_vertices_vec, + uint_bld->zero); +@@ -4048,7 +4049,7 @@ end_primitive_masked(struct lp_build_tgsi_context * bld_base, + #if DUMP_GS_EMITS + lp_build_print_value(bld->bld_base.base.gallivm, + " +++ end prim emitted verts2 = ", +- LLVMBuildLoad(builder, ++ LLVMBuildLoad2(builder, uint_bld->vec_type, + bld->emitted_vertices_vec_ptr, "")); + #endif + } +@@ -4312,14 +4313,15 @@ static void emit_prologue(struct lp_build_tgsi_context * bld_base) + + for (index = 0; index < bld_base->info->num_inputs; ++index) { + for (chan = 0; chan < TGSI_NUM_CHANNELS; ++chan) { +- LLVMValueRef lindex = +- lp_build_const_int32(gallivm, index * 4 + chan); +- LLVMValueRef input_ptr = +- LLVMBuildGEP(gallivm->builder, bld->inputs_array, +- &lindex, 1, ""); + LLVMValueRef value = bld->inputs[index][chan]; +- if (value) ++ if (value) { ++ LLVMValueRef lindex = ++ lp_build_const_int32(gallivm, index * 4 + chan); ++ LLVMValueRef input_ptr = ++ LLVMBuildGEP2(gallivm->builder, LLVMTypeOf(value), bld->inputs_array, ++ &lindex, 1, ""); + LLVMBuildStore(gallivm->builder, value, input_ptr); ++ } + } + } + } +-- +GitLab + + +From 051f588bfef33169db2162ecf4a0e7d5e063100f Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:10:19 +0300 +Subject: [PATCH 20/22] gallivm: use LLVM opaque pointers in lp_bld_tgsi_aos.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c +index 85b2e8a207ea6..d04b84700c78e 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c +@@ -206,7 +206,8 @@ emit_fetch_temporary( + struct lp_build_tgsi_aos_context * bld = lp_aos_context(bld_base); + LLVMBuilderRef builder = bld_base->base.gallivm->builder; + LLVMValueRef temp_ptr = bld->temps[reg->Register.Index]; +- LLVMValueRef res = LLVMBuildLoad(builder, temp_ptr, ""); ++ LLVMTypeRef vec_type = lp_build_vec_type(bld->bld_base.base.gallivm, bld->bld_base.base.type); ++ LLVMValueRef res = LLVMBuildLoad2(builder, vec_type, temp_ptr, ""); + assert(!reg->Register.Indirect); + if (!res) + return bld->bld_base.base.undef; +@@ -286,8 +287,8 @@ lp_emit_store_aos( + + if (mask) { + LLVMValueRef orig_value; +- +- orig_value = LLVMBuildLoad(builder, ptr, ""); ++ LLVMTypeRef vec_type = lp_build_vec_type(bld->bld_base.base.gallivm, bld->bld_base.base.type); ++ orig_value = LLVMBuildLoad2(builder, vec_type, ptr, ""); + value = lp_build_select(&bld->bld_base.base, + mask, value, orig_value); + } +-- +GitLab + + +From ccbee20f6b4d84240865caa6c4eabcbc6091f0f6 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 2 May 2022 16:11:07 +0300 +Subject: [PATCH 21/22] gallivm: LLVM opaque pointers small changes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c | 2 +- + src/gallium/auxiliary/gallivm/lp_bld_ir_common.c | 6 +++--- + src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c b/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c +index 7d106195d0a56..bc0bd4f4831ae 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c +@@ -80,7 +80,7 @@ lp_build_fetch_rgba_aos_array(struct gallivm_state *gallivm, + */ + ptr = LLVMBuildGEP(builder, base_ptr, &offset, 1, ""); + ptr = LLVMBuildPointerCast(builder, ptr, LLVMPointerType(src_vec_type, 0), ""); +- res = LLVMBuildLoad(builder, ptr, ""); ++ res = LLVMBuildLoad2(builder, src_vec_type, ptr, ""); + LLVMSetAlignment(res, src_type.width / 8); + + /* Truncate doubles to float */ +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c +index cecc8abc31b88..d127ea0c7ff84 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c +@@ -215,7 +215,7 @@ void lp_exec_mask_store(struct lp_exec_mask *mask, + if (exec_mask) { + LLVMValueRef res, dst; + +- dst = LLVMBuildLoad(builder, dst_ptr, ""); ++ dst = LLVMBuildLoad2(builder, LLVMTypeOf(val), dst_ptr, ""); + if (bld_store->type.width < 32) + exec_mask = LLVMBuildTrunc(builder, exec_mask, bld_store->vec_type, ""); + res = lp_build_select(bld_store, exec_mask, val, dst); +@@ -230,7 +230,7 @@ void lp_exec_bgnloop_post_phi(struct lp_exec_mask *mask) + struct function_ctx *ctx = func_ctx(mask); + + if (ctx->loop_stack_size != ctx->bgnloop_stack_size) { +- mask->break_mask = LLVMBuildLoad(builder, ctx->break_var, ""); ++ mask->break_mask = LLVMBuildLoad2(builder, mask->int_vec_type, ctx->break_var, ""); + lp_exec_mask_update(mask); + ctx->bgnloop_stack_size = ctx->loop_stack_size; + } +@@ -303,7 +303,7 @@ void lp_exec_endloop(struct gallivm_state *gallivm, + LLVMBuildStore(builder, mask->break_mask, ctx->break_var); + + /* Decrement the loop limiter */ +- limiter = LLVMBuildLoad(builder, ctx->loop_limiter, ""); ++ limiter = LLVMBuildLoad2(builder, int_type, ctx->loop_limiter, ""); + + limiter = LLVMBuildSub( + builder, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c +index 0564b156d97cb..b0a9f48e8e016 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c +@@ -1191,7 +1191,7 @@ lp_build_sample_aos(struct lp_build_sample_context *bld, + lp_build_endif(&if_ctx); + } + +- packed = LLVMBuildLoad(builder, packed_var, ""); ++ packed = LLVMBuildLoad2(builder, u8n_bld.vec_type, packed_var, ""); + + /* + * Convert to SoA and swizzle. +-- +GitLab + + +From ae6d32c938fc79ff5019806a2592097ca97bd945 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Wed, 20 Apr 2022 14:30:30 +0300 +Subject: [PATCH 22/22] gallium: refactor a channel loop in draw_llvm.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Acked-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15893> +--- + src/gallium/auxiliary/draw/draw_llvm.c | 36 ++++++++++---------------- + 1 file changed, 13 insertions(+), 23 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c +index 1f68170d99e03..ee4ff8178a8a5 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.c ++++ b/src/gallium/auxiliary/draw/draw_llvm.c +@@ -1651,29 +1651,19 @@ generate_clipmask(struct draw_llvm *llvm, + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, plane_idx); + +- indices[2] = lp_build_const_int32(gallivm, 0); +- plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_x"); +- planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); +- sum = LLVMBuildFMul(builder, planes, cv_x, ""); +- +- indices[2] = lp_build_const_int32(gallivm, 1); +- plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_y"); +- planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); +- sum = lp_build_fmuladd(builder, planes, cv_y, sum); +- +- indices[2] = lp_build_const_int32(gallivm, 2); +- plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_z"); +- planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); +- sum = lp_build_fmuladd(builder, planes, cv_z, sum); +- +- indices[2] = lp_build_const_int32(gallivm, 3); +- plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); +- plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, "plane_w"); +- planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); +- sum = lp_build_fmuladd(builder, planes, cv_w, sum); ++ for (int i = 0; i < 4; ++i) { ++ indices[2] = lp_build_const_int32(gallivm, i); ++ plane_ptr = LLVMBuildGEP(builder, planes_ptr, indices, 3, ""); ++ plane1 = LLVMBuildLoad2(builder, vs_elem_type, plane_ptr, ++ (const char *[]){"plane_x", "plane_y", "plane_z", "plane_w"}[i]); ++ planes = lp_build_broadcast(gallivm, vs_type_llvm, plane1); ++ if (i == 0) { ++ sum = LLVMBuildFMul(builder, planes, cv_x, ""); ++ } else { ++ sum = lp_build_fmuladd(builder, planes, ++ (LLVMValueRef[]){cv_x, cv_y, cv_z, cv_w}[i], sum); ++ } ++ } + + test = lp_build_compare(gallivm, f32_type, PIPE_FUNC_GREATER, zero, sum); + temp = lp_build_const_int_vec(gallivm, i32_type, 1LL << plane_idx); +-- +GitLab + +From b549394992553330f191b589b32a30a1f6fb792f Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Thu, 30 Jun 2022 09:14:02 +0300 +Subject: [PATCH 1/4] gallivm: fix a few llvm non-opaque pointers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +As LLVM 15 transitions to opaque pointers, we need to update +the deprecated methods dealing with non-opaque pointers. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Acked-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17650> +--- + src/gallium/auxiliary/gallivm/lp_bld_coro.c | 2 +- + src/gallium/auxiliary/gallivm/lp_bld_format.c | 10 ++++++---- + src/gallium/auxiliary/gallivm/lp_bld_format.h | 2 ++ + .../auxiliary/gallivm/lp_bld_format_aos_array.c | 3 ++- + src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c | 12 +++++++----- + 5 files changed, 18 insertions(+), 11 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.c b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +index a423f60d939a6..0214dcf674203 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_coro.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +@@ -206,7 +206,7 @@ LLVMValueRef lp_build_coro_alloc_mem_array(struct gallivm_state *gallivm, + LLVMValueRef coro_num_hdls) + { + LLVMTypeRef mem_ptr_type = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); +- LLVMValueRef alloced_ptr = LLVMBuildLoad(gallivm->builder, coro_hdl_ptr, ""); ++ LLVMValueRef alloced_ptr = LLVMBuildLoad2(gallivm->builder, mem_ptr_type, coro_hdl_ptr, ""); + + LLVMValueRef not_alloced = LLVMBuildICmp(gallivm->builder, LLVMIntEQ, alloced_ptr, LLVMConstNull(mem_ptr_type), ""); + LLVMValueRef coro_size = lp_build_coro_size(gallivm); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format.c b/src/gallium/auxiliary/gallivm/lp_bld_format.c +index a82fd8feee815..d26485eb4973a 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format.c +@@ -28,7 +28,10 @@ + + #include "lp_bld_format.h" + +- ++LLVMTypeRef lp_build_format_cache_member_data_type(struct gallivm_state *gallivm) ++{ ++ return LLVMArrayType(LLVMInt32TypeInContext(gallivm->context), LP_BUILD_FORMAT_CACHE_SIZE * 16); ++} + + LLVMTypeRef + lp_build_format_cache_type(struct gallivm_state *gallivm) +@@ -36,9 +39,8 @@ lp_build_format_cache_type(struct gallivm_state *gallivm) + LLVMTypeRef elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_COUNT]; + LLVMTypeRef s; + +- elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_DATA] = +- LLVMArrayType(LLVMInt32TypeInContext(gallivm->context), +- LP_BUILD_FORMAT_CACHE_SIZE * 16); ++ elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_DATA] = lp_build_format_cache_member_data_type(gallivm); ++ + elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_TAGS] = + LLVMArrayType(LLVMInt64TypeInContext(gallivm->context), + LP_BUILD_FORMAT_CACHE_SIZE); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format.h b/src/gallium/auxiliary/gallivm/lp_bld_format.h +index 425b2f572f515..0ed1dca38864c 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format.h +@@ -82,6 +82,8 @@ enum { + LLVMTypeRef + lp_build_format_cache_type(struct gallivm_state *gallivm); + ++LLVMTypeRef ++lp_build_format_cache_member_data_type(struct gallivm_state *gallivm); + + /* + * AoS +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c b/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c +index bc0bd4f4831ae..55b5bec53e591 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c +@@ -78,7 +78,8 @@ lp_build_fetch_rgba_aos_array(struct gallivm_state *gallivm, + * (If all callers can guarantee element type alignment, we should + * relax alignment restrictions elsewhere.) + */ +- ptr = LLVMBuildGEP(builder, base_ptr, &offset, 1, ""); ++ LLVMTypeRef byte_type = LLVMInt8TypeInContext(gallivm->context); ++ ptr = LLVMBuildGEP2(builder, byte_type, base_ptr, &offset, 1, ""); + ptr = LLVMBuildPointerCast(builder, ptr, LLVMPointerType(src_vec_type, 0), ""); + res = LLVMBuildLoad2(builder, src_vec_type, ptr, ""); + LLVMSetAlignment(res, src_type.width / 8); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +index 8f972b840fa66..5d91c779e88d2 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +@@ -1134,14 +1134,15 @@ s3tc_store_cached_block(struct gallivm_state *gallivm, + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); + indices[2] = hash_index; +- ptr = LLVMBuildGEP(builder, cache, indices, ARRAY_SIZE(indices), ""); ++ LLVMTypeRef cache_type = lp_build_format_cache_type(gallivm); ++ ptr = LLVMBuildGEP2(builder, cache_type, cache, indices, ARRAY_SIZE(indices), ""); + LLVMBuildStore(builder, tag_value, ptr); + + indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_DATA); + hash_index = LLVMBuildMul(builder, hash_index, lp_build_const_int32(gallivm, 16), ""); + for (count = 0; count < 4; count++) { + indices[2] = hash_index; +- ptr = LLVMBuildGEP(builder, cache, indices, ARRAY_SIZE(indices), ""); ++ ptr = LLVMBuildGEP2(builder, cache_type, cache, indices, ARRAY_SIZE(indices), ""); + ptr = LLVMBuildBitCast(builder, ptr, type_ptr4x32, ""); + LLVMBuildStore(builder, col[count], ptr); + hash_index = LLVMBuildAdd(builder, hash_index, lp_build_const_int32(gallivm, 4), ""); +@@ -1150,7 +1151,7 @@ s3tc_store_cached_block(struct gallivm_state *gallivm, + + static LLVMValueRef + s3tc_lookup_cached_pixel(struct gallivm_state *gallivm, +- LLVMValueRef ptr, ++ LLVMValueRef cache, + LLVMValueRef index) + { + LLVMBuilderRef builder = gallivm->builder; +@@ -1159,8 +1160,9 @@ s3tc_lookup_cached_pixel(struct gallivm_state *gallivm, + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_DATA); + indices[2] = index; +- member_ptr = LLVMBuildGEP(builder, ptr, indices, ARRAY_SIZE(indices), ""); +- return LLVMBuildLoad(builder, member_ptr, "cache_data"); ++ member_ptr = LLVMBuildGEP2(builder, lp_build_format_cache_type(gallivm), cache, indices, ARRAY_SIZE(indices), ""); ++ ++ return LLVMBuildLoad2(builder, lp_build_format_cache_member_data_type(gallivm), member_ptr, "cache_data"); + } + + static LLVMValueRef +-- +GitLab + + +From 8c4aef2abb9170c1f5590a7921383345b4626b1d Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Fri, 1 Jul 2022 12:52:25 +0300 +Subject: [PATCH 2/4] gallivm: refactor a bit the cache access in view of LLVM + opaque pointers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +LLVM 15 requires transition to opaque pointers; factorize a bit the cache +memthods to help this transition. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Acked-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17650> +--- + src/gallium/auxiliary/gallivm/lp_bld_format.c | 30 +++++++++++---- + src/gallium/auxiliary/gallivm/lp_bld_format.h | 7 +++- + .../auxiliary/gallivm/lp_bld_format_s3tc.c | 38 ++++++++++--------- + 3 files changed, 49 insertions(+), 26 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format.c b/src/gallium/auxiliary/gallivm/lp_bld_format.c +index d26485eb4973a..796277feee702 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format.c +@@ -28,9 +28,24 @@ + + #include "lp_bld_format.h" + +-LLVMTypeRef lp_build_format_cache_member_data_type(struct gallivm_state *gallivm) +-{ +- return LLVMArrayType(LLVMInt32TypeInContext(gallivm->context), LP_BUILD_FORMAT_CACHE_SIZE * 16); ++LLVMTypeRef lp_build_format_cache_elem_type(struct gallivm_state *gallivm, enum cache_member member) { ++ assert(member == LP_BUILD_FORMAT_CACHE_MEMBER_DATA || member == LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); ++ switch (member) { ++ case LP_BUILD_FORMAT_CACHE_MEMBER_DATA: ++ return LLVMInt32TypeInContext(gallivm->context); ++ case LP_BUILD_FORMAT_CACHE_MEMBER_TAGS: ++ return LLVMInt64TypeInContext(gallivm->context); ++ default: ++ unreachable("lp_build_format_cache_elem_type unhandled member type"); ++ } ++} ++ ++LLVMTypeRef lp_build_format_cache_member_type(struct gallivm_state *gallivm, enum cache_member member) { ++ assert(member == LP_BUILD_FORMAT_CACHE_MEMBER_DATA || member == LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); ++ unsigned elem_count = ++ member == LP_BUILD_FORMAT_CACHE_MEMBER_DATA ? LP_BUILD_FORMAT_CACHE_SIZE * 16 : ++ member == LP_BUILD_FORMAT_CACHE_MEMBER_TAGS ? LP_BUILD_FORMAT_CACHE_SIZE : 0; ++ return LLVMArrayType(lp_build_format_cache_elem_type(gallivm, member), elem_count); + } + + LLVMTypeRef +@@ -39,11 +54,12 @@ lp_build_format_cache_type(struct gallivm_state *gallivm) + LLVMTypeRef elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_COUNT]; + LLVMTypeRef s; + +- elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_DATA] = lp_build_format_cache_member_data_type(gallivm); ++ int members[] = {LP_BUILD_FORMAT_CACHE_MEMBER_DATA, LP_BUILD_FORMAT_CACHE_MEMBER_TAGS}; ++ for (int i = 0; i < ARRAY_SIZE(members); ++i) { ++ int member = members[i]; ++ elem_types[member] = lp_build_format_cache_member_type(gallivm, member); ++ } + +- elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_TAGS] = +- LLVMArrayType(LLVMInt64TypeInContext(gallivm->context), +- LP_BUILD_FORMAT_CACHE_SIZE); + #if LP_BUILD_FORMAT_CACHE_DEBUG + elem_types[LP_BUILD_FORMAT_CACHE_MEMBER_ACCESS_TOTAL] = + LLVMInt64TypeInContext(gallivm->context); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format.h b/src/gallium/auxiliary/gallivm/lp_bld_format.h +index 0ed1dca38864c..74a625dce7292 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format.h +@@ -68,7 +68,7 @@ struct lp_build_format_cache + }; + + +-enum { ++enum cache_member { + LP_BUILD_FORMAT_CACHE_MEMBER_DATA = 0, + LP_BUILD_FORMAT_CACHE_MEMBER_TAGS, + #if LP_BUILD_FORMAT_CACHE_DEBUG +@@ -83,7 +83,10 @@ LLVMTypeRef + lp_build_format_cache_type(struct gallivm_state *gallivm); + + LLVMTypeRef +-lp_build_format_cache_member_data_type(struct gallivm_state *gallivm); ++lp_build_format_cache_member_type(struct gallivm_state *gallivm, enum cache_member member); ++ ++LLVMTypeRef ++lp_build_format_cache_elem_type(struct gallivm_state *gallivm, enum cache_member member); + + /* + * AoS +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +index 5d91c779e88d2..fe44841528cb0 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +@@ -1150,35 +1150,39 @@ s3tc_store_cached_block(struct gallivm_state *gallivm, + } + + static LLVMValueRef +-s3tc_lookup_cached_pixel(struct gallivm_state *gallivm, +- LLVMValueRef cache, +- LLVMValueRef index) +-{ ++lookup_cache_member(struct gallivm_state *gallivm, LLVMValueRef cache, enum cache_member member, LLVMValueRef index) { ++ assert(member == LP_BUILD_FORMAT_CACHE_MEMBER_DATA || member == LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef member_ptr, indices[3]; + + indices[0] = lp_build_const_int32(gallivm, 0); +- indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_DATA); ++ indices[1] = lp_build_const_int32(gallivm, member); + indices[2] = index; +- member_ptr = LLVMBuildGEP2(builder, lp_build_format_cache_type(gallivm), cache, indices, ARRAY_SIZE(indices), ""); + +- return LLVMBuildLoad2(builder, lp_build_format_cache_member_data_type(gallivm), member_ptr, "cache_data"); ++ const char *name = ++ member == LP_BUILD_FORMAT_CACHE_MEMBER_DATA ? "cache_data" : ++ member == LP_BUILD_FORMAT_CACHE_MEMBER_TAGS ? "tag_data" : ""; ++ ++ member_ptr = LLVMBuildGEP2(builder, lp_build_format_cache_type(gallivm), ++ cache, indices, ARRAY_SIZE(indices), "cache_gep"); ++ ++ return LLVMBuildLoad2(builder, lp_build_format_cache_elem_type(gallivm, member), member_ptr, name); ++} ++ ++static LLVMValueRef ++s3tc_lookup_cached_pixel(struct gallivm_state *gallivm, ++ LLVMValueRef cache, ++ LLVMValueRef index) ++{ ++ return lookup_cache_member(gallivm, cache, LP_BUILD_FORMAT_CACHE_MEMBER_DATA, index); + } + + static LLVMValueRef + s3tc_lookup_tag_data(struct gallivm_state *gallivm, +- LLVMValueRef ptr, ++ LLVMValueRef cache, + LLVMValueRef index) + { +- LLVMBuilderRef builder = gallivm->builder; +- LLVMValueRef member_ptr, indices[3]; +- +- indices[0] = lp_build_const_int32(gallivm, 0); +- indices[1] = lp_build_const_int32(gallivm, LP_BUILD_FORMAT_CACHE_MEMBER_TAGS); +- indices[2] = index; +- LLVMTypeRef tag_type = LLVMInt64TypeInContext(gallivm->context); +- member_ptr = LLVMBuildGEP(builder, ptr, indices, ARRAY_SIZE(indices), ""); +- return LLVMBuildLoad2(builder, tag_type, member_ptr, "tag_data"); ++ return lookup_cache_member(gallivm, cache, LP_BUILD_FORMAT_CACHE_MEMBER_TAGS, index); + } + + #if LP_BUILD_FORMAT_CACHE_DEBUG +-- +GitLab + + +From f0fda08739e46dfcb552d4510c387130ee14874d Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 12 Jul 2022 23:21:49 +0300 +Subject: [PATCH 3/4] gallivm: add lp_build_struct_get() variants that take the + LLVM type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is needed for LLVM-15 opaque pointers. +The new variants taking the type are named with the suffix "2", using +the same naming pattern LLVM (e.g. LLVMBuildGEP2 vs. LLVMBuildGEP). + +Reviewed-by: Brian Paul <brianp@vmware.com> +Acked-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17650> +--- + src/gallium/auxiliary/draw/draw_llvm.c | 165 +++++++++--------- + src/gallium/auxiliary/draw/draw_llvm.h | 145 +++++++-------- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 49 +++++- + src/gallium/auxiliary/gallivm/lp_bld_struct.h | 22 +++ + 4 files changed, 225 insertions(+), 156 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c +index 4f952e0e17c48..4ec2883c2dd0a 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.c ++++ b/src/gallium/auxiliary/draw/draw_llvm.c +@@ -307,37 +307,28 @@ create_jit_image_type(struct gallivm_state *gallivm, const char *struct_name) + * Create LLVM type for struct draw_jit_context + */ + static LLVMTypeRef +-create_jit_context_type(struct gallivm_state *gallivm, +- LLVMTypeRef texture_type, LLVMTypeRef sampler_type, +- LLVMTypeRef image_type, +- const char *struct_name) ++create_jit_context_type(struct gallivm_state *gallivm, const char *struct_name) + { ++ LLVMTypeRef texture_type = create_jit_texture_type(gallivm, "texture"); ++ LLVMTypeRef sampler_type = create_jit_sampler_type(gallivm, "sampler"); ++ LLVMTypeRef image_type = create_jit_image_type(gallivm, "image"); ++ + LLVMTargetDataRef target = gallivm->target; + LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context); + LLVMTypeRef int_type = LLVMInt32TypeInContext(gallivm->context); + LLVMTypeRef elem_types[DRAW_JIT_CTX_NUM_FIELDS]; +- LLVMTypeRef context_type; + +- elem_types[0] = LLVMArrayType(LLVMPointerType(float_type, 0), /* vs_constants */ +- LP_MAX_TGSI_CONST_BUFFERS); +- elem_types[1] = LLVMArrayType(int_type, /* num_vs_constants */ +- LP_MAX_TGSI_CONST_BUFFERS); +- elem_types[2] = LLVMPointerType(LLVMArrayType(LLVMArrayType(float_type, 4), +- DRAW_TOTAL_CLIP_PLANES), 0); +- elem_types[3] = LLVMPointerType(float_type, 0); /* viewports */ +- elem_types[4] = LLVMArrayType(texture_type, +- PIPE_MAX_SHADER_SAMPLER_VIEWS); /* textures */ +- elem_types[5] = LLVMArrayType(sampler_type, +- PIPE_MAX_SAMPLERS); /* samplers */ +- elem_types[6] = LLVMArrayType(image_type, +- PIPE_MAX_SHADER_IMAGES); /* images */ +- elem_types[7] = LLVMArrayType(LLVMPointerType(int_type, 0), /* vs_ssbo */ +- LP_MAX_TGSI_SHADER_BUFFERS); +- elem_types[8] = LLVMArrayType(int_type, /* num_vs_ssbos */ +- LP_MAX_TGSI_SHADER_BUFFERS); +- elem_types[9] = LLVMPointerType(float_type, 0); /* aniso table */ +- context_type = LLVMStructTypeInContext(gallivm->context, elem_types, +- ARRAY_SIZE(elem_types), 0); ++ elem_types[DRAW_JIT_CTX_CONSTANTS] = LLVMArrayType(LLVMPointerType(float_type, 0), LP_MAX_TGSI_CONST_BUFFERS); ++ elem_types[DRAW_JIT_CTX_NUM_CONSTANTS] = LLVMArrayType(int_type, LP_MAX_TGSI_CONST_BUFFERS); ++ elem_types[DRAW_JIT_CTX_PLANES] = LLVMPointerType(LLVMArrayType(LLVMArrayType(float_type, 4), DRAW_TOTAL_CLIP_PLANES), 0); ++ elem_types[DRAW_JIT_CTX_VIEWPORT] = LLVMPointerType(float_type, 0); ++ elem_types[DRAW_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type, PIPE_MAX_SHADER_SAMPLER_VIEWS); ++ elem_types[DRAW_JIT_CTX_SAMPLERS] = LLVMArrayType(sampler_type, PIPE_MAX_SAMPLERS); ++ elem_types[DRAW_JIT_CTX_IMAGES] = LLVMArrayType(image_type, PIPE_MAX_SHADER_IMAGES); ++ elem_types[DRAW_JIT_CTX_SSBOS] = LLVMArrayType(LLVMPointerType(int_type, 0), LP_MAX_TGSI_SHADER_BUFFERS); ++ elem_types[DRAW_JIT_CTX_NUM_SSBOS] = LLVMArrayType(int_type, LP_MAX_TGSI_SHADER_BUFFERS); ++ elem_types[DRAW_JIT_CTX_ANISO_FILTER_TABLE] = LLVMPointerType(float_type, 0); ++ LLVMTypeRef context_type = LLVMStructTypeInContext(gallivm->context, elem_types, ARRAY_SIZE(elem_types), 0); + + (void) target; /* silence unused var warning for non-debug build */ + LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants, +@@ -720,16 +711,9 @@ static void + create_jit_types(struct draw_llvm_variant *variant) + { + struct gallivm_state *gallivm = variant->gallivm; +- LLVMTypeRef texture_type, sampler_type, context_type, image_type; + +- texture_type = create_jit_texture_type(gallivm, "texture"); +- sampler_type = create_jit_sampler_type(gallivm, "sampler"); +- image_type = create_jit_image_type(gallivm, "image"); +- +- context_type = create_jit_context_type(gallivm, texture_type, sampler_type, +- image_type, +- "draw_jit_context"); +- variant->context_ptr_type = LLVMPointerType(context_type, 0); ++ variant->context_type = create_jit_context_type(gallivm, "draw_jit_context"); ++ variant->context_ptr_type = LLVMPointerType(variant->context_type, 0); + + variant->buffer_type = create_jit_dvbuffer_type(gallivm, "draw_vertex_buffer"); + variant->buffer_ptr_type = LLVMPointerType(variant->buffer_type, 0); +@@ -983,13 +967,13 @@ generate_vs(struct draw_llvm_variant *variant, + struct draw_llvm *llvm = variant->llvm; + const struct tgsi_token *tokens = llvm->draw->vs.vertex_shader->state.tokens; + LLVMValueRef consts_ptr = +- draw_jit_context_vs_constants(variant->gallivm, context_ptr); ++ draw_jit_context_vs_constants(variant, context_ptr); + LLVMValueRef num_consts_ptr = +- draw_jit_context_num_vs_constants(variant->gallivm, context_ptr); ++ draw_jit_context_num_vs_constants(variant, context_ptr); + LLVMValueRef ssbos_ptr = +- draw_jit_context_vs_ssbos(variant->gallivm, context_ptr); ++ draw_jit_context_vs_ssbos(variant, context_ptr); + LLVMValueRef num_ssbos_ptr = +- draw_jit_context_num_vs_ssbos(variant->gallivm, context_ptr); ++ draw_jit_context_num_vs_ssbos(variant, context_ptr); + + struct lp_build_tgsi_params params; + memset(¶ms, 0, sizeof(params)); +@@ -1006,7 +990,7 @@ generate_vs(struct draw_llvm_variant *variant, + params.ssbo_ptr = ssbos_ptr; + params.ssbo_sizes_ptr = num_ssbos_ptr; + params.image = draw_image; +- params.aniso_filter_table = draw_jit_context_aniso_filter_table(variant->gallivm, context_ptr); ++ params.aniso_filter_table = draw_jit_context_aniso_filter_table(variant, context_ptr); + + if (llvm->draw->vs.vertex_shader->state.ir.nir && + llvm->draw->vs.vertex_shader->state.type == PIPE_SHADER_IR_NIR) +@@ -1161,13 +1145,14 @@ fetch_vector(struct gallivm_state *gallivm, + + static void + store_aos(struct gallivm_state *gallivm, ++ LLVMTypeRef io_type, + LLVMValueRef io_ptr, + LLVMValueRef index, + LLVMValueRef value) + { + LLVMTypeRef data_ptr_type = LLVMPointerType(lp_build_vec_type(gallivm, lp_float32_vec4_type()), 0); + LLVMBuilderRef builder = gallivm->builder; +- LLVMValueRef data_ptr = draw_jit_header_data(gallivm, io_ptr); ++ LLVMValueRef data_ptr = draw_jit_header_data(gallivm, io_type, io_ptr); + LLVMValueRef indices[3]; + + indices[0] = lp_build_const_int32(gallivm, 0); +@@ -1240,6 +1225,7 @@ adjust_mask(struct gallivm_state *gallivm, + static void + store_aos_array(struct gallivm_state *gallivm, + struct lp_type soa_type, ++ LLVMTypeRef io_type, + LLVMValueRef io_ptr, + LLVMValueRef *indices, + LLVMValueRef* aos, +@@ -1265,7 +1251,7 @@ store_aos_array(struct gallivm_state *gallivm, + } else { + inds[i] = linear_inds[i]; + } +- io_ptrs[i] = LLVMBuildGEP(builder, io_ptr, &inds[i], 1, ""); ++ io_ptrs[i] = LLVMBuildGEP2(builder, io_type, io_ptr, &inds[i], 1, ""); + } + + if (attrib == 0) { +@@ -1289,7 +1275,7 @@ store_aos_array(struct gallivm_state *gallivm, + /* OR with the clipmask */ + cliptmp = LLVMBuildOr(builder, val, clipmask, ""); + for (i = 0; i < vector_length; i++) { +- LLVMValueRef id_ptr = draw_jit_header_id(gallivm, io_ptrs[i]); ++ LLVMValueRef id_ptr = draw_jit_header_id(gallivm, io_type, io_ptrs[i]); + val = LLVMBuildExtractElement(builder, cliptmp, linear_inds[i], ""); + val = adjust_mask(gallivm, val); + #if DEBUG_STORE +@@ -1302,13 +1288,14 @@ store_aos_array(struct gallivm_state *gallivm, + + /* store for each of the n vertices */ + for (i = 0; i < vector_length; i++) { +- store_aos(gallivm, io_ptrs[i], attr_index, aos[i]); ++ store_aos(gallivm, io_type, io_ptrs[i], attr_index, aos[i]); + } + } + + + static void + convert_to_aos(struct gallivm_state *gallivm, ++ LLVMTypeRef io_type, + LLVMValueRef io, + LLVMValueRef *indices, + LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS], +@@ -1367,7 +1354,9 @@ convert_to_aos(struct gallivm_state *gallivm, + + store_aos_array(gallivm, + soa_type, +- io, indices, ++ io_type, ++ io, ++ indices, + aos, + attrib, + num_outputs, +@@ -1386,6 +1375,7 @@ convert_to_aos(struct gallivm_state *gallivm, + static void + store_clip(struct gallivm_state *gallivm, + const struct lp_type vs_type, ++ LLVMTypeRef io_type, + LLVMValueRef io_ptr, + LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS], + int idx) +@@ -1403,7 +1393,7 @@ store_clip(struct gallivm_state *gallivm, + + for (i = 0; i < vs_type.length; i++) { + inds[i] = lp_build_const_int32(gallivm, i); +- io_ptrs[i] = LLVMBuildGEP(builder, io_ptr, &inds[i], 1, ""); ++ io_ptrs[i] = LLVMBuildGEP2(builder, io_type, io_ptr, &inds[i], 1, ""); + } + + soa[0] = LLVMBuildLoad(builder, outputs[idx][0], ""); /*x0 x1 .. xn*/ +@@ -1412,7 +1402,7 @@ store_clip(struct gallivm_state *gallivm, + soa[3] = LLVMBuildLoad(builder, outputs[idx][3], ""); /*w0 w1 .. wn*/ + + for (i = 0; i < vs_type.length; i++) { +- clip_ptrs[i] = draw_jit_header_clip_pos(gallivm, io_ptrs[i]); ++ clip_ptrs[i] = draw_jit_header_clip_pos(gallivm, io_type, io_ptrs[i]); + } + + lp_build_transpose_aos(gallivm, vs_type, soa, soa); +@@ -1451,7 +1441,7 @@ generate_viewport(struct draw_llvm_variant *variant, + LLVMTypeRef vs_type_llvm = lp_build_vec_type(gallivm, vs_type); + LLVMValueRef out3 = LLVMBuildLoad2(builder, vs_type_llvm, outputs[pos][3], ""); /*w0 w1 .. wn*/ + LLVMValueRef const1 = lp_build_const_vec(gallivm, f32_type, 1.0); /*1.0 1.0 1.0 1.0*/ +- LLVMValueRef vp_ptr = draw_jit_context_viewports(gallivm, context_ptr); ++ LLVMValueRef vp_ptr = draw_jit_context_viewports(variant, context_ptr); + + /* We treat pipe_viewport_state as a float array */ + const int scale_index_offset = offsetof(struct pipe_viewport_state, scale) / sizeof(float); +@@ -1504,6 +1494,7 @@ generate_clipmask(struct draw_llvm *llvm, + struct lp_type vs_type, + LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS], + struct draw_llvm_variant_key *key, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + boolean *have_clipdist) + { +@@ -1623,7 +1614,7 @@ generate_clipmask(struct draw_llvm *llvm, + } + + if (clip_user) { +- LLVMValueRef planes_ptr = draw_jit_context_planes(gallivm, context_ptr); ++ LLVMValueRef planes_ptr = draw_jit_context_planes(gallivm, context_type, context_ptr); + LLVMValueRef indices[3]; + LLVMValueRef is_nan_or_inf; + +@@ -1834,7 +1825,8 @@ draw_gs_llvm_emit_vertex(const struct lp_build_gs_iface *gs_base, + do_clamp_vertex_color(gallivm, gs_type, + gs_info, outputs); + } +- convert_to_aos(gallivm, io, indices, ++ convert_to_aos(gallivm, variant->vertex_header_type, ++ io, indices, + outputs, clipmask, + gs_info->num_outputs, gs_type, + FALSE); +@@ -1854,7 +1846,7 @@ draw_gs_llvm_end_primitive(const struct lp_build_gs_iface *gs_base, + struct gallivm_state *gallivm = variant->gallivm; + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef prim_lengts_ptr = +- draw_gs_jit_prim_lengths(variant->gallivm, variant->context_ptr); ++ draw_gs_jit_prim_lengths(variant, variant->context_ptr); + unsigned i; + + LLVMValueRef cond = LLVMBuildICmp(gallivm->builder, LLVMIntNE, mask_vec, lp_build_const_int_vec(gallivm, bld->type, 0), ""); +@@ -1889,9 +1881,9 @@ draw_gs_llvm_epilogue(const struct lp_build_gs_iface *gs_base, + struct gallivm_state *gallivm = variant->gallivm; + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef emitted_verts_ptr = +- draw_gs_jit_emitted_vertices(gallivm, variant->context_ptr); ++ draw_gs_jit_emitted_vertices(variant, variant->context_ptr); + LLVMValueRef emitted_prims_ptr = +- draw_gs_jit_emitted_prims(gallivm, variant->context_ptr); ++ draw_gs_jit_emitted_prims(variant, variant->context_ptr); + LLVMValueRef stream_val = lp_build_const_int32(gallivm, stream); + + emitted_verts_ptr = LLVMBuildGEP(builder, emitted_verts_ptr, &stream_val, 1, ""); +@@ -2097,12 +2089,12 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + if (velem->src_format != PIPE_FORMAT_NONE) { + vbuffer_ptr = LLVMBuildGEP2(builder, variant->buffer_type, vbuffers_ptr, &vb_index, 1, ""); + vb_info = LLVMBuildGEP2(builder, variant->vb_type, vb_ptr, &vb_index, 1, ""); +- vb_stride[j] = draw_jit_vbuffer_stride(gallivm, vb_info); ++ vb_stride[j] = draw_jit_vbuffer_stride(gallivm, variant->vb_type, vb_info); + vb_stride[j] = LLVMBuildZExt(gallivm->builder, vb_stride[j], + LLVMInt32TypeInContext(context), ""); +- vb_buffer_offset = draw_jit_vbuffer_offset(gallivm, vb_info); +- map_ptr[j] = draw_jit_dvbuffer_map(gallivm, vbuffer_ptr); +- buffer_size = draw_jit_dvbuffer_size(gallivm, vbuffer_ptr); ++ vb_buffer_offset = draw_jit_vbuffer_offset(gallivm, variant->vb_type, vb_info); ++ map_ptr[j] = draw_jit_dvbuffer_map(gallivm, variant->buffer_type, vbuffer_ptr); ++ buffer_size = draw_jit_dvbuffer_size(gallivm, variant->buffer_type, vbuffer_ptr); + + ofbit = NULL; + /* +@@ -2317,7 +2309,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + lp_build_mask_end(&mask); + if (pos != -1 && cv != -1) { + /* store original positions in clip before further manipulation */ +- store_clip(gallivm, vs_type, io, outputs, pos); ++ store_clip(gallivm, vs_type, variant->vertex_header_type, io, outputs, pos); + + /* do cliptest */ + if (enable_cliptest) { +@@ -2328,6 +2320,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + vs_type, + outputs, + key, ++ variant->context_type, + context_ptr, &have_clipdist); + temp = LLVMBuildOr(builder, clipmask, temp, ""); + /* store temporary clipping boolean value */ +@@ -2350,7 +2343,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) + * original positions in clip + * and transformed positions in data + */ +- convert_to_aos(gallivm, io, NULL, outputs, clipmask, ++ convert_to_aos(gallivm, variant->vertex_header_type, io, NULL, outputs, clipmask, + vs_info->num_outputs, vs_type, + enable_cliptest && key->need_edgeflags); + } +@@ -2695,18 +2688,18 @@ static void + create_gs_jit_types(struct draw_gs_llvm_variant *var) + { + struct gallivm_state *gallivm = var->gallivm; +- LLVMTypeRef texture_type, sampler_type, image_type, context_type; ++ LLVMTypeRef texture_type, sampler_type, image_type; + + texture_type = create_jit_texture_type(gallivm, "texture"); + sampler_type = create_jit_sampler_type(gallivm, "sampler"); + image_type = create_jit_image_type(gallivm, "image"); + +- context_type = create_gs_jit_context_type(gallivm, ++ var->context_type = create_gs_jit_context_type(gallivm, + var->shader->base.vector_length, + texture_type, sampler_type, + image_type, + "draw_gs_jit_context"); +- var->context_ptr_type = LLVMPointerType(context_type, 0); ++ var->context_ptr_type = LLVMPointerType(var->context_type, 0); + + var->input_array_type = create_gs_jit_input_type(gallivm); + } +@@ -2850,13 +2843,13 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, + gs_type.width = 32; /* 32-bit float */ + gs_type.length = vector_length; + +- consts_ptr = draw_gs_jit_context_constants(variant->gallivm, context_ptr); ++ consts_ptr = draw_gs_jit_context_constants(variant, context_ptr); + num_consts_ptr = +- draw_gs_jit_context_num_constants(variant->gallivm, context_ptr); ++ draw_gs_jit_context_num_constants(variant, context_ptr); + +- ssbos_ptr = draw_gs_jit_context_ssbos(variant->gallivm, context_ptr); ++ ssbos_ptr = draw_gs_jit_context_ssbos(variant, context_ptr); + num_ssbos_ptr = +- draw_gs_jit_context_num_ssbos(variant->gallivm, context_ptr); ++ draw_gs_jit_context_num_ssbos(variant, context_ptr); + + /* code generated texture sampling */ + sampler = draw_llvm_sampler_soa_create(variant->key.samplers, +@@ -2895,7 +2888,7 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, + params.ssbo_sizes_ptr = num_ssbos_ptr; + params.image = image; + params.gs_vertex_streams = variant->shader->base.num_vertex_streams; +- params.aniso_filter_table = draw_gs_jit_context_aniso_filter_table(gallivm, context_ptr); ++ params.aniso_filter_table = draw_gs_jit_context_aniso_filter_table(variant, context_ptr); + + if (llvm->draw->gs.geometry_shader->state.type == PIPE_SHADER_IR_TGSI) + lp_build_tgsi_soa(variant->gallivm, +@@ -2926,7 +2919,6 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm, + struct draw_gs_llvm_variant *variant; + struct llvm_geometry_shader *shader = + llvm_geometry_shader(llvm->draw->gs.geometry_shader); +- LLVMTypeRef vertex_header; + char module_name[64]; + unsigned char ir_sha1_cache_key[20]; + struct lp_cached_code cached = { 0 }; +@@ -2963,9 +2955,8 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm, + + create_gs_jit_types(variant); + +- vertex_header = create_jit_vertex_header(variant->gallivm, num_outputs); +- +- variant->vertex_header_ptr_type = LLVMPointerType(vertex_header, 0); ++ variant->vertex_header_type = create_jit_vertex_header(variant->gallivm, num_outputs); ++ variant->vertex_header_ptr_type = LLVMPointerType(variant->vertex_header_type, 0); + + draw_gs_llvm_generate(llvm, variant); + +@@ -3083,20 +3074,20 @@ static void + create_tcs_jit_types(struct draw_tcs_llvm_variant *var) + { + struct gallivm_state *gallivm = var->gallivm; +- LLVMTypeRef texture_type, sampler_type, image_type, context_type; ++ LLVMTypeRef texture_type, sampler_type, image_type; + + texture_type = create_jit_texture_type(gallivm, "texture"); + sampler_type = create_jit_sampler_type(gallivm, "sampler"); + image_type = create_jit_image_type(gallivm, "image"); + +- context_type = create_tcs_jit_context_type(gallivm, ++ var->context_type = create_tcs_jit_context_type(gallivm, + 0, + texture_type, sampler_type, + image_type, + "draw_tcs_jit_context"); + var->input_array_type = create_tcs_jit_input_type(gallivm); + var->output_array_type = create_tcs_jit_output_type(gallivm); +- var->context_ptr_type = LLVMPointerType(context_type, 0); ++ var->context_ptr_type = LLVMPointerType(var->context_type, 0); + } + + static LLVMTypeRef +@@ -3496,13 +3487,13 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, + patch_vertices_in = LLVMGetParam(variant_coro, 4); + view_index = LLVMGetParam(variant_coro, 5); + +- consts_ptr = draw_tcs_jit_context_constants(variant->gallivm, context_ptr); ++ consts_ptr = draw_tcs_jit_context_constants(variant, context_ptr); + num_consts_ptr = +- draw_tcs_jit_context_num_constants(variant->gallivm, context_ptr); ++ draw_tcs_jit_context_num_constants(variant, context_ptr); + +- ssbos_ptr = draw_tcs_jit_context_ssbos(variant->gallivm, context_ptr); ++ ssbos_ptr = draw_tcs_jit_context_ssbos(variant, context_ptr); + num_ssbos_ptr = +- draw_tcs_jit_context_num_ssbos(variant->gallivm, context_ptr); ++ draw_tcs_jit_context_num_ssbos(variant, context_ptr); + sampler = draw_llvm_sampler_soa_create(variant->key.samplers, + MAX2(variant->key.nr_samplers, + variant->key.nr_sampler_views)); +@@ -3559,7 +3550,7 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, + params.image = image; + params.coro = &coro_info; + params.tcs_iface = &tcs_iface.base; +- params.aniso_filter_table = draw_tcs_jit_context_aniso_filter_table(gallivm, context_ptr); ++ params.aniso_filter_table = draw_tcs_jit_context_aniso_filter_table(variant, context_ptr); + + lp_build_nir_soa(variant->gallivm, + llvm->draw->tcs.tess_ctrl_shader->state.ir.nir, +@@ -3745,18 +3736,18 @@ static void + create_tes_jit_types(struct draw_tes_llvm_variant *var) + { + struct gallivm_state *gallivm = var->gallivm; +- LLVMTypeRef texture_type, sampler_type, image_type, context_type; ++ LLVMTypeRef texture_type, sampler_type, image_type; + + texture_type = create_jit_texture_type(gallivm, "texture"); + sampler_type = create_jit_sampler_type(gallivm, "sampler"); + image_type = create_jit_image_type(gallivm, "image"); + +- context_type = create_tes_jit_context_type(gallivm, ++ var->context_type = create_tes_jit_context_type(gallivm, + 0, + texture_type, sampler_type, + image_type, + "draw_tes_jit_context"); +- var->context_ptr_type = LLVMPointerType(context_type, 0); ++ var->context_ptr_type = LLVMPointerType(var->context_type, 0); + + var->input_array_deref_type = create_tes_jit_input_deref_type(gallivm); + var->input_array_type = LLVMPointerType(var->input_array_deref_type, 0); /* num vertices per prim */ +@@ -4013,13 +4004,13 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + tes_type.length = vector_length; + + lp_build_context_init(&bldvec, variant->gallivm, lp_int_type(tes_type)); +- consts_ptr = draw_tes_jit_context_constants(variant->gallivm, context_ptr); ++ consts_ptr = draw_tes_jit_context_constants(variant, context_ptr); + num_consts_ptr = +- draw_tes_jit_context_num_constants(variant->gallivm, context_ptr); ++ draw_tes_jit_context_num_constants(variant, context_ptr); + +- ssbos_ptr = draw_tes_jit_context_ssbos(variant->gallivm, context_ptr); ++ ssbos_ptr = draw_tes_jit_context_ssbos(variant, context_ptr); + num_ssbos_ptr = +- draw_tes_jit_context_num_ssbos(variant->gallivm, context_ptr); ++ draw_tes_jit_context_num_ssbos(variant, context_ptr); + sampler = draw_llvm_sampler_soa_create(variant->key.samplers, + MAX2(variant->key.nr_samplers, + variant->key.nr_sampler_views)); +@@ -4088,7 +4079,7 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + params.ssbo_sizes_ptr = num_ssbos_ptr; + params.image = image; + params.tes_iface = &tes_iface.base; +- params.aniso_filter_table = draw_tes_jit_context_aniso_filter_table(variant->gallivm, context_ptr); ++ params.aniso_filter_table = draw_tes_jit_context_aniso_filter_table(variant, context_ptr); + + lp_build_nir_soa(variant->gallivm, + llvm->draw->tes.tess_eval_shader->state.ir.nir, +@@ -4106,7 +4097,7 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + LLVMValueRef clipmask = lp_build_const_int_vec(gallivm, + lp_int_type(tes_type), 0); + +- convert_to_aos(gallivm, io, NULL, outputs, clipmask, ++ convert_to_aos(gallivm, variant->vertex_header_type, io, NULL, outputs, clipmask, + draw_total_tes_outputs(llvm->draw), tes_type, FALSE); + } + lp_build_loop_end_cond(&lp_loop, num_tess_coord, step, LLVMIntUGE); +diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h +index 50525cbd25b05..3e1946a3144f3 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.h ++++ b/src/gallium/auxiliary/draw/draw_llvm.h +@@ -188,17 +188,17 @@ enum { + DRAW_JIT_CTX_NUM_FIELDS + }; + +-#define draw_jit_context_vs_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_CONSTANTS, "vs_constants") ++#define draw_jit_context_vs_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_CONSTANTS, "vs_constants") + +-#define draw_jit_context_num_vs_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_NUM_CONSTANTS, "num_vs_constants") ++#define draw_jit_context_num_vs_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_NUM_CONSTANTS, "num_vs_constants") + +-#define draw_jit_context_planes(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_PLANES, "planes") ++#define draw_jit_context_planes(_gallivm, _type, _ptr) \ ++ lp_build_struct_get2(_gallivm, _type, _ptr, DRAW_JIT_CTX_PLANES, "planes") + +-#define draw_jit_context_viewports(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewports") ++#define draw_jit_context_viewports(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewports") + + #define draw_jit_context_textures(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_TEXTURES, "textures") +@@ -209,31 +209,31 @@ enum { + #define draw_jit_context_images(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_IMAGES, "images") + +-#define draw_jit_context_vs_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_SSBOS, "vs_ssbos") ++#define draw_jit_context_vs_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_SSBOS, "vs_ssbos") + +-#define draw_jit_context_num_vs_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_NUM_SSBOS, "num_vs_ssbos") ++#define draw_jit_context_num_vs_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_NUM_SSBOS, "num_vs_ssbos") + +-#define draw_jit_context_aniso_filter_table(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") ++#define draw_jit_context_aniso_filter_table(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") + + +-#define draw_jit_header_id(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_VERTEX_VERTEX_ID, "id") ++#define draw_jit_header_id(_gallivm, _type, _ptr) \ ++ lp_build_struct_get_ptr2(_gallivm, _type, _ptr, DRAW_JIT_VERTEX_VERTEX_ID, "id") + +-#define draw_jit_header_clip_pos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_VERTEX_CLIP_POS, "clip_pos") ++#define draw_jit_header_clip_pos(_gallivm, _type, _ptr) \ ++ lp_build_struct_get_ptr2(_gallivm, _type, _ptr, DRAW_JIT_VERTEX_CLIP_POS, "clip_pos") + +-#define draw_jit_header_data(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_VERTEX_DATA, "data") ++#define draw_jit_header_data(_gallivm, _type, _ptr) \ ++ lp_build_struct_get_ptr2(_gallivm, _type, _ptr, DRAW_JIT_VERTEX_DATA, "data") + + +-#define draw_jit_vbuffer_stride(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, 0, "stride") ++#define draw_jit_vbuffer_stride(_gallivm, _type, _ptr) \ ++ lp_build_struct_get2(_gallivm, _type, _ptr, 0, "stride") + +-#define draw_jit_vbuffer_offset(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, 2, "buffer_offset") ++#define draw_jit_vbuffer_offset(_gallivm, _type, _ptr) \ ++ lp_build_struct_get2(_gallivm, _type, _ptr, 2, "buffer_offset") + + enum { + DRAW_JIT_DVBUFFER_MAP = 0, +@@ -241,11 +241,11 @@ enum { + DRAW_JIT_DVBUFFER_NUM_FIELDS /* number of fields above */ + }; + +-#define draw_jit_dvbuffer_map(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_DVBUFFER_MAP, "map") ++#define draw_jit_dvbuffer_map(_gallivm, _type, _ptr) \ ++ lp_build_struct_get2(_gallivm, _type, _ptr, DRAW_JIT_DVBUFFER_MAP, "map") + +-#define draw_jit_dvbuffer_size(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_DVBUFFER_SIZE, "size") ++#define draw_jit_dvbuffer_size(_gallivm, _type, _ptr) \ ++ lp_build_struct_get2(_gallivm, _type, _ptr, DRAW_JIT_DVBUFFER_SIZE, "size") + + + /** +@@ -302,11 +302,11 @@ enum { + DRAW_GS_JIT_CTX_NUM_FIELDS = 13 + }; + +-#define draw_gs_jit_context_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_CONSTANTS, "constants") ++#define draw_gs_jit_context_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_CONSTANTS, "constants") + +-#define draw_gs_jit_context_num_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_NUM_CONSTANTS, "num_constants") ++#define draw_gs_jit_context_num_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_NUM_CONSTANTS, "num_constants") + + #define draw_gs_jit_context_planes(_gallivm, _ptr) \ + lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_PLANES, "planes") +@@ -323,23 +323,23 @@ enum { + #define draw_gs_jit_context_images(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_IMAGES, "images") + +-#define draw_gs_jit_prim_lengths(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_PRIM_LENGTHS, "prim_lengths") ++#define draw_gs_jit_prim_lengths(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_PRIM_LENGTHS, "prim_lengths") + +-#define draw_gs_jit_emitted_vertices(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_EMITTED_VERTICES, "emitted_vertices") ++#define draw_gs_jit_emitted_vertices(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_EMITTED_VERTICES, "emitted_vertices") + +-#define draw_gs_jit_emitted_prims(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_EMITTED_PRIMS, "emitted_prims") ++#define draw_gs_jit_emitted_prims(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_EMITTED_PRIMS, "emitted_prims") + +-#define draw_gs_jit_context_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_SSBOS, "ssbos") ++#define draw_gs_jit_context_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_SSBOS, "ssbos") + +-#define draw_gs_jit_context_num_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_NUM_SSBOS, "num_ssbos") ++#define draw_gs_jit_context_num_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_NUM_SSBOS, "num_ssbos") + +-#define draw_gs_jit_context_aniso_filter_table(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") ++#define draw_gs_jit_context_aniso_filter_table(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") + + struct draw_tcs_jit_context { + const float *constants[LP_MAX_TGSI_CONST_BUFFERS]; +@@ -371,11 +371,11 @@ enum { + DRAW_TCS_JIT_CTX_NUM_FIELDS = 10, + }; + +-#define draw_tcs_jit_context_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_CONSTANTS, "constants") ++#define draw_tcs_jit_context_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_CONSTANTS, "constants") + +-#define draw_tcs_jit_context_num_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_NUM_CONSTANTS, "num_constants") ++#define draw_tcs_jit_context_num_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_NUM_CONSTANTS, "num_constants") + + #define draw_tcs_jit_context_textures(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_TEXTURES, "textures") +@@ -386,14 +386,14 @@ enum { + #define draw_tcs_jit_context_images(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_IMAGES, "images") + +-#define draw_tcs_jit_context_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_SSBOS, "ssbos") ++#define draw_tcs_jit_context_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_SSBOS, "ssbos") + +-#define draw_tcs_jit_context_num_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_NUM_SSBOS, "num_ssbos") ++#define draw_tcs_jit_context_num_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_NUM_SSBOS, "num_ssbos") + +-#define draw_tcs_jit_context_aniso_filter_table(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_TCS_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") ++#define draw_tcs_jit_context_aniso_filter_table(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") + + struct draw_tes_jit_context { + const float *constants[LP_MAX_TGSI_CONST_BUFFERS]; +@@ -425,11 +425,11 @@ enum { + DRAW_TES_JIT_CTX_NUM_FIELDS = 10, + }; + +-#define draw_tes_jit_context_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_CONSTANTS, "constants") ++#define draw_tes_jit_context_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_CONSTANTS, "constants") + +-#define draw_tes_jit_context_num_constants(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_NUM_CONSTANTS, "num_constants") ++#define draw_tes_jit_context_num_constants(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_NUM_CONSTANTS, "num_constants") + + #define draw_tes_jit_context_textures(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_TEXTURES, "textures") +@@ -440,14 +440,14 @@ enum { + #define draw_tes_jit_context_images(_gallivm, _ptr) \ + lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_IMAGES, "images") + +-#define draw_tes_jit_context_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_SSBOS, "ssbos") ++#define draw_tes_jit_context_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_SSBOS, "ssbos") + +-#define draw_tes_jit_context_num_ssbos(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_NUM_SSBOS, "num_ssbos") ++#define draw_tes_jit_context_num_ssbos(_variant, _ptr) \ ++ lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_NUM_SSBOS, "num_ssbos") + +-#define draw_tes_jit_context_aniso_filter_table(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_TES_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") ++#define draw_tes_jit_context_aniso_filter_table(_variant, _ptr) \ ++ lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_ANISO_FILTER_TABLE, "aniso_filter_table") + + typedef boolean + (*draw_jit_vert_func)(struct draw_jit_context *context, +@@ -688,14 +688,17 @@ struct draw_llvm_variant + struct gallivm_state *gallivm; + + /* LLVM JIT builder types */ ++ LLVMTypeRef context_type; + LLVMTypeRef context_ptr_type; +- LLVMTypeRef buffer_ptr_type; +- LLVMTypeRef vb_ptr_type; +- LLVMTypeRef vertex_header_ptr_type; + + LLVMTypeRef buffer_type; ++ LLVMTypeRef buffer_ptr_type; ++ + LLVMTypeRef vb_type; ++ LLVMTypeRef vb_ptr_type; ++ + LLVMTypeRef vertex_header_type; ++ LLVMTypeRef vertex_header_ptr_type; + + LLVMValueRef function; + draw_jit_vert_func jit_func; +@@ -716,8 +719,12 @@ struct draw_gs_llvm_variant + struct gallivm_state *gallivm; + + /* LLVM JIT builder types */ ++ LLVMTypeRef context_type; + LLVMTypeRef context_ptr_type; ++ ++ LLVMTypeRef vertex_header_type; + LLVMTypeRef vertex_header_ptr_type; ++ + LLVMTypeRef input_array_type; + + LLVMValueRef context_ptr; +@@ -741,12 +748,13 @@ struct draw_tcs_llvm_variant + struct gallivm_state *gallivm; + + /* LLVM JIT builder types */ ++ LLVMTypeRef context_type; + LLVMTypeRef context_ptr_type; + LLVMTypeRef input_array_type; + LLVMTypeRef output_array_type; + + LLVMValueRef context_ptr; +- LLVMValueRef io_ptr; ++ /* LLVMValueRef io_ptr; */ + LLVMValueRef num_prims; + LLVMValueRef function; + draw_tcs_jit_func jit_func; +@@ -766,6 +774,7 @@ struct draw_tes_llvm_variant + struct gallivm_state *gallivm; + + /* LLVM JIT builder types */ ++ LLVMTypeRef context_type; + LLVMTypeRef context_ptr_type; + LLVMTypeRef vertex_header_ptr_type; + LLVMTypeRef input_array_type; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index bd969d4681ae6..1007090410412 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -51,7 +51,12 @@ lp_build_struct_get_ptr(struct gallivm_state *gallivm, + LLVMValueRef indices[2]; + LLVMValueRef member_ptr; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++ ++ /* Starting with LLVM 15, we're not supposed to look at pointer element type anymore. */ ++#if LLVM_VERSION_MAJOR < 15 + assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); ++#endif ++ + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, member); + member_ptr = LLVMBuildGEP(gallivm->builder, ptr, indices, ARRAY_SIZE(indices), ""); +@@ -59,7 +64,6 @@ lp_build_struct_get_ptr(struct gallivm_state *gallivm, + return member_ptr; + } + +- + LLVMValueRef + lp_build_struct_get(struct gallivm_state *gallivm, + LLVMValueRef ptr, +@@ -69,13 +73,56 @@ lp_build_struct_get(struct gallivm_state *gallivm, + LLVMValueRef member_ptr; + LLVMValueRef res; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++#if LLVM_VERSION_MAJOR < 15 + assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); ++#endif + member_ptr = lp_build_struct_get_ptr(gallivm, ptr, member, name); + res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); + lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); + return res; + } + ++LLVMValueRef ++lp_build_struct_get_ptr2(struct gallivm_state *gallivm, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ unsigned member, ++ const char *name) ++{ ++ LLVMValueRef indices[2]; ++ LLVMValueRef member_ptr; ++ assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++ ++ /* Starting with LLVM 15, we're not supposed to look at pointer element type anymore. */ ++#if LLVM_VERSION_MAJOR < 15 ++ assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); ++#endif ++ ++ indices[0] = lp_build_const_int32(gallivm, 0); ++ indices[1] = lp_build_const_int32(gallivm, member); ++ member_ptr = LLVMBuildGEP2(gallivm->builder, ptr_type, ptr, indices, ARRAY_SIZE(indices), ""); ++ lp_build_name(member_ptr, "%s.%s_ptr", LLVMGetValueName(ptr), name); ++ return member_ptr; ++} ++ ++LLVMValueRef ++lp_build_struct_get2(struct gallivm_state *gallivm, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ unsigned member, ++ const char *name) ++{ ++ LLVMValueRef member_ptr; ++ LLVMValueRef res; ++ assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++#if LLVM_VERSION_MAJOR < 15 ++ assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); ++#endif ++ member_ptr = lp_build_struct_get_ptr2(gallivm, ptr_type, ptr, member, name); ++ res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); ++ lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); ++ return res; ++} + + LLVMValueRef + lp_build_array_get_ptr(struct gallivm_state *gallivm, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.h b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +index 6b7b4f2a6bf7d..a87519883b4df 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +@@ -71,6 +71,28 @@ lp_build_struct_get(struct gallivm_state *gallivm, + unsigned member, + const char *name); + ++/** ++ * Get value pointer to a structure member. ++ * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. ++ */ ++LLVMValueRef ++lp_build_struct_get_ptr2(struct gallivm_state *gallivm, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ unsigned member, ++ const char *name); ++ ++/** ++ * Get the value of a structure member. ++ * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. ++ */ ++LLVMValueRef ++lp_build_struct_get2(struct gallivm_state *gallivm, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ unsigned member, ++ const char *name); ++ + /** + * Get value pointer to an array element. + */ +-- +GitLab + + +From da9feae7355c15d489b916340ea2b62f9f8c0a7c Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Sat, 23 Jul 2022 08:45:55 +0300 +Subject: [PATCH 4/4] gallivm: push LLVM version guard into assert + +The asserts that check the pointer element type can't be used on LLVM >= 15. +Instead of using precompiler #if, use boolean shortcut in assert. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17650> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 20 ++++--------------- + 1 file changed, 4 insertions(+), 16 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 1007090410412..be579c4ee25d7 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -51,11 +51,7 @@ lp_build_struct_get_ptr(struct gallivm_state *gallivm, + LLVMValueRef indices[2]; + LLVMValueRef member_ptr; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- +- /* Starting with LLVM 15, we're not supposed to look at pointer element type anymore. */ +-#if LLVM_VERSION_MAJOR < 15 +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +-#endif ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); + + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, member); +@@ -73,9 +69,7 @@ lp_build_struct_get(struct gallivm_state *gallivm, + LLVMValueRef member_ptr; + LLVMValueRef res; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +-#if LLVM_VERSION_MAJOR < 15 +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +-#endif ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); + member_ptr = lp_build_struct_get_ptr(gallivm, ptr, member, name); + res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); + lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); +@@ -92,11 +86,7 @@ lp_build_struct_get_ptr2(struct gallivm_state *gallivm, + LLVMValueRef indices[2]; + LLVMValueRef member_ptr; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- +- /* Starting with LLVM 15, we're not supposed to look at pointer element type anymore. */ +-#if LLVM_VERSION_MAJOR < 15 +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +-#endif ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); + + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = lp_build_const_int32(gallivm, member); +@@ -115,9 +105,7 @@ lp_build_struct_get2(struct gallivm_state *gallivm, + LLVMValueRef member_ptr; + LLVMValueRef res; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +-#if LLVM_VERSION_MAJOR < 15 +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +-#endif ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); + member_ptr = lp_build_struct_get_ptr2(gallivm, ptr_type, ptr, member, name); + res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); + lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); +-- +GitLab + +From adf28955162007af80989b65df641b3c7ae6f78c Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Fri, 19 Aug 2022 11:56:35 +0300 +Subject: [PATCH 1/9] gallivm: LLVM-15 opaque pointers: disable + LLVMGetElementType(ptr_type) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +with opaque pointers, we can't query the element type of a pointer type + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_ir_common.c | 5 +++-- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 6 +++--- + src/gallium/auxiliary/gallivm/lp_bld_swizzle.c | 2 +- + 3 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c +index d127ea0c7ff84..042cd5c814f27 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_ir_common.c +@@ -209,8 +209,9 @@ void lp_exec_mask_store(struct lp_exec_mask *mask, + + assert(lp_check_value(bld_store->type, val)); + assert(LLVMGetTypeKind(LLVMTypeOf(dst_ptr)) == LLVMPointerTypeKind); +- assert(LLVMGetElementType(LLVMTypeOf(dst_ptr)) == LLVMTypeOf(val) || +- LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(dst_ptr))) == LLVMArrayTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 ++ || (LLVMGetElementType(LLVMTypeOf(dst_ptr)) == LLVMTypeOf(val) ++ || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(dst_ptr))) == LLVMArrayTypeKind)); + + if (exec_mask) { + LLVMValueRef res, dst; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index be579c4ee25d7..9e3e24cd9e1e7 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -120,7 +120,7 @@ lp_build_array_get_ptr(struct gallivm_state *gallivm, + LLVMValueRef indices[2]; + LLVMValueRef element_ptr; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); + indices[0] = lp_build_const_int32(gallivm, 0); + indices[1] = index; + element_ptr = LLVMBuildGEP(gallivm->builder, ptr, indices, ARRAY_SIZE(indices), ""); +@@ -140,7 +140,7 @@ lp_build_array_get(struct gallivm_state *gallivm, + LLVMValueRef element_ptr; + LLVMValueRef res; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); + element_ptr = lp_build_array_get_ptr(gallivm, ptr, index); + res = LLVMBuildLoad(gallivm->builder, element_ptr, ""); + #ifdef DEBUG +@@ -158,7 +158,7 @@ lp_build_array_set(struct gallivm_state *gallivm, + { + LLVMValueRef element_ptr; + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); + element_ptr = lp_build_array_get_ptr(gallivm, ptr, index); + LLVMBuildStore(gallivm->builder, value, element_ptr); + } +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c b/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c +index b23c4cbbf02be..904eaa034d6cb 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_swizzle.c +@@ -63,7 +63,7 @@ lp_build_broadcast(struct gallivm_state *gallivm, + LLVMTypeRef i32_type = LLVMInt32TypeInContext(gallivm->context); + LLVMTypeRef i32_vec_type = LLVMVectorType(i32_type, length); + +- assert(LLVMGetElementType(vec_type) == LLVMTypeOf(scalar)); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetElementType(vec_type) == LLVMTypeOf(scalar)); + + res = LLVMBuildInsertElement(builder, undef, scalar, LLVMConstNull(i32_type), ""); + res = LLVMBuildShuffleVector(builder, res, undef, LLVMConstNull(i32_vec_type), ""); +-- +GitLab + + +From 3668ebf8bd42bd9c9c9a7b8b5d4537198e5a2b4c Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 16 Aug 2022 09:44:53 +0300 +Subject: [PATCH 2/9] gallivm: drop unused "emit_load" in + lp_llvm_buffer_member() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_jit_types.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +index 6e6c63db9f39b..c4bfa2be899ce 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +@@ -60,8 +60,7 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + LLVMValueRef buffers_offset, + unsigned buffers_limit, + unsigned member_index, +- const char *member_name, +- boolean emit_load) ++ const char *member_name) + { + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef indices[3]; +@@ -74,7 +73,7 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + LLVMValueRef ptr = + LLVMBuildGEP(builder, buffers_ptr, indices, ARRAY_SIZE(indices), ""); + +- LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; ++ LLVMValueRef res = LLVMBuildLoad(builder, ptr, ""); + + lp_build_name(res, "buffer.%s", member_name); + +@@ -90,7 +89,7 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + * sampler code generator a reusable module without dependencies to + * llvmpipe internals. + */ +-#define LP_LLVM_BUFFER_MEMBER(_name, _index, _emit_load) \ ++#define LP_LLVM_BUFFER_MEMBER(_name, _index) \ + LLVMValueRef \ + lp_llvm_buffer_##_name(struct gallivm_state *gallivm, \ + LLVMValueRef buffers_ptr, \ +@@ -98,8 +97,8 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + { \ + return lp_llvm_buffer_member(gallivm, buffers_ptr, \ + buffers_offset, buffers_limit, \ +- _index, #_name, _emit_load ); \ ++ _index, #_name); \ + } + +-LP_LLVM_BUFFER_MEMBER(base, LP_JIT_BUFFER_BASE, TRUE) +-LP_LLVM_BUFFER_MEMBER(num_elements, LP_JIT_BUFFER_NUM_ELEMENTS, TRUE) ++LP_LLVM_BUFFER_MEMBER(base, LP_JIT_BUFFER_BASE) ++LP_LLVM_BUFFER_MEMBER(num_elements, LP_JIT_BUFFER_NUM_ELEMENTS) +-- +GitLab + + +From 49c6e2fd70aa2db61e784e41f263c19625ca67ba Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 16 Aug 2022 11:11:24 +0300 +Subject: [PATCH 3/9] gallium: drop unused macros in draw_llvm.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The reason is that these macros use lp_build_struct_get(), which is +being replaced by lp_build_structure_get2() which takes the explicit +pointer type. Rather than attempt to update these unused macros, simply drop +them. + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/draw/draw_llvm.h | 42 -------------------------- + 1 file changed, 42 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h +index 37052db3175ba..941591ac7fb7a 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.h ++++ b/src/gallium/auxiliary/draw/draw_llvm.h +@@ -194,15 +194,6 @@ enum { + #define draw_jit_context_viewports(_variant, _ptr) \ + lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewports") + +-#define draw_jit_context_textures(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_TEXTURES, "textures") +- +-#define draw_jit_context_samplers(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_SAMPLERS, "samplers") +- +-#define draw_jit_context_images(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_IMAGES, "images") +- + #define draw_jit_context_ssbos(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_JIT_CTX_SSBOS, "ssbos") + +@@ -292,21 +283,6 @@ enum { + #define draw_gs_jit_context_constants(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_CONSTANTS, "constants") + +-#define draw_gs_jit_context_planes(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_PLANES, "planes") +- +-#define draw_gs_jit_context_viewports(_gallivm, _ptr) \ +- lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_VIEWPORT, "viewports") +- +-#define draw_gs_jit_context_textures(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_TEXTURES, "textures") +- +-#define draw_gs_jit_context_samplers(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_SAMPLERS, "samplers") +- +-#define draw_gs_jit_context_images(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_IMAGES, "images") +- + #define draw_gs_jit_prim_lengths(_variant, _ptr) \ + lp_build_struct_get2(_variant->gallivm, _variant->context_type, _ptr, DRAW_GS_JIT_CTX_PRIM_LENGTHS, "prim_lengths") + +@@ -353,15 +329,6 @@ enum { + #define draw_tcs_jit_context_constants(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_CONSTANTS, "constants") + +-#define draw_tcs_jit_context_textures(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_TEXTURES, "textures") +- +-#define draw_tcs_jit_context_samplers(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_SAMPLERS, "samplers") +- +-#define draw_tcs_jit_context_images(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TCS_JIT_CTX_IMAGES, "images") +- + #define draw_tcs_jit_context_ssbos(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TCS_JIT_CTX_SSBOS, "ssbos") + +@@ -399,15 +366,6 @@ enum { + #define draw_tes_jit_context_constants(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_CONSTANTS, "constants") + +-#define draw_tes_jit_context_textures(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_TEXTURES, "textures") +- +-#define draw_tes_jit_context_samplers(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_SAMPLERS, "samplers") +- +-#define draw_tes_jit_context_images(_gallivm, _ptr) \ +- lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_TES_JIT_CTX_IMAGES, "images") +- + #define draw_tes_jit_context_ssbos(_variant, _ptr) \ + lp_build_struct_get_ptr2(_variant->gallivm, _variant->context_type, _ptr, DRAW_TES_JIT_CTX_SSBOS, "ssbos") + +-- +GitLab + + +From 8289ac87a404ff95759ec2a12012c1eae20419e6 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 26 Jul 2022 15:43:30 +0300 +Subject: [PATCH 4/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_nir_aos.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_nir_aos.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_aos.c +index c449b5de46c77..226bb5e75cf0f 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_aos.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_aos.c +@@ -172,7 +172,7 @@ emit_load_reg(struct lp_build_nir_context *bld_base, + LLVMValueRef reg_storage) + { + struct gallivm_state *gallivm = bld_base->base.gallivm; +- return LLVMBuildLoad(gallivm->builder, reg_storage, ""); ++ return LLVMBuildLoad2(gallivm->builder, reg_bld->vec_type, reg_storage, ""); + } + + +@@ -195,7 +195,7 @@ emit_store_reg(struct lp_build_nir_context *bld_base, + return; + } + +- LLVMValueRef cur = LLVMBuildLoad(gallivm->builder, reg_storage, ""); ++ LLVMValueRef cur = LLVMBuildLoad2(gallivm->builder, reg_bld->vec_type, reg_storage, ""); + LLVMTypeRef i32t = LLVMInt32TypeInContext(gallivm->context); + LLVMValueRef shuffles[LP_MAX_VECTOR_LENGTH]; + for (unsigned j = 0; j < 16; j++) { +@@ -238,10 +238,9 @@ emit_load_ubo(struct lp_build_nir_context *bld_base, + LLVMValueRef this_offset = lp_build_const_int32(gallivm, + offset_val + chan); + +- LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, bld->consts_ptr, +- &this_offset, 1, ""); +- +- LLVMValueRef scalar = LLVMBuildLoad(builder, scalar_ptr, ""); ++ LLVMTypeRef scalar_type = LLVMInt8TypeInContext(gallivm->context); ++ LLVMValueRef scalar_ptr = LLVMBuildGEP2(builder, scalar_type, bld->consts_ptr, &this_offset, 1, ""); ++ LLVMValueRef scalar = LLVMBuildLoad2(builder, scalar_type, scalar_ptr, ""); + + lp_build_name(scalar, "const[%u].%c", offset_val, "xyzw"[chan]); + +-- +GitLab + + +From f30251ef9bf20274d49848d614c8bf407bec353b Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 26 Jul 2022 16:02:52 +0300 +Subject: [PATCH 5/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_nir_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + .../auxiliary/gallivm/lp_bld_nir_soa.c | 30 +++++++++---------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +index 94dcace50e33f..90836928adee1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +@@ -223,6 +223,7 @@ get_soa_array_offsets(struct lp_build_context *uint_bld, + static LLVMValueRef + build_gather(struct lp_build_nir_context *bld_base, + struct lp_build_context *bld, ++ LLVMTypeRef base_type, + LLVMValueRef base_ptr, + LLVMValueRef indexes, + LLVMValueRef overflow_mask, +@@ -284,8 +285,8 @@ build_gather(struct lp_build_nir_context *bld_base, + indexes, si, ""); + } + +- scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "gather_ptr"); +- scalar = LLVMBuildLoad(builder, scalar_ptr, ""); ++ scalar_ptr = LLVMBuildGEP2(builder, base_type, base_ptr, &index, 1, "gather_ptr"); ++ scalar = LLVMBuildLoad2(builder, base_type, scalar_ptr, ""); + + res = LLVMBuildInsertElement(builder, res, scalar, di, ""); + } +@@ -326,7 +327,7 @@ emit_mask_scatter(struct lp_build_nir_soa_context *bld, + LLVMValueRef ii = lp_build_const_int32(gallivm, i); + LLVMValueRef index = LLVMBuildExtractElement(builder, indexes, ii, ""); + LLVMValueRef val = LLVMBuildExtractElement(builder, values, ii, "scatter_val"); +- LLVMValueRef scalar_ptr = LLVMBuildGEP(builder, base_ptr, &index, 1, "scatter_ptr"); ++ LLVMValueRef scalar_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(val), base_ptr, &index, 1, "scatter_ptr"); + LLVMValueRef scalar_pred = pred ? + LLVMBuildExtractElement(builder, pred, ii, "scatter_pred") : NULL; + +@@ -468,17 +469,15 @@ static void emit_load_var(struct lp_build_nir_context *bld_base, + attrib_index_val, 4, idx, + TRUE); + LLVMValueRef index_vec2 = NULL; +- LLVMTypeRef fptr_type; +- LLVMValueRef inputs_array; +- fptr_type = LLVMPointerType(LLVMFloatTypeInContext(gallivm->context), 0); +- inputs_array = LLVMBuildBitCast(gallivm->builder, bld->inputs_array, fptr_type, ""); ++ LLVMTypeRef scalar_type = LLVMFloatTypeInContext(gallivm->context); ++ LLVMValueRef inputs_array = LLVMBuildBitCast(gallivm->builder, bld->inputs_array, LLVMPointerType(scalar_type, 0), ""); + + if (bit_size == 64) + index_vec2 = get_soa_array_offsets(&bld_base->uint_bld, + indir_index, 4, idx + 1, TRUE); + + /* Gather values from the input register array */ +- result[i] = build_gather(bld_base, &bld_base->base, inputs_array, index_vec, NULL, index_vec2); ++ result[i] = build_gather(bld_base, &bld_base->base, scalar_type, inputs_array, index_vec, NULL, index_vec2); + } else { + if (bld->indirects & nir_var_shader_in) { + LLVMValueRef lindex = lp_build_const_int32(gallivm, +@@ -706,13 +705,13 @@ static LLVMValueRef emit_load_reg(struct lp_build_nir_context *bld_base, + reg_storage = LLVMBuildBitCast(builder, reg_storage, LLVMPointerType(reg_bld->elem_type, 0), ""); + for (unsigned i = 0; i < nc; i++) { + LLVMValueRef indirect_offset = get_soa_array_offsets(uint_bld, indirect_val, nc, i, TRUE); +- vals[i] = build_gather(bld_base, reg_bld, reg_storage, indirect_offset, NULL, NULL); ++ vals[i] = build_gather(bld_base, reg_bld, reg_bld->elem_type, reg_storage, indirect_offset, NULL, NULL); + } + } else { + for (unsigned i = 0; i < nc; i++) { + LLVMValueRef this_storage = nc == 1 ? reg_storage : lp_build_array_get_ptr(gallivm, reg_storage, + lp_build_const_int32(gallivm, i)); +- vals[i] = LLVMBuildLoad(builder, this_storage, ""); ++ vals[i] = LLVMBuildLoad2(builder, reg_bld->vec_type, this_storage, ""); + } + } + return nc == 1 ? vals[0] : lp_nir_array_build_gather_values(builder, vals, nc); +@@ -1103,7 +1102,7 @@ static void emit_load_ubo(struct lp_build_nir_context *bld_base, + LLVMBuildStore(builder, lp_build_pointer_get(builder, consts_ptr, chan_offset), res_store); + lp_build_endif(&ifthen); + +- scalar = LLVMBuildLoad(builder, res_store, ""); ++ scalar = LLVMBuildLoad2(builder, LLVMTypeOf(zero), res_store, ""); + + result[c] = lp_build_broadcast_scalar(load_bld, scalar); + } +@@ -1122,7 +1121,7 @@ static void emit_load_ubo(struct lp_build_nir_context *bld_base, + LLVMValueRef this_offset = lp_build_add(uint_bld, offset, lp_build_const_int_vec(gallivm, uint_bld->type, c)); + overflow_mask = lp_build_compare(gallivm, uint_bld->type, PIPE_FUNC_GEQUAL, + this_offset, num_consts); +- result[c] = build_gather(bld_base, bld_broad, consts_ptr, this_offset, overflow_mask, NULL); ++ result[c] = build_gather(bld_base, bld_broad, bld_broad->elem_type, consts_ptr, this_offset, overflow_mask, NULL); + } + } + } +@@ -2232,14 +2231,14 @@ static void emit_shuffle(struct lp_build_nir_context *bld_base, LLVMValueRef src + */ + src_value = LLVMBuildFreeze(builder, src_value, ""); + +- LLVMValueRef res = LLVMBuildLoad(builder, res_store, ""); ++ LLVMValueRef res = LLVMBuildLoad2(builder, int_bld->vec_type, res_store, ""); + res = LLVMBuildInsertElement(builder, res, src_value, loop_state.counter, ""); + LLVMBuildStore(builder, res, res_store); + + lp_build_loop_end_cond(&loop_state, lp_build_const_int32(gallivm, bld_base->uint_bld.type.length), + NULL, LLVMIntUGE); + +- result[0] = LLVMBuildLoad(builder, res_store, ""); ++ result[0] = LLVMBuildLoad2(builder, int_bld->vec_type, res_store, ""); + } + } + #endif +@@ -2653,7 +2652,8 @@ emit_clock(struct lp_build_nir_context *bld_base, + + lp_init_clock_hook(gallivm); + +- LLVMValueRef result = LLVMBuildCall(builder, gallivm->get_time_hook, NULL, 0, ""); ++ LLVMTypeRef get_time_type = LLVMFunctionType(LLVMInt64TypeInContext(gallivm->context), NULL, 0, 1); ++ LLVMValueRef result = LLVMBuildCall2(builder, get_time_type, gallivm->get_time_hook, NULL, 0, ""); + + LLVMValueRef hi = LLVMBuildShl(builder, result, lp_build_const_int64(gallivm, 32), ""); + hi = LLVMBuildTrunc(builder, hi, uint_bld->elem_type, ""); +-- +GitLab + + +From 1b8c4931df9d0ec55fc80dc280f27c40c9a2b781 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 16 Aug 2022 22:55:47 +0300 +Subject: [PATCH 6/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_jit_types.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + .../auxiliary/gallivm/lp_bld_jit_types.c | 41 ++++++++----------- + 1 file changed, 17 insertions(+), 24 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +index c4bfa2be899ce..7af92824a5a43 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +@@ -70,35 +70,28 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + indices[1] = LLVMBuildSelect(gallivm->builder, cond, buffers_offset, lp_build_const_int32(gallivm, 0), ""); + indices[2] = lp_build_const_int32(gallivm, member_index); + +- LLVMValueRef ptr = +- LLVMBuildGEP(builder, buffers_ptr, indices, ARRAY_SIZE(indices), ""); ++ LLVMTypeRef buffer_type = lp_build_create_jit_buffer_type(gallivm); ++ LLVMTypeRef buffers_type = LLVMArrayType(buffer_type, LP_MAX_TGSI_CONST_BUFFERS); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, buffers_type, buffers_ptr, indices, ARRAY_SIZE(indices), ""); + +- LLVMValueRef res = LLVMBuildLoad(builder, ptr, ""); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(buffer_type, member_index); ++ LLVMValueRef res = LLVMBuildLoad2(builder, res_type, ptr, ""); + + lp_build_name(res, "buffer.%s", member_name); + + return res; + } + +-/** +- * Helper macro to instantiate the functions that generate the code to +- * fetch the members of lp_jit_buffer to fulfill the sampler code +- * generator requests. +- * +- * This complexity is the price we have to pay to keep the image +- * sampler code generator a reusable module without dependencies to +- * llvmpipe internals. +- */ +-#define LP_LLVM_BUFFER_MEMBER(_name, _index) \ +- LLVMValueRef \ +- lp_llvm_buffer_##_name(struct gallivm_state *gallivm, \ +- LLVMValueRef buffers_ptr, \ +- LLVMValueRef buffers_offset, unsigned buffers_limit) \ +- { \ +- return lp_llvm_buffer_member(gallivm, buffers_ptr, \ +- buffers_offset, buffers_limit, \ +- _index, #_name); \ +- } ++LLVMValueRef ++lp_llvm_buffer_base(struct gallivm_state *gallivm, ++ LLVMValueRef buffers_ptr, LLVMValueRef buffers_offset, unsigned buffers_limit) ++{ ++ return lp_llvm_buffer_member(gallivm, buffers_ptr, buffers_offset, buffers_limit, LP_JIT_BUFFER_BASE, "base"); ++} + +-LP_LLVM_BUFFER_MEMBER(base, LP_JIT_BUFFER_BASE) +-LP_LLVM_BUFFER_MEMBER(num_elements, LP_JIT_BUFFER_NUM_ELEMENTS) ++LLVMValueRef ++lp_llvm_buffer_num_elements(struct gallivm_state *gallivm, ++ LLVMValueRef buffers_ptr, LLVMValueRef buffers_offset, unsigned buffers_limit) ++{ ++ return lp_llvm_buffer_member(gallivm, buffers_ptr, buffers_offset, buffers_limit, LP_JIT_BUFFER_NUM_ELEMENTS, "num_elements"); ++} +-- +GitLab + + +From 02b9a8ba12e62cfa40b62af5a338bb9e670de12b Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Sat, 20 Aug 2022 13:50:04 +0300 +Subject: [PATCH 7/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_format_s3tc.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c | 9 ++++----- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 2 ++ + src/gallium/auxiliary/gallivm/lp_bld_struct.h | 2 ++ + 3 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +index fe44841528cb0..4ea40d14f8cac 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c +@@ -1197,12 +1197,11 @@ s3tc_update_cache_access(struct gallivm_state *gallivm, + + assert(index == LP_BUILD_FORMAT_CACHE_MEMBER_ACCESS_TOTAL || + index == LP_BUILD_FORMAT_CACHE_MEMBER_ACCESS_MISS); +- +- member_ptr = lp_build_struct_get_ptr(gallivm, ptr, index, ""); +- cache_access = LLVMBuildLoad(builder, member_ptr, "cache_access"); ++ LLVMTypeRef cache_type = lp_build_format_cache_type(gallivm); ++ member_ptr = lp_build_struct_get_ptr2(gallivm, cache_type, ptr, index, ""); ++ cache_access = LLVMBuildLoad2(builder, LLVMInt64TypeInContext(gallivm->context), member_ptr, "cache_access"); + cache_access = LLVMBuildAdd(builder, cache_access, +- LLVMConstInt(LLVMInt64TypeInContext(gallivm->context), +- count, 0), ""); ++ LLVMConstInt(LLVMInt64TypeInContext(gallivm->context), count, 0), ""); + LLVMBuildStore(builder, cache_access, member_ptr); + } + #endif +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 9e3e24cd9e1e7..4259ecfa0d453 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -42,6 +42,7 @@ + #include "lp_bld_struct.h" + + ++/* Deprecated (used only by llvmpipe); use lp_build_struct_get_ptr2() instead. */ + LLVMValueRef + lp_build_struct_get_ptr(struct gallivm_state *gallivm, + LLVMValueRef ptr, +@@ -60,6 +61,7 @@ lp_build_struct_get_ptr(struct gallivm_state *gallivm, + return member_ptr; + } + ++/* Deprecated (used only by llvmpipe); use lp_build_struct_get2() instead. */ + LLVMValueRef + lp_build_struct_get(struct gallivm_state *gallivm, + LLVMValueRef ptr, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.h b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +index a87519883b4df..4b1cc79b2aa48 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +@@ -55,6 +55,7 @@ + + /** + * Get value pointer to a structure member. ++ * Deprecated (used only by llvmpipe); use lp_build_struct_get_ptr2() instead. + */ + LLVMValueRef + lp_build_struct_get_ptr(struct gallivm_state *gallivm, +@@ -64,6 +65,7 @@ lp_build_struct_get_ptr(struct gallivm_state *gallivm, + + /** + * Get the value of a structure member. ++ * Deprecated (used only by llvmpipe); use lp_build_struct_get2() instead. + */ + LLVMValueRef + lp_build_struct_get(struct gallivm_state *gallivm, +-- +GitLab + + +From 4ff7e64e81c0b4acb39c841b6d8da7ebc8bdd6dd Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Mon, 22 Aug 2022 16:34:30 +0300 +Subject: [PATCH 8/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_struct.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 4259ecfa0d453..fa25b4ac3124a 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -109,7 +109,8 @@ lp_build_struct_get2(struct gallivm_state *gallivm, + assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); + assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); + member_ptr = lp_build_struct_get_ptr2(gallivm, ptr_type, ptr, member, name); +- res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); ++ LLVMTypeRef member_type = LLVMStructGetTypeAtIndex(ptr_type, member); ++ res = LLVMBuildLoad2(gallivm->builder, member_type, member_ptr, ""); + lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); + return res; + } +-- +GitLab + + +From 136a26f271b5b846f3808f917267b79d0460e71a Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Wed, 24 Aug 2022 14:22:07 +0300 +Subject: [PATCH 9/9] gallivm: fixes for LLVM-15 opaque pointers in + lp_bld_format_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18334> +--- + src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +index 6cda6036b37c8..784b8dc66946f 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +@@ -1099,7 +1099,7 @@ lp_build_store_rgba_soa(struct gallivm_state *gallivm, + struct lp_build_loop_state loop_state; + + LLVMValueRef store_offset = LLVMBuildAdd(gallivm->builder, offset, lp_build_const_int_vec(gallivm, type, i * 4), ""); +- store_offset = LLVMBuildGEP(gallivm->builder, base_ptr, &store_offset, 1, ""); ++ store_offset = LLVMBuildGEP2(gallivm->builder, LLVMInt8TypeInContext(gallivm->context), base_ptr, &store_offset, 1, ""); + + lp_build_loop_begin(&loop_state, gallivm, lp_build_const_int32(gallivm, 0)); + +-- +GitLab + +From 1d741f4c62af71af860eaab35e16633b5d6428ed Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Wed, 31 Aug 2022 15:38:52 +0300 +Subject: [PATCH 1/3] gallivm: LLVM opaque pointer fixes in lp_bld_sample.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +load_mip() + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18721> +--- + src/gallium/auxiliary/gallivm/lp_bld_sample.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +index 5ab732ab765d1..181a6f4e08ff1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +@@ -1175,7 +1175,7 @@ load_mip(struct gallivm_state *gallivm, LLVMValueRef offsets, LLVMValueRef index + LLVMValueRef zero = lp_build_const_int32(gallivm, 0); + LLVMValueRef indexes[2] = {zero, index1}; + LLVMValueRef ptr = LLVMBuildGEP(gallivm->builder, offsets, indexes, ARRAY_SIZE(indexes), ""); +- return LLVMBuildLoad(gallivm->builder, ptr, ""); ++ return LLVMBuildLoad2(gallivm->builder, LLVMInt32TypeInContext(gallivm->context), ptr, ""); + } + + /** +-- +GitLab + + +From cdd7e8f5cecf137a33430f41f48ae671a52561b6 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 6 Sep 2022 18:57:42 +0300 +Subject: [PATCH 2/3] gallivm: LLVM opaque pointers: add + lp_build_array_get[_ptr]2 in lp_bld_struct.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +i.e. variants taking an explicit LLVM type + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18721> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 39 +++++++++++++++++++ + src/gallium/auxiliary/gallivm/lp_bld_struct.h | 12 ++++++ + 2 files changed, 51 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index fa25b4ac3124a..408ac17e246ea 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -115,6 +115,45 @@ lp_build_struct_get2(struct gallivm_state *gallivm, + return res; + } + ++LLVMValueRef ++lp_build_array_get_ptr2(struct gallivm_state *gallivm, ++ LLVMTypeRef array_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index) ++{ ++ LLVMValueRef indices[2]; ++ LLVMValueRef element_ptr; ++ assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); ++ indices[0] = lp_build_const_int32(gallivm, 0); ++ indices[1] = index; ++ element_ptr = LLVMBuildGEP2(gallivm->builder, array_type, ptr, indices, ARRAY_SIZE(indices), ""); ++#ifdef DEBUG ++ lp_build_name(element_ptr, "&%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); ++#endif ++ return element_ptr; ++} ++ ++ ++LLVMValueRef ++lp_build_array_get2(struct gallivm_state *gallivm, ++ LLVMTypeRef array_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index) ++{ ++ LLVMValueRef element_ptr; ++ LLVMValueRef res; ++ assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++ assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); ++ element_ptr = lp_build_array_get_ptr2(gallivm, array_type, ptr, index); ++ LLVMTypeRef element_type = LLVMGetElementType(array_type); ++ res = LLVMBuildLoad2(gallivm->builder, element_type, element_ptr, ""); ++#ifdef DEBUG ++ lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); ++#endif ++ return res; ++} ++ + LLVMValueRef + lp_build_array_get_ptr(struct gallivm_state *gallivm, + LLVMValueRef ptr, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.h b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +index 4b1cc79b2aa48..d90bdf48d321b 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +@@ -95,6 +95,18 @@ lp_build_struct_get2(struct gallivm_state *gallivm, + unsigned member, + const char *name); + ++LLVMValueRef ++lp_build_array_get_ptr2(struct gallivm_state *gallivm, ++ LLVMTypeRef array_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index); ++ ++LLVMValueRef ++lp_build_array_get2(struct gallivm_state *gallivm, ++ LLVMTypeRef array_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index); ++ + /** + * Get value pointer to an array element. + */ +-- +GitLab + + +From 15e78caf8d38e97183aba6bce65b1bef34869537 Mon Sep 17 00:00:00 2001 +From: Mihai Preda <mhpreda@gmail.com> +Date: Tue, 6 Sep 2022 19:00:30 +0300 +Subject: [PATCH 3/3] gallivm: LLVM opaque pointers: use + lp_build_array_get_ptr2() in lp_bld_nir_soa.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18721> +--- + src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +index 6128f90ee16f4..5e1a987049db7 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +@@ -708,9 +708,12 @@ static LLVMValueRef emit_load_reg(struct lp_build_nir_context *bld_base, + vals[i] = build_gather(bld_base, reg_bld, reg_bld->elem_type, reg_storage, indirect_offset, NULL, NULL); + } + } else { ++ LLVMTypeRef array_type = LLVMArrayType(reg_bld->vec_type, nc); + for (unsigned i = 0; i < nc; i++) { +- LLVMValueRef this_storage = nc == 1 ? reg_storage : lp_build_array_get_ptr(gallivm, reg_storage, +- lp_build_const_int32(gallivm, i)); ++ LLVMValueRef index = lp_build_const_int32(gallivm, i); ++ LLVMValueRef this_storage = ++ nc == 1 ? reg_storage ++ : lp_build_array_get_ptr2(gallivm, array_type, reg_storage, index); + vals[i] = LLVMBuildLoad2(builder, reg_bld->vec_type, this_storage, ""); + } + } +@@ -748,9 +751,12 @@ static void emit_store_reg(struct lp_build_nir_context *bld_base, + return; + } + ++ LLVMTypeRef array_type = LLVMArrayType(reg_bld->vec_type, nc); + for (unsigned i = 0; i < nc; i++) { +- LLVMValueRef this_storage = nc == 1 ? reg_storage : lp_build_array_get_ptr(gallivm, reg_storage, +- lp_build_const_int32(gallivm, i)); ++ LLVMValueRef index = lp_build_const_int32(gallivm, i); ++ LLVMValueRef this_storage = ++ nc == 1 ? reg_storage ++ : lp_build_array_get_ptr2(gallivm, array_type, reg_storage, index); + dst[i] = LLVMBuildBitCast(builder, dst[i], reg_bld->vec_type, ""); + lp_exec_mask_store(&bld->exec_mask, reg_bld, dst[i], this_storage); + } +-- +GitLab + +From 25ead8ec5c84028d4c58eff0b203b49f0425d812 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 12:16:48 +1000 +Subject: [PATCH] gallivm: fix buffer_type for LLVM 15 + +Fixes +deqp-vk: /home/airlied/devel/llvm-project/llvm/include/llvm/IR/Instructions.h:961: static llvm::GetElementPtrInst* llvm::GetElementPtrInst::Create(llvm::Type*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&, llvm::Instruction*): Assertion `cast<PointerType>(Ptr->getType()->getScalarType()) ->isOpaqueOrPointeeTypeMatches(PointeeType)' failed. + +Fixes: 1b8c4931df9d ("gallivm: fixes for LLVM-15 opaque pointers in lp_bld_jit_types.c") +Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18816> +--- + src/gallium/auxiliary/gallivm/lp_bld_jit_types.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +index 7af92824a5a43..2a4ecf72e711b 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_jit_types.c +@@ -71,7 +71,7 @@ lp_llvm_buffer_member(struct gallivm_state *gallivm, + indices[2] = lp_build_const_int32(gallivm, member_index); + + LLVMTypeRef buffer_type = lp_build_create_jit_buffer_type(gallivm); +- LLVMTypeRef buffers_type = LLVMArrayType(buffer_type, LP_MAX_TGSI_CONST_BUFFERS); ++ LLVMTypeRef buffers_type = LLVMArrayType(buffer_type, buffers_limit); + LLVMValueRef ptr = LLVMBuildGEP2(builder, buffers_type, buffers_ptr, indices, ARRAY_SIZE(indices), ""); + + LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(buffer_type, member_index); +-- +GitLab + +From d132625eed474d149ed6372dd5448492675b738e Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Tue, 27 Sep 2022 05:15:26 +1000 +Subject: [PATCH 1/3] lavapipe: add fmin/fmax to image lowering. + +Fixes: 31695f81c925 ("lavapipe: export VK_KHR_shader_atomic_float") + +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835> +--- + src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c b/src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c +index ff7a38bd5e208..16a1567a6ae1b 100644 +--- a/src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c ++++ b/src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c +@@ -50,6 +50,8 @@ lower_vulkan_resource_index(const nir_instr *instr, const void *data_cb) + case nir_intrinsic_image_deref_atomic_exchange: + case nir_intrinsic_image_deref_atomic_comp_swap: + case nir_intrinsic_image_deref_atomic_fadd: ++ case nir_intrinsic_image_deref_atomic_fmin: ++ case nir_intrinsic_image_deref_atomic_fmax: + case nir_intrinsic_image_deref_size: + case nir_intrinsic_image_deref_samples: + return true; +@@ -339,6 +341,8 @@ static nir_ssa_def *lower_vri_instr(struct nir_builder *b, + case nir_intrinsic_image_deref_atomic_exchange: + case nir_intrinsic_image_deref_atomic_comp_swap: + case nir_intrinsic_image_deref_atomic_fadd: ++ case nir_intrinsic_image_deref_atomic_fmin: ++ case nir_intrinsic_image_deref_atomic_fmax: + case nir_intrinsic_image_deref_size: + case nir_intrinsic_image_deref_samples: + lower_image_intrinsic(b, intrin, data_cb); +-- +GitLab + + +From c642fa122ccd90b11ad54dd50e398373069ae8c7 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Tue, 27 Sep 2022 05:17:39 +1000 +Subject: [PATCH 2/3] gallivm/nir: fix fmin/fmax translation + +Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support") + +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835> +--- + src/gallium/auxiliary/gallivm/lp_bld_nir.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c +index 8d71fb304a4a8..4afeebfd06ad1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c +@@ -1738,10 +1738,10 @@ visit_atomic_image(struct lp_build_nir_context *bld_base, + break; + #if LLVM_VERSION >= 15 + case nir_intrinsic_image_atomic_fmin: +- params.op = LLVMAtomicRMWBinOpMin; ++ params.op = LLVMAtomicRMWBinOpFMin; + break; + case nir_intrinsic_image_atomic_fmax: +- params.op = LLVMAtomicRMWBinOpMax; ++ params.op = LLVMAtomicRMWBinOpFMax; + break; + #endif + default: +-- +GitLab + + +From f2922126156b9bc9fd10bfd3690e7ed3db08184f Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Tue, 27 Sep 2022 15:26:42 +1000 +Subject: [PATCH 3/3] gallivm/nir: bitcast when non-float ptr type. + +This matters more when opaque pointers are used. + +Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support") + +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835> +--- + src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +index 5e1a987049db7..b5e401f6132a1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +@@ -1224,7 +1224,7 @@ mem_access_base_pointer(struct lp_build_nir_context *bld_base, + } + + /* Cast it to the pointer type of the access this instruction is doing. */ +- if (bit_size == 32) ++ if (bit_size == 32 && !mem_bld->type.floating) + return ptr; + else + return LLVMBuildBitCast(gallivm->builder, ptr, LLVMPointerType(mem_bld->elem_type, 0), ""); +-- +GitLab + +From b36160689f430e0845940fb0c3dac9ba22c6608b Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 13:47:15 +1000 +Subject: [PATCH 01/10] gallivm/struct: add opaque ptr friendly pointer + accessors. + +These just add explicit types. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 29 +++++++++++++++++++ + src/gallium/auxiliary/gallivm/lp_bld_struct.h | 24 +++++++++++++++ + 2 files changed, 53 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 408ac17e246ea..73c32cebadfb6 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -234,6 +234,35 @@ lp_build_pointer_get_unaligned(LLVMBuilderRef builder, + return res; + } + ++LLVMValueRef ++lp_build_pointer_get_unaligned2(LLVMBuilderRef builder, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index, ++ unsigned alignment) ++{ ++ LLVMValueRef element_ptr; ++ LLVMValueRef res; ++ assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); ++ element_ptr = LLVMBuildGEP2(builder, ptr_type, ptr, &index, 1, ""); ++ res = LLVMBuildLoad2(builder, ptr_type, element_ptr, ""); ++ if (alignment) ++ LLVMSetAlignment(res, alignment); ++#ifdef DEBUG ++ lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); ++#endif ++ return res; ++} ++ ++ ++LLVMValueRef ++lp_build_pointer_get2(LLVMBuilderRef builder, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index) ++{ ++ return lp_build_pointer_get_unaligned2(builder, ptr_type, ptr, index, 0); ++} + + void + lp_build_pointer_set(LLVMBuilderRef builder, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.h b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +index d90bdf48d321b..52d6020563bfb 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +@@ -152,6 +152,30 @@ lp_build_pointer_get_unaligned(LLVMBuilderRef builder, + LLVMValueRef index, + unsigned alignment); + ++/** ++ * Get the value of an array element. ++ * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. ++ */ ++LLVMValueRef ++lp_build_pointer_get2(LLVMBuilderRef builder, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index); ++ ++/** ++ * Get the value of an array element, with explicit alignment, and explicit type, ++ * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. ++ * ++ * If the element size is different from the alignment this will ++ * cause llvm to emit an unaligned load ++ */ ++LLVMValueRef ++lp_build_pointer_get_unaligned2(LLVMBuilderRef builder, ++ LLVMTypeRef ptr_type, ++ LLVMValueRef ptr, ++ LLVMValueRef index, ++ unsigned alignment); ++ + /** + * Set the value of an array element. + */ +-- +GitLab + + +From 637652a97fab5c20959505f17972f6a0a549ef9f Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 13:55:57 +1000 +Subject: [PATCH 02/10] llvmpipe/fs: add mask_type for mask_store accesses. + +This adds and passes around the type for mask stores. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 32 ++++++++++++---------- + 1 file changed, 17 insertions(+), 15 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 53d933cfb0219..42b07bba4f8bc 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -633,6 +633,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + struct lp_build_interp_soa_context *interp, + const struct lp_build_sampler_soa *sampler, + const struct lp_build_image_soa *image, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + LLVMValueRef (*out_color)[4], + LLVMValueRef depth_base_ptr, +@@ -789,7 +790,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + for (unsigned s = 0; s < key->coverage_samples; s++) { + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, num_loop, lp_build_const_int32(gallivm, s), ""); + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_state.counter, ""); +- LLVMValueRef s_mask = lp_build_pointer_get(builder, mask_store, s_mask_idx); ++ LLVMValueRef s_mask = lp_build_pointer_get2(builder, mask_type, mask_store, s_mask_idx); + if (s == 0) + mask_val = s_mask; + else +@@ -800,9 +801,9 @@ generate_fs_loop(struct gallivm_state *gallivm, + } + } else { + sample_mask_in = lp_build_const_int_vec(gallivm, type, 1); +- mask_ptr = LLVMBuildGEP(builder, mask_store, ++ mask_ptr = LLVMBuildGEP2(builder, mask_type, mask_store, + &loop_state.counter, 1, "mask_ptr"); +- mask_val = LLVMBuildLoad(builder, mask_ptr, ""); ++ mask_val = LLVMBuildLoad2(builder, mask_type, mask_ptr, ""); + + LLVMValueRef mask_in = LLVMBuildAnd(builder, mask_val, lp_build_const_int_vec(gallivm, type, 1), ""); + sample_mask_in = LLVMBuildOr(builder, sample_mask_in, mask_in, ""); +@@ -860,9 +861,9 @@ generate_fs_loop(struct gallivm_state *gallivm, + + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""); + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_state.counter, ""); +- s_mask_ptr = LLVMBuildGEP(builder, mask_store, &s_mask_idx, 1, ""); ++ s_mask_ptr = LLVMBuildGEP2(builder, mask_type, mask_store, &s_mask_idx, 1, ""); + +- s_mask = LLVMBuildLoad(builder, s_mask_ptr, ""); ++ s_mask = LLVMBuildLoad2(builder, mask_type, s_mask_ptr, ""); + s_mask = LLVMBuildAnd(builder, s_mask, mask_val, ""); + } + +@@ -990,8 +991,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""); + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_state.counter, ""); +- s_mask_ptr = LLVMBuildGEP(builder, mask_store, &s_mask_idx, 1, ""); +- s_mask = LLVMBuildLoad(builder, s_mask_ptr, ""); ++ s_mask_ptr = LLVMBuildGEP2(builder, mask_type, mask_store, &s_mask_idx, 1, ""); ++ s_mask = LLVMBuildLoad2(builder, mask_type, s_mask_ptr, ""); + lp_build_mask_force(&mask, s_mask); + lp_build_interp_soa_update_pos_dyn(interp, gallivm, loop_state.counter, sample_loop_state.counter); + system_values.sample_id = sample_loop_state.counter; +@@ -1216,10 +1217,10 @@ generate_fs_loop(struct gallivm_state *gallivm, + /* load the per-sample coverage mask */ + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""); + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_state.counter, ""); +- s_mask_ptr = LLVMBuildGEP(builder, mask_store, &s_mask_idx, 1, ""); ++ s_mask_ptr = LLVMBuildGEP2(builder, mask_type, mask_store, &s_mask_idx, 1, ""); + + /* combine the execution mask post fragment shader with the coverage mask. */ +- s_mask = LLVMBuildLoad(builder, s_mask_ptr, ""); ++ s_mask = LLVMBuildLoad2(builder, mask_type, s_mask_ptr, ""); + if (key->min_samples == 1) + s_mask = LLVMBuildAnd(builder, s_mask, lp_build_mask_value(&mask), ""); + +@@ -3339,8 +3340,8 @@ generate_fragment(struct llvmpipe_context *lp, + LLVMValueRef sindexi = + lp_build_const_int32(gallivm, i + (s * num_fs)); + LLVMValueRef sample_mask_ptr = +- LLVMBuildGEP(builder, mask_store, &sindexi, 1, +- "sample_mask_ptr"); ++ LLVMBuildGEP2(builder, mask_type, mask_store, &sindexi, 1, ++ "sample_mask_ptr"); + LLVMValueRef s_mask = + generate_quad_mask(gallivm, fs_type, + i * fs_type.length / 4, s, mask_input); +@@ -3359,8 +3360,8 @@ generate_fragment(struct llvmpipe_context *lp, + } else { + LLVMValueRef mask; + LLVMValueRef indexi = lp_build_const_int32(gallivm, i); +- LLVMValueRef mask_ptr = LLVMBuildGEP(builder, mask_store, +- &indexi, 1, "mask_ptr"); ++ LLVMValueRef mask_ptr = LLVMBuildGEP2(builder, mask_type, mask_store, ++ &indexi, 1, "mask_ptr"); + + if (partial_mask) { + mask = generate_quad_mask(gallivm, fs_type, +@@ -3383,6 +3384,7 @@ generate_fragment(struct llvmpipe_context *lp, + &interp, + sampler, + image, ++ mask_type, + mask_store, /* output */ + color_store, + depth_ptr, +@@ -3400,9 +3402,9 @@ generate_fragment(struct llvmpipe_context *lp, + for (unsigned s = 0; s < key->coverage_samples; s++) { + int idx = (i + (s * num_fs)); + LLVMValueRef sindexi = lp_build_const_int32(gallivm, idx); +- ptr = LLVMBuildGEP(builder, mask_store, &sindexi, 1, ""); ++ ptr = LLVMBuildGEP2(builder, mask_type, mask_store, &sindexi, 1, ""); + +- fs_mask[idx] = LLVMBuildLoad(builder, ptr, "smask"); ++ fs_mask[idx] = LLVMBuildLoad2(builder, mask_type, ptr, "smask"); + } + + for (unsigned s = 0; s < key->min_samples; s++) { +-- +GitLab + + +From 694104b7761b4fece5b0861fc443a6dc553de5b2 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 17:36:58 +1000 +Subject: [PATCH 03/10] llvmpipe/fs: pass explicit mask_type into interp code. + +This is so it is known for explicit pointer support + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_bld_interp.c | 14 +++++++++----- + src/gallium/drivers/llvmpipe/lp_bld_interp.h | 2 ++ + src/gallium/drivers/llvmpipe/lp_state_fs.c | 7 +++++-- + 3 files changed, 16 insertions(+), 7 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.c b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +index 61d0bfa492fa5..f03da17c4d481 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.c ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +@@ -157,6 +157,7 @@ static void + calc_centroid_offsets(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef loop_iter, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + LLVMValueRef pix_center_offset, + LLVMValueRef *centroid_x, LLVMValueRef *centroid_y) +@@ -171,7 +172,7 @@ calc_centroid_offsets(struct lp_build_interp_soa_context *bld, + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, bld->num_loop, lp_build_const_int32(gallivm, s), ""); + + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_iter, ""); +- sample_cov = lp_build_pointer_get(builder, mask_store, s_mask_idx); ++ sample_cov = lp_build_pointer_get2(builder, mask_type, mask_store, s_mask_idx); + if (s == bld->coverage_samples - 1) + s_mask_and = sample_cov; + else +@@ -284,6 +285,7 @@ static void + attribs_update_simple(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef loop_iter, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + LLVMValueRef sample_id, + int start, +@@ -376,7 +378,7 @@ attribs_update_simple(struct lp_build_interp_soa_context *bld, + xoffset = lp_build_broadcast_scalar(coeff_bld, x_val_idx); + yoffset = lp_build_broadcast_scalar(coeff_bld, y_val_idx); + } else if (loc == TGSI_INTERPOLATE_LOC_CENTROID) { +- calc_centroid_offsets(bld, gallivm, loop_iter, mask_store, ++ calc_centroid_offsets(bld, gallivm, loop_iter, mask_type, mask_store, + pix_center_offset, &xoffset, &yoffset); + } + chan_pixoffx = lp_build_add(coeff_bld, chan_pixoffx, xoffset); +@@ -508,6 +510,7 @@ LLVMValueRef + lp_build_interp_soa(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef loop_iter, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + unsigned attrib, unsigned chan, + enum tgsi_interpolate_loc loc, +@@ -579,7 +582,7 @@ lp_build_interp_soa(struct lp_build_interp_soa_context *bld, + /* for centroid find covered samples for this quad. */ + /* if all samples are covered use pixel centers */ + if (bld->coverage_samples > 1) { +- calc_centroid_offsets(bld, gallivm, loop_iter, mask_store, ++ calc_centroid_offsets(bld, gallivm, loop_iter, mask_type, mask_store, + pix_center_offset, ¢roid_x_offset, + ¢roid_y_offset); + +@@ -793,10 +796,11 @@ void + lp_build_interp_soa_update_inputs_dyn(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef quad_start_index, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + LLVMValueRef sample_id) + { +- attribs_update_simple(bld, gallivm, quad_start_index, mask_store, sample_id, 1, bld->num_attribs); ++ attribs_update_simple(bld, gallivm, quad_start_index, mask_type, mask_store, sample_id, 1, bld->num_attribs); + } + + void +@@ -805,6 +809,6 @@ lp_build_interp_soa_update_pos_dyn(struct lp_build_interp_soa_context *bld, + LLVMValueRef quad_start_index, + LLVMValueRef sample_id) + { +- attribs_update_simple(bld, gallivm, quad_start_index, NULL, sample_id, 0, 1); ++ attribs_update_simple(bld, gallivm, quad_start_index, NULL, NULL, sample_id, 0, 1); + } + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.h b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +index f9c9211cbb8d5..acd5546118471 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.h ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +@@ -138,6 +138,7 @@ void + lp_build_interp_soa_update_inputs_dyn(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef quad_start_index, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + LLVMValueRef sample_id); + +@@ -151,6 +152,7 @@ LLVMValueRef + lp_build_interp_soa(struct lp_build_interp_soa_context *bld, + struct gallivm_state *gallivm, + LLVMValueRef loop_iter, ++ LLVMTypeRef mask_type, + LLVMValueRef mask_store, + unsigned attrib, unsigned chan, + unsigned loc, +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 42b07bba4f8bc..1aef483fd6446 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -434,6 +434,7 @@ struct lp_build_fs_llvm_iface { + struct lp_build_fs_iface base; + struct lp_build_interp_soa_context *interp; + struct lp_build_for_loop_state *loop_state; ++ LLVMTypeRef mask_type; + LLVMValueRef mask_store; + LLVMValueRef sample_id; + LLVMValueRef color_ptr_ptr; +@@ -463,7 +464,7 @@ fs_interp(const struct lp_build_fs_iface *iface, + loc = TGSI_INTERPOLATE_LOC_SAMPLE; + + return lp_build_interp_soa(interp, bld->gallivm, fs_iface->loop_state->counter, +- fs_iface->mask_store, ++ fs_iface->mask_type, fs_iface->mask_store, + attrib, chan, loc, attrib_indir, offsets); + } + +@@ -1005,7 +1006,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + } + system_values.sample_pos = sample_pos_array; + +- lp_build_interp_soa_update_inputs_dyn(interp, gallivm, loop_state.counter, mask_store, sample_loop_state.counter); ++ lp_build_interp_soa_update_inputs_dyn(interp, gallivm, loop_state.counter, ++ mask_type, mask_store, sample_loop_state.counter); + + struct lp_build_fs_llvm_iface fs_iface = { + .base.interp_fn = fs_interp, +@@ -1013,6 +1015,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + .interp = interp, + .loop_state = &loop_state, + .sample_id = system_values.sample_id, ++ .mask_type = mask_type, + .mask_store = mask_store, + .color_ptr_ptr = color_ptr_ptr, + .color_stride_ptr = color_stride_ptr, +-- +GitLab + + +From ff02d042aabd9567e35cf289830bbfd552eaff05 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:15:28 +1000 +Subject: [PATCH 04/10] llvmpipe/fs: port depth code to opaque pointer api + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_bld_depth.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_depth.c b/src/gallium/drivers/llvmpipe/lp_bld_depth.c +index 91bb347e307c3..10bb2d9939266 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_depth.c ++++ b/src/gallium/drivers/llvmpipe/lp_bld_depth.c +@@ -587,8 +587,9 @@ lp_build_depth_stencil_load_swizzled(struct gallivm_state *gallivm, + + /* Load current z/stencil values from z/stencil buffer */ + LLVMTypeRef load_ptr_type = LLVMPointerType(zs_dst_type, 0); ++ LLVMTypeRef int8_type = LLVMInt8TypeInContext(gallivm->context); + LLVMValueRef zs_dst_ptr = +- LLVMBuildGEP(builder, depth_ptr, &depth_offset1, 1, ""); ++ LLVMBuildGEP2(builder, int8_type, depth_ptr, &depth_offset1, 1, ""); + zs_dst_ptr = LLVMBuildBitCast(builder, zs_dst_ptr, load_ptr_type, ""); + LLVMValueRef zs_dst1 = LLVMBuildLoad2(builder, zs_dst_type, zs_dst_ptr, ""); + LLVMValueRef zs_dst2; +@@ -596,7 +597,7 @@ lp_build_depth_stencil_load_swizzled(struct gallivm_state *gallivm, + zs_dst2 = lp_build_undef(gallivm, zs_load_type); + } + else { +- zs_dst_ptr = LLVMBuildGEP(builder, depth_ptr, &depth_offset2, 1, ""); ++ zs_dst_ptr = LLVMBuildGEP2(builder, int8_type, depth_ptr, &depth_offset2, 1, ""); + zs_dst_ptr = LLVMBuildBitCast(builder, zs_dst_ptr, load_ptr_type, ""); + zs_dst2 = LLVMBuildLoad2(builder, zs_dst_type, zs_dst_ptr, ""); + } +@@ -733,9 +734,10 @@ lp_build_depth_stencil_write_swizzled(struct gallivm_state *gallivm, + + depth_offset2 = LLVMBuildAdd(builder, depth_offset1, depth_stride, ""); + +- zs_dst_ptr1 = LLVMBuildGEP(builder, depth_ptr, &depth_offset1, 1, ""); ++ LLVMTypeRef int8_type = LLVMInt8TypeInContext(gallivm->context); ++ zs_dst_ptr1 = LLVMBuildGEP2(builder, int8_type, depth_ptr, &depth_offset1, 1, ""); + zs_dst_ptr1 = LLVMBuildBitCast(builder, zs_dst_ptr1, load_ptr_type, ""); +- zs_dst_ptr2 = LLVMBuildGEP(builder, depth_ptr, &depth_offset2, 1, ""); ++ zs_dst_ptr2 = LLVMBuildGEP2(builder, int8_type, depth_ptr, &depth_offset2, 1, ""); + zs_dst_ptr2 = LLVMBuildBitCast(builder, zs_dst_ptr2, load_ptr_type, ""); + + if (format_desc->block.bits > 32) { +-- +GitLab + + +From e28db68e53c3e265df5dd66c5b6bfe7cfb762f2a Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:17:35 +1000 +Subject: [PATCH 05/10] llvmpipe/fs: add sample position type to the interp + interface + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_bld_interp.c | 20 ++++++++++++++------ + src/gallium/drivers/llvmpipe/lp_bld_interp.h | 2 ++ + src/gallium/drivers/llvmpipe/lp_state_fs.c | 4 +++- + 3 files changed, 19 insertions(+), 7 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.c b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +index f03da17c4d481..f5c4a2105b4d4 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.c ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.c +@@ -181,8 +181,10 @@ calc_centroid_offsets(struct lp_build_interp_soa_context *bld, + LLVMValueRef x_val_idx = lp_build_const_int32(gallivm, s * 2); + LLVMValueRef y_val_idx = lp_build_const_int32(gallivm, s * 2 + 1); + +- x_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, x_val_idx); +- y_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, y_val_idx); ++ x_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, x_val_idx); ++ y_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, y_val_idx); + x_val_idx = lp_build_broadcast_scalar(coeff_bld, x_val_idx); + y_val_idx = lp_build_broadcast_scalar(coeff_bld, y_val_idx); + centroid_x_offset = lp_build_select(coeff_bld, sample_cov, x_val_idx, centroid_x_offset); +@@ -338,7 +340,8 @@ attribs_update_simple(struct lp_build_interp_soa_context *bld, + dadx = coeff_bld->one; + if (sample_id) { + LLVMValueRef x_val_idx = LLVMBuildMul(gallivm->builder, sample_id, lp_build_const_int32(gallivm, 2), ""); +- x_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, x_val_idx); ++ x_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, x_val_idx); + a = lp_build_broadcast_scalar(coeff_bld, x_val_idx); + } else { + a = lp_build_const_vec(gallivm, coeff_bld->type, bld->pos_offset); +@@ -349,7 +352,8 @@ attribs_update_simple(struct lp_build_interp_soa_context *bld, + if (sample_id) { + LLVMValueRef y_val_idx = LLVMBuildMul(gallivm->builder, sample_id, lp_build_const_int32(gallivm, 2), ""); + y_val_idx = LLVMBuildAdd(gallivm->builder, y_val_idx, lp_build_const_int32(gallivm, 1), ""); +- y_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, y_val_idx); ++ y_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, y_val_idx); + a = lp_build_broadcast_scalar(coeff_bld, y_val_idx); + } else { + a = lp_build_const_vec(gallivm, coeff_bld->type, bld->pos_offset); +@@ -373,8 +377,10 @@ attribs_update_simple(struct lp_build_interp_soa_context *bld, + LLVMValueRef x_val_idx = LLVMBuildMul(gallivm->builder, sample_id, lp_build_const_int32(gallivm, 2), ""); + LLVMValueRef y_val_idx = LLVMBuildAdd(gallivm->builder, x_val_idx, lp_build_const_int32(gallivm, 1), ""); + +- x_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, x_val_idx); +- y_val_idx = lp_build_array_get(gallivm, bld->sample_pos_array, y_val_idx); ++ x_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, x_val_idx); ++ y_val_idx = lp_build_array_get2(gallivm, bld->sample_pos_array_type, ++ bld->sample_pos_array, y_val_idx); + xoffset = lp_build_broadcast_scalar(coeff_bld, x_val_idx); + yoffset = lp_build_broadcast_scalar(coeff_bld, y_val_idx); + } else if (loc == TGSI_INTERPOLATE_LOC_CENTROID) { +@@ -678,6 +684,7 @@ lp_build_interp_soa_init(struct lp_build_interp_soa_context *bld, + const struct lp_shader_input *inputs, + boolean pixel_center_integer, + unsigned coverage_samples, ++ LLVMTypeRef sample_pos_array_type, + LLVMValueRef sample_pos_array, + LLVMValueRef num_loop, + LLVMBuilderRef builder, +@@ -750,6 +757,7 @@ lp_build_interp_soa_init(struct lp_build_interp_soa_context *bld, + } + bld->coverage_samples = coverage_samples; + bld->num_loop = num_loop; ++ bld->sample_pos_array_type = sample_pos_array_type; + bld->sample_pos_array = sample_pos_array; + + pos_init(bld, x0, y0); +diff --git a/src/gallium/drivers/llvmpipe/lp_bld_interp.h b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +index acd5546118471..445c8655d4d59 100644 +--- a/src/gallium/drivers/llvmpipe/lp_bld_interp.h ++++ b/src/gallium/drivers/llvmpipe/lp_bld_interp.h +@@ -90,6 +90,7 @@ struct lp_build_interp_soa_context + double pos_offset; + unsigned coverage_samples; + LLVMValueRef num_loop; ++ LLVMTypeRef sample_pos_array_type; + LLVMValueRef sample_pos_array; + + LLVMValueRef x; +@@ -124,6 +125,7 @@ lp_build_interp_soa_init(struct lp_build_interp_soa_context *bld, + const struct lp_shader_input *inputs, + boolean pixel_center_integer, + unsigned coverage_samples, ++ LLVMTypeRef sample_pos_array_type, + LLVMValueRef sample_pos_array, + LLVMValueRef num_loop, + LLVMBuilderRef builder, +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 1aef483fd6446..7e554662bdd8b 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -3319,7 +3319,9 @@ generate_fragment(struct llvmpipe_context *lp, + shader->info.base.num_inputs, + inputs, + pixel_center_integer, +- key->coverage_samples, glob_sample_pos, ++ key->coverage_samples, ++ LLVMTypeOf(sample_pos_array), ++ glob_sample_pos, + num_loop, + builder, fs_type, + a0_ptr, dadx_ptr, dady_ptr, +-- +GitLab + + +From 38907a40ab0848c9fe8d1b7ad6d0f4047fcf6f5b Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:19:44 +1000 +Subject: [PATCH 06/10] llvmpipe/fs: pass mask type to alpha to coverage + handler + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 7e554662bdd8b..9dabfcb4a80f3 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -408,6 +408,7 @@ lp_build_sample_alpha_to_coverage(struct gallivm_state *gallivm, + unsigned coverage_samples, + LLVMValueRef num_loop, + LLVMValueRef loop_counter, ++ LLVMTypeRef coverage_mask_type, + LLVMValueRef coverage_mask_store, + LLVMValueRef alpha) + { +@@ -422,8 +423,9 @@ lp_build_sample_alpha_to_coverage(struct gallivm_state *gallivm, + + LLVMValueRef s_mask_idx = LLVMBuildMul(builder, lp_build_const_int32(gallivm, s), num_loop, ""); + s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_counter, ""); +- LLVMValueRef s_mask_ptr = LLVMBuildGEP(builder, coverage_mask_store, &s_mask_idx, 1, ""); +- LLVMValueRef s_mask = LLVMBuildLoad(builder, s_mask_ptr, ""); ++ LLVMValueRef s_mask_ptr = LLVMBuildGEP2(builder, coverage_mask_type, ++ coverage_mask_store, &s_mask_idx, 1, ""); ++ LLVMValueRef s_mask = LLVMBuildLoad2(builder, coverage_mask_type, s_mask_ptr, ""); + s_mask = LLVMBuildAnd(builder, s_mask, test, ""); + LLVMBuildStore(builder, s_mask, s_mask_ptr); + } +@@ -1089,7 +1091,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + } else { + lp_build_sample_alpha_to_coverage(gallivm, type, key->coverage_samples, num_loop, + loop_state.counter, +- mask_store, alpha); ++ mask_type, mask_store, alpha); + } + } + } +-- +GitLab + + +From 3137f4fad15058cc7d16b2438f44b5e581853be8 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:20:25 +1000 +Subject: [PATCH 07/10] llvmpipe/fs: use explicit api in viewport code. + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 9dabfcb4a80f3..9cbdc9cff037d 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -332,12 +332,13 @@ lp_llvm_viewport(LLVMTypeRef context_type, + LLVMValueRef res; + struct lp_type viewport_type = + lp_type_float_vec(32, 32 * LP_JIT_VIEWPORT_NUM_FIELDS); ++ LLVMTypeRef vtype = lp_build_vec_type(gallivm, viewport_type); + + ptr = lp_jit_context_viewports(gallivm, context_type, context_ptr); + ptr = LLVMBuildPointerCast(builder, ptr, +- LLVMPointerType(lp_build_vec_type(gallivm, viewport_type), 0), ""); ++ LLVMPointerType(vtype, 0), ""); + +- res = lp_build_pointer_get(builder, ptr, viewport_index); ++ res = lp_build_pointer_get2(builder, vtype, ptr, viewport_index); + + return res; + } +-- +GitLab + + +From b9a0ec0c67741cb4b1d2c0d44f747aabe28018e3 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:24:44 +1000 +Subject: [PATCH 08/10] llvmpipe/fs: handle explicit types around blending and + c/zs bufs calcs + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 132 +++++++++++++-------- + 1 file changed, 80 insertions(+), 52 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 9cbdc9cff037d..900d2c1e63c3b 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -117,6 +117,7 @@ static unsigned fs_no = 0; + + static void + load_unswizzled_block(struct gallivm_state *gallivm, ++ LLVMTypeRef base_type, + LLVMValueRef base_ptr, + LLVMValueRef stride, + unsigned block_width, +@@ -507,6 +508,9 @@ fs_fb_fetch(const struct lp_build_fs_iface *iface, + struct lp_build_fs_llvm_iface *fs_iface = (struct lp_build_fs_llvm_iface *)iface; + struct gallivm_state *gallivm = bld->gallivm; + LLVMBuilderRef builder = gallivm->builder; ++ LLVMTypeRef int32_type = LLVMInt32TypeInContext(gallivm->context); ++ LLVMTypeRef int8_type = LLVMInt8TypeInContext(gallivm->context); ++ LLVMTypeRef int8p_type = LLVMPointerType(int8_type, 0); + const struct lp_fragment_shader_variant_key *key = fs_iface->key; + + LLVMValueRef buf_ptr; +@@ -524,8 +528,12 @@ fs_fb_fetch(const struct lp_build_fs_iface *iface, + const int cbuf = location - FRAG_RESULT_DATA0; + LLVMValueRef index = lp_build_const_int32(gallivm, cbuf); + +- buf_ptr = LLVMBuildLoad(builder, LLVMBuildGEP(builder, fs_iface->color_ptr_ptr, &index, 1, ""), ""); +- stride = LLVMBuildLoad(builder, LLVMBuildGEP(builder, fs_iface->color_stride_ptr, &index, 1, ""), ""); ++ buf_ptr = LLVMBuildLoad2(builder, int8p_type, ++ LLVMBuildGEP2(builder, int8p_type, ++ fs_iface->color_ptr_ptr, &index, 1, ""), ""); ++ stride = LLVMBuildLoad2(builder, int32_type, ++ LLVMBuildGEP2(builder, int32_type, ++ fs_iface->color_stride_ptr, &index, 1, ""), ""); + buf_format = key->cbuf_format[cbuf]; + } + +@@ -546,13 +554,16 @@ fs_fb_fetch(const struct lp_build_fs_iface *iface, + sample_stride = fs_iface->zs_sample_stride; + } else { + LLVMValueRef index = lp_build_const_int32(gallivm, location - FRAG_RESULT_DATA0); +- sample_stride = LLVMBuildLoad(builder, +- LLVMBuildGEP(builder, fs_iface->color_sample_stride_ptr, +- &index, 1, ""), ""); ++ sample_stride = LLVMBuildLoad2(builder, int32_type, ++ LLVMBuildGEP2(builder, ++ int32_type, ++ fs_iface->color_sample_stride_ptr, ++ &index, 1, ""), ""); + } + + LLVMValueRef sample_offset = LLVMBuildMul(builder, sample_stride, fs_iface->sample_id, ""); +- buf_ptr = LLVMBuildGEP(builder, buf_ptr, &sample_offset, 1, ""); ++ buf_ptr = LLVMBuildGEP2(builder, int8_type, ++ buf_ptr, &sample_offset, 1, ""); + } + + /* fragment shader executes on 4x4 blocks. depending on vector width it can +@@ -883,7 +894,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + LLVMValueRef sample_offset = + LLVMBuildMul(builder, sample_loop_state.counter, + depth_sample_stride, ""); +- depth_ptr = LLVMBuildGEP(builder, depth_ptr, &sample_offset, 1, ""); ++ depth_ptr = LLVMBuildGEP2(builder, LLVMInt8TypeInContext(gallivm->context), ++ depth_ptr, &sample_offset, 1, ""); + } + + if (depth_mode & EARLY_DEPTH_TEST) { +@@ -1248,7 +1260,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + depth_ptr = depth_base_ptr; + if (key->multisample) { + LLVMValueRef sample_offset = LLVMBuildMul(builder, sample_loop_state.counter, depth_sample_stride, ""); +- depth_ptr = LLVMBuildGEP(builder, depth_ptr, &sample_offset, 1, ""); ++ depth_ptr = LLVMBuildGEP2(builder, LLVMInt8TypeInContext(gallivm->context), ++ depth_ptr, &sample_offset, 1, ""); + } + + /* Late Z test */ +@@ -1258,8 +1271,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + if (key->min_samples > 1) + idx = LLVMBuildAdd(builder, idx, + LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""), ""); +- LLVMValueRef ptr = LLVMBuildGEP(builder, z_out, &idx, 1, ""); +- z = LLVMBuildLoad(builder, ptr, "output.z"); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, vec_type, z_out, &idx, 1, ""); ++ z = LLVMBuildLoad2(builder, vec_type, ptr, "output.z"); + } else { + if (key->multisample) { + lp_build_interp_soa_update_pos_dyn(interp, gallivm, loop_state.counter, key->multisample ? sample_loop_state.counter : NULL); +@@ -1280,8 +1293,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + if (key->min_samples > 1) + idx = LLVMBuildAdd(builder, idx, + LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""), ""); +- LLVMValueRef ptr = LLVMBuildGEP(builder, s_out, &idx, 1, ""); +- stencil_refs[0] = LLVMBuildLoad(builder, ptr, "output.s"); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, vec_type, s_out, &idx, 1, ""); ++ stencil_refs[0] = LLVMBuildLoad2(builder, vec_type, ptr, "output.s"); + /* there's only one value, and spec says to discard additional bits */ + LLVMValueRef s_max_mask = lp_build_const_int_vec(gallivm, int_type, 255); + stencil_refs[0] = LLVMBuildBitCast(builder, stencil_refs[0], int_vec_type, ""); +@@ -1322,10 +1335,10 @@ generate_fs_loop(struct gallivm_state *gallivm, + * write that out. + */ + if (key->multisample) { +- z_value = LLVMBuildBitCast(builder, lp_build_pointer_get(builder, z_sample_value_store, sample_loop_state.counter), z_type, "");; +- s_value = lp_build_pointer_get(builder, s_sample_value_store, sample_loop_state.counter); +- z_fb = LLVMBuildBitCast(builder, lp_build_pointer_get(builder, z_fb_store, sample_loop_state.counter), z_fb_type, ""); +- s_fb = lp_build_pointer_get(builder, s_fb_store, sample_loop_state.counter); ++ z_value = LLVMBuildBitCast(builder, lp_build_pointer_get2(builder, int_vec_type, z_sample_value_store, sample_loop_state.counter), z_type, ""); ++ s_value = lp_build_pointer_get2(builder, int_vec_type, s_sample_value_store, sample_loop_state.counter); ++ z_fb = LLVMBuildBitCast(builder, lp_build_pointer_get2(builder, int_vec_type, z_fb_store, sample_loop_state.counter), z_fb_type, ""); ++ s_fb = lp_build_pointer_get2(builder, int_vec_type, s_fb_store, sample_loop_state.counter); + } + lp_build_depth_stencil_write_swizzled(gallivm, type, + zs_format_desc, key->resource_1d, +@@ -1604,6 +1617,7 @@ fs_twiddle_transpose(struct gallivm_state *gallivm, + */ + static void + load_unswizzled_block(struct gallivm_state *gallivm, ++ LLVMTypeRef base_type, + LLVMValueRef base_ptr, + LLVMValueRef stride, + unsigned block_width, +@@ -1632,11 +1646,13 @@ load_unswizzled_block(struct gallivm_state *gallivm, + gep[0] = lp_build_const_int32(gallivm, 0); + gep[1] = LLVMBuildAdd(builder, bx, by, ""); + +- dst_ptr = LLVMBuildGEP(builder, base_ptr, gep, 2, ""); ++ dst_ptr = LLVMBuildGEP2(builder, base_type, base_ptr, gep, 2, ""); + dst_ptr = LLVMBuildBitCast(builder, dst_ptr, + LLVMPointerType(lp_build_vec_type(gallivm, dst_type), 0), ""); + +- dst[i] = LLVMBuildLoad(builder, dst_ptr, ""); ++ dst[i] = LLVMBuildLoad2(builder, ++ lp_build_vec_type(gallivm, dst_type), ++ dst_ptr, ""); + + LLVMSetAlignment(dst[i], dst_alignment); + } +@@ -1648,6 +1664,7 @@ load_unswizzled_block(struct gallivm_state *gallivm, + */ + static void + store_unswizzled_block(struct gallivm_state *gallivm, ++ LLVMTypeRef base_type, + LLVMValueRef base_ptr, + LLVMValueRef stride, + unsigned block_width, +@@ -1676,7 +1693,7 @@ store_unswizzled_block(struct gallivm_state *gallivm, + gep[0] = lp_build_const_int32(gallivm, 0); + gep[1] = LLVMBuildAdd(builder, bx, by, ""); + +- src_ptr = LLVMBuildGEP(builder, base_ptr, gep, 2, ""); ++ src_ptr = LLVMBuildGEP2(builder, base_type, base_ptr, gep, 2, ""); + src_ptr = LLVMBuildBitCast(builder, src_ptr, + LLVMPointerType(lp_build_vec_type(gallivm, src_type), 0), ""); + +@@ -2377,6 +2394,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + LLVMValueRef fs_out_color[PIPE_MAX_COLOR_BUFS][TGSI_NUM_CHANNELS][4], + LLVMTypeRef context_type, + LLVMValueRef context_ptr, ++ LLVMTypeRef color_type, + LLVMValueRef color_ptr, + LLVMValueRef stride, + unsigned partial_mask, +@@ -2431,6 +2449,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + unsigned num_fullblock_fs = is_1d ? 2 * num_fs : num_fs; + LLVMValueRef fpstate = 0; + ++ LLVMTypeRef fs_vec_type = lp_build_vec_type(gallivm, fs_type); ++ + /* Get type from output format */ + lp_blend_type_from_format_desc(out_format_desc, &row_type); + lp_mem_type_from_format_desc(out_format_desc, &dst_type); +@@ -2550,7 +2570,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + /* Always load alpha for use in blending */ + LLVMValueRef alpha; + if (i < num_fs) { +- alpha = LLVMBuildLoad(builder, fs_out_color[rt][alpha_channel][i], ""); ++ alpha = LLVMBuildLoad2(builder, fs_vec_type, ++ fs_out_color[rt][alpha_channel][i], ""); + } else { + alpha = undef_src_val; + } +@@ -2559,8 +2580,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + for (unsigned j = 0; j < dst_channels; ++j) { + assert(swizzle[j] < 4); + if (i < num_fs) { +- fs_src[i][j] = LLVMBuildLoad(builder, +- fs_out_color[rt][swizzle[j]][i], ""); ++ fs_src[i][j] = LLVMBuildLoad2(builder, fs_vec_type, ++ fs_out_color[rt][swizzle[j]][i], ""); + } else { + fs_src[i][j] = undef_src_val; + } +@@ -2599,7 +2620,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + for (unsigned i = 0; i < num_fullblock_fs; ++i) { + LLVMValueRef alpha; + if (i < num_fs) { +- alpha = LLVMBuildLoad(builder, fs_out_color[1][alpha_channel][i], ""); ++ alpha = LLVMBuildLoad2(builder, fs_vec_type, ++ fs_out_color[1][alpha_channel][i], ""); + } else { + alpha = undef_src_val; + } +@@ -2607,7 +2629,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + for (unsigned j = 0; j < dst_channels; ++j) { + assert(swizzle[j] < 4); + if (i < num_fs) { +- fs_src1[i][j] = LLVMBuildLoad(builder, fs_out_color[1][swizzle[j]][i], ""); ++ fs_src1[i][j] = LLVMBuildLoad2(builder, fs_vec_type, ++ fs_out_color[1][swizzle[j]][i], ""); + } else { + fs_src1[i][j] = undef_src_val; + } +@@ -2632,14 +2655,15 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + */ + fs_type.floating = 0; + fs_type.sign = dst_type.sign; ++ fs_vec_type = lp_build_vec_type(gallivm, fs_type); + for (unsigned i = 0; i < num_fullblock_fs; ++i) { + for (unsigned j = 0; j < dst_channels; ++j) { + fs_src[i][j] = LLVMBuildBitCast(builder, fs_src[i][j], +- lp_build_vec_type(gallivm, fs_type), ""); ++ fs_vec_type, ""); + } + if (dst_channels == 3 && !has_alpha) { + fs_src[i][3] = LLVMBuildBitCast(builder, fs_src[i][3], +- lp_build_vec_type(gallivm, fs_type), ""); ++ fs_vec_type, ""); + } + } + } +@@ -2690,6 +2714,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + unsigned ds = src_count / (num_fullblock_fs * src_channels); + row_type.length /= ds; + fs_type.length = row_type.length; ++ fs_vec_type = lp_build_vec_type(gallivm, fs_type); + } + + blend_type = row_type; +@@ -2740,9 +2765,9 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + */ + blend_color = lp_jit_context_f_blend_color(gallivm, context_type, context_ptr); + blend_color = LLVMBuildPointerCast(builder, blend_color, +- LLVMPointerType(lp_build_vec_type(gallivm, fs_type), 0), ++ LLVMPointerType(fs_vec_type, 0), + ""); +- blend_color = LLVMBuildLoad(builder, LLVMBuildGEP(builder, blend_color, ++ blend_color = LLVMBuildLoad2(builder, fs_vec_type, LLVMBuildGEP2(builder, fs_vec_type, blend_color, + &i32_zero, 1, ""), ""); + + /* Convert */ +@@ -2932,13 +2957,13 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + } + + if (is_1d) { +- load_unswizzled_block(gallivm, color_ptr, stride, block_width, 1, ++ load_unswizzled_block(gallivm, color_type, color_ptr, stride, block_width, 1, + dst, ls_type, dst_count / 4, dst_alignment); + for (unsigned i = dst_count / 4; i < dst_count; i++) { + dst[i] = lp_build_undef(gallivm, ls_type); + } + } else { +- load_unswizzled_block(gallivm, color_ptr, stride, block_width, ++ load_unswizzled_block(gallivm, color_type, color_ptr, stride, block_width, + block_height, dst, ls_type, dst_count, + dst_alignment); + } +@@ -3047,10 +3072,10 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, + * Store blend result to memory + */ + if (is_1d) { +- store_unswizzled_block(gallivm, color_ptr, stride, block_width, 1, ++ store_unswizzled_block(gallivm, color_type, color_ptr, stride, block_width, 1, + dst, dst_type, dst_count / 4, dst_alignment); + } else { +- store_unswizzled_block(gallivm, color_ptr, stride, block_width, ++ store_unswizzled_block(gallivm, color_type, color_ptr, stride, block_width, + block_height, + dst, dst_type, dst_count, dst_alignment); + } +@@ -3089,6 +3114,7 @@ generate_fragment(struct llvmpipe_context *lp, + LLVMTypeRef func_type; + LLVMTypeRef int32_type = LLVMInt32TypeInContext(gallivm->context); + LLVMTypeRef int8_type = LLVMInt8TypeInContext(gallivm->context); ++ LLVMTypeRef int8p_type = LLVMPointerType(int8_type, 0); + LLVMValueRef context_ptr; + LLVMValueRef x; + LLVMValueRef y; +@@ -3405,6 +3431,7 @@ generate_fragment(struct llvmpipe_context *lp, + variant->jit_thread_data_type, + thread_data_ptr); + ++ LLVMTypeRef fs_vec_type = lp_build_vec_type(gallivm, fs_type); + for (unsigned i = 0; i < num_fs; i++) { + LLVMValueRef ptr; + for (unsigned s = 0; s < key->coverage_samples; s++) { +@@ -3421,9 +3448,9 @@ generate_fragment(struct llvmpipe_context *lp, + LLVMValueRef sindexi = lp_build_const_int32(gallivm, idx); + for (unsigned cbuf = 0; cbuf < key->nr_cbufs; cbuf++) { + for (unsigned chan = 0; chan < TGSI_NUM_CHANNELS; ++chan) { +- ptr = LLVMBuildGEP(builder, +- color_store[cbuf * !cbuf0_write_all][chan], +- &sindexi, 1, ""); ++ ptr = LLVMBuildGEP2(builder, fs_vec_type, ++ color_store[cbuf * !cbuf0_write_all][chan], ++ &sindexi, 1, ""); + fs_out_color[s][cbuf][chan][i] = ptr; + } + } +@@ -3432,9 +3459,9 @@ generate_fragment(struct llvmpipe_context *lp, + * output 1 + */ + for (unsigned chan = 0; chan < TGSI_NUM_CHANNELS; ++chan) { +- ptr = LLVMBuildGEP(builder, +- color_store[1][chan], +- &sindexi, 1, ""); ++ ptr = LLVMBuildGEP2(builder, fs_vec_type, ++ color_store[1][chan], ++ &sindexi, 1, ""); + fs_out_color[s][1][chan][i] = ptr; + } + } +@@ -3458,32 +3485,33 @@ generate_fragment(struct llvmpipe_context *lp, + || key->alpha.enabled) + && !shader->info.base.uses_kill); + +- color_ptr = LLVMBuildLoad(builder, +- LLVMBuildGEP(builder, color_ptr_ptr, +- &index, 1, ""), +- ""); ++ color_ptr = LLVMBuildLoad2(builder, int8p_type, ++ LLVMBuildGEP2(builder, int8p_type, color_ptr_ptr, ++ &index, 1, ""), ++ ""); + +- stride = LLVMBuildLoad(builder, +- LLVMBuildGEP(builder, stride_ptr, ++ stride = LLVMBuildLoad2(builder, int32_type, ++ LLVMBuildGEP2(builder, int32_type, stride_ptr, + &index, 1, ""), +- ""); ++ ""); + + if (key->cbuf_nr_samples[cbuf] > 1) +- sample_stride = LLVMBuildLoad(builder, +- LLVMBuildGEP(builder, +- color_sample_stride_ptr, +- &index, 1, ""), ""); ++ sample_stride = LLVMBuildLoad2(builder, int32_type, ++ LLVMBuildGEP2(builder, ++ int32_type, ++ color_sample_stride_ptr, ++ &index, 1, ""), ""); + + for (unsigned s = 0; s < key->cbuf_nr_samples[cbuf]; s++) { + unsigned mask_idx = num_fs * (key->multisample ? s : 0); + unsigned out_idx = key->min_samples == 1 ? 0 : s; +- LLVMValueRef out_ptr = color_ptr;; ++ LLVMValueRef out_ptr = color_ptr; + + if (sample_stride) { + LLVMValueRef sample_offset = + LLVMBuildMul(builder, sample_stride, + lp_build_const_int32(gallivm, s), ""); +- out_ptr = LLVMBuildGEP(builder, out_ptr, &sample_offset, 1, ""); ++ out_ptr = LLVMBuildGEP2(builder, int8_type, out_ptr, &sample_offset, 1, ""); + } + out_ptr = LLVMBuildBitCast(builder, out_ptr, + LLVMPointerType(blend_vec_type, 0), ""); +@@ -3495,7 +3523,7 @@ generate_fragment(struct llvmpipe_context *lp, + num_fs, fs_type, &fs_mask[mask_idx], + fs_out_color[out_idx], + variant->jit_context_type, +- context_ptr, out_ptr, stride, ++ context_ptr, blend_vec_type, out_ptr, stride, + partial_mask, do_branch); + } + } +-- +GitLab + + +From 5b83357ac5aea1b1735030cd1ece13d1a7e2f402 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:25:42 +1000 +Subject: [PATCH 09/10] llvmpipe/fs: cleanup some remaining mask handling and + reuse types + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 33 +++++++++++----------- + 1 file changed, 17 insertions(+), 16 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index 900d2c1e63c3b..d906d83840eff 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -831,8 +831,8 @@ generate_fs_loop(struct gallivm_state *gallivm, + lp_build_mask_check(&mask); + + /* Create storage for recombining sample masks after early Z pass. */ +- LLVMValueRef s_mask_or = lp_build_alloca(gallivm, lp_build_int_vec_type(gallivm, type), "cov_mask_early_depth"); +- LLVMBuildStore(builder, LLVMConstNull(lp_build_int_vec_type(gallivm, type)), s_mask_or); ++ LLVMValueRef s_mask_or = lp_build_alloca(gallivm, int_vec_type, "cov_mask_early_depth"); ++ LLVMBuildStore(builder, LLVMConstNull(int_vec_type), s_mask_or); + + /* Create storage for post depth sample mask */ + LLVMValueRef post_depth_sample_mask_in = NULL; +@@ -953,13 +953,13 @@ generate_fs_loop(struct gallivm_state *gallivm, + * Recombine the resulting coverage masks post early Z into the fragment + * shader execution mask. + */ +- LLVMValueRef tmp_s_mask_or = LLVMBuildLoad(builder, s_mask_or, ""); ++ LLVMValueRef tmp_s_mask_or = LLVMBuildLoad2(builder, int_vec_type, s_mask_or, ""); + tmp_s_mask_or = LLVMBuildOr(builder, tmp_s_mask_or, s_mask, ""); + LLVMBuildStore(builder, tmp_s_mask_or, s_mask_or); + + if (post_depth_coverage) { + LLVMValueRef mask_bit_idx = LLVMBuildShl(builder, lp_build_const_int32(gallivm, 1), sample_loop_state.counter, ""); +- LLVMValueRef post_depth_mask_in = LLVMBuildLoad(builder, post_depth_sample_mask_in, ""); ++ LLVMValueRef post_depth_mask_in = LLVMBuildLoad2(builder, int_vec_type, post_depth_sample_mask_in, ""); + mask_bit_idx = LLVMBuildAnd(builder, s_mask, lp_build_broadcast(gallivm, int_vec_type, mask_bit_idx), ""); + post_depth_mask_in = LLVMBuildOr(builder, post_depth_mask_in, mask_bit_idx, ""); + LLVMBuildStore(builder, post_depth_mask_in, post_depth_sample_mask_in); +@@ -970,7 +970,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + lp_build_for_loop_end(&sample_loop_state); + + /* recombined all the coverage masks in the shader exec mask. */ +- tmp_s_mask_or = LLVMBuildLoad(builder, s_mask_or, ""); ++ tmp_s_mask_or = LLVMBuildLoad2(builder, int_vec_type, s_mask_or, ""); + lp_build_mask_update(&mask, tmp_s_mask_or); + + if (key->min_samples == 1) { +@@ -994,7 +994,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + } + + if (post_depth_coverage) { +- system_values.sample_mask_in = LLVMBuildLoad(builder, post_depth_sample_mask_in, ""); ++ system_values.sample_mask_in = LLVMBuildLoad2(builder, int_vec_type, post_depth_sample_mask_in, ""); + } else { + system_values.sample_mask_in = sample_mask_in; + } +@@ -1140,7 +1140,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + + if (key->min_samples > 1) { + /* only the bit corresponding to this sample is to be used. */ +- LLVMValueRef tmp_mask = LLVMBuildLoad(builder, out_sample_mask_storage, "tmp_mask"); ++ LLVMValueRef tmp_mask = LLVMBuildLoad2(builder, int_vec_type, out_sample_mask_storage, "tmp_mask"); + LLVMValueRef out_smask_idx = LLVMBuildShl(builder, lp_build_const_int32(gallivm, 1), sample_loop_state.counter, ""); + LLVMValueRef smask_bit = LLVMBuildAnd(builder, output_smask, lp_build_broadcast(gallivm, int_vec_type, out_smask_idx), ""); + output_smask = LLVMBuildOr(builder, tmp_mask, smask_bit, ""); +@@ -1248,7 +1248,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + (!(depth_mode & EARLY_DEPTH_TEST) || (depth_mode & (EARLY_DEPTH_TEST_INFERRED)))) { + LLVMValueRef out_smask_idx = LLVMBuildShl(builder, lp_build_const_int32(gallivm, 1), sample_loop_state.counter, ""); + out_smask_idx = lp_build_broadcast(gallivm, int_vec_type, out_smask_idx); +- LLVMValueRef output_smask = LLVMBuildLoad(builder, out_sample_mask_storage, ""); ++ LLVMValueRef output_smask = LLVMBuildLoad2(builder, int_vec_type, out_sample_mask_storage, ""); + LLVMValueRef smask_bit = LLVMBuildAnd(builder, output_smask, out_smask_idx, ""); + LLVMValueRef cmp = LLVMBuildICmp(builder, LLVMIntNE, smask_bit, lp_build_const_int_vec(gallivm, int_type, 0), ""); + smask_bit = LLVMBuildSExt(builder, cmp, int_vec_type, ""); +@@ -1363,7 +1363,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + /* if the shader writes sample mask use that */ + LLVMValueRef out_smask_idx = LLVMBuildShl(builder, lp_build_const_int32(gallivm, 1), sample_loop_state.counter, ""); + out_smask_idx = lp_build_broadcast(gallivm, int_vec_type, out_smask_idx); +- LLVMValueRef output_smask = LLVMBuildLoad(builder, out_sample_mask_storage, ""); ++ LLVMValueRef output_smask = LLVMBuildLoad2(builder, int_vec_type, out_sample_mask_storage, ""); + LLVMValueRef smask_bit = LLVMBuildAnd(builder, output_smask, out_smask_idx, ""); + LLVMValueRef cmp = LLVMBuildICmp(builder, LLVMIntNE, smask_bit, lp_build_const_int_vec(gallivm, int_type, 0), ""); + smask_bit = LLVMBuildSExt(builder, cmp, int_vec_type, ""); +@@ -3113,6 +3113,7 @@ generate_fragment(struct llvmpipe_context *lp, + LLVMTypeRef arg_types[15]; + LLVMTypeRef func_type; + LLVMTypeRef int32_type = LLVMInt32TypeInContext(gallivm->context); ++ LLVMTypeRef int32p_type = LLVMPointerType(int32_type, 0); + LLVMTypeRef int8_type = LLVMInt8TypeInContext(gallivm->context); + LLVMTypeRef int8p_type = LLVMPointerType(int8_type, 0); + LLVMValueRef context_ptr; +@@ -3198,13 +3199,13 @@ generate_fragment(struct llvmpipe_context *lp, + arg_types[4] = LLVMPointerType(fs_elem_type, 0); /* a0 */ + arg_types[5] = LLVMPointerType(fs_elem_type, 0); /* dadx */ + arg_types[6] = LLVMPointerType(fs_elem_type, 0); /* dady */ +- arg_types[7] = LLVMPointerType(LLVMPointerType(int8_type, 0), 0); /* color */ +- arg_types[8] = LLVMPointerType(int8_type, 0); /* depth */ ++ arg_types[7] = LLVMPointerType(int8p_type, 0); /* color */ ++ arg_types[8] = int8p_type; /* depth */ + arg_types[9] = LLVMInt64TypeInContext(gallivm->context); /* mask_input */ + arg_types[10] = variant->jit_thread_data_ptr_type; /* per thread data */ +- arg_types[11] = LLVMPointerType(int32_type, 0); /* stride */ ++ arg_types[11] = int32p_type; /* stride */ + arg_types[12] = int32_type; /* depth_stride */ +- arg_types[13] = LLVMPointerType(int32_type, 0); /* color sample strides */ ++ arg_types[13] = int32p_type; /* color sample strides */ + arg_types[14] = int32_type; /* depth sample stride */ + + func_type = LLVMFunctionType(LLVMVoidTypeInContext(gallivm->context), +@@ -3359,9 +3360,9 @@ generate_fragment(struct llvmpipe_context *lp, + for (unsigned i = 0; i < num_fs; i++) { + if (key->multisample) { + LLVMValueRef smask_val = +- LLVMBuildLoad(builder, +- lp_jit_context_sample_mask(gallivm, variant->jit_context_type, context_ptr), +- ""); ++ LLVMBuildLoad2(builder, int32_type, ++ lp_jit_context_sample_mask(gallivm, variant->jit_context_type, context_ptr), ++ ""); + + /* + * For multisampling, extract the per-sample mask from the +-- +GitLab + + +From 111bf8bfee280683a4c2d14ec08f65675204138c Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 29 Sep 2022 08:26:01 +1000 +Subject: [PATCH 10/10] llvmpipe/fs: convert outputs handling to explicit api + +Reviewed-by: Brian Paul <brianp@vmware.com> +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876> +--- + src/gallium/drivers/llvmpipe/lp_state_fs.c | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index d906d83840eff..b65a3a897eb9c 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -1074,7 +1074,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + + if (color0 != -1 && outputs[color0][3]) { + const struct util_format_description *cbuf_format_desc; +- LLVMValueRef alpha = LLVMBuildLoad(builder, outputs[color0][3], "alpha"); ++ LLVMValueRef alpha = LLVMBuildLoad2(builder, vec_type, outputs[color0][3], "alpha"); + LLVMValueRef alpha_ref_value; + + alpha_ref_value = lp_jit_context_alpha_ref_value(gallivm, context_type, context_ptr); +@@ -1095,7 +1095,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + 0); + + if (color0 != -1 && outputs[color0][3]) { +- LLVMValueRef alpha = LLVMBuildLoad(builder, outputs[color0][3], "alpha"); ++ LLVMValueRef alpha = LLVMBuildLoad2(builder, vec_type, outputs[color0][3], "alpha"); + + if (!key->multisample) { + lp_build_alpha_to_coverage(gallivm, type, +@@ -1130,7 +1130,7 @@ generate_fs_loop(struct gallivm_state *gallivm, + lp_build_context_init(&smask_bld, gallivm, int_type); + + assert(smaski >= 0); +- output_smask = LLVMBuildLoad(builder, outputs[smaski][0], "smask"); ++ output_smask = LLVMBuildLoad2(builder, vec_type, outputs[smaski][0], "smask"); + output_smask = LLVMBuildBitCast(builder, output_smask, smask_bld.vec_type, ""); + if (!key->multisample && key->no_ms_sample_mask_out) { + output_smask = lp_build_and(&smask_bld, output_smask, smask_bld.one); +@@ -1153,12 +1153,12 @@ generate_fs_loop(struct gallivm_state *gallivm, + int pos0 = find_output_by_semantic(&shader->info.base, + TGSI_SEMANTIC_POSITION, + 0); +- LLVMValueRef out = LLVMBuildLoad(builder, outputs[pos0][2], ""); ++ LLVMValueRef out = LLVMBuildLoad2(builder, vec_type, outputs[pos0][2], ""); + LLVMValueRef idx = loop_state.counter; + if (key->min_samples > 1) + idx = LLVMBuildAdd(builder, idx, + LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""), ""); +- LLVMValueRef ptr = LLVMBuildGEP(builder, z_out, &idx, 1, ""); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, vec_type, z_out, &idx, 1, ""); + LLVMBuildStore(builder, out, ptr); + } + +@@ -1166,12 +1166,13 @@ generate_fs_loop(struct gallivm_state *gallivm, + int sten_out = find_output_by_semantic(&shader->info.base, + TGSI_SEMANTIC_STENCIL, + 0); +- LLVMValueRef out = LLVMBuildLoad(builder, outputs[sten_out][1], "output.s"); ++ LLVMValueRef out = LLVMBuildLoad2(builder, vec_type, ++ outputs[sten_out][1], "output.s"); + LLVMValueRef idx = loop_state.counter; + if (key->min_samples > 1) + idx = LLVMBuildAdd(builder, idx, + LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""), ""); +- LLVMValueRef ptr = LLVMBuildGEP(builder, s_out, &idx, 1, ""); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, vec_type, s_out, &idx, 1, ""); + LLVMBuildStore(builder, out, ptr); + } + +@@ -1205,14 +1206,14 @@ generate_fs_loop(struct gallivm_state *gallivm, + /* XXX: just initialize outputs to point at colors[] and + * skip this. + */ +- LLVMValueRef out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); ++ LLVMValueRef out = LLVMBuildLoad2(builder, vec_type, outputs[attrib][chan], ""); + LLVMValueRef color_ptr; + LLVMValueRef color_idx = loop_state.counter; + if (key->min_samples > 1) + color_idx = LLVMBuildAdd(builder, color_idx, + LLVMBuildMul(builder, sample_loop_state.counter, num_loop, ""), ""); +- color_ptr = LLVMBuildGEP(builder, out_color[cbuf][chan], +- &color_idx, 1, ""); ++ color_ptr = LLVMBuildGEP2(builder, vec_type, out_color[cbuf][chan], ++ &color_idx, 1, ""); + lp_build_name(out, "color%u.%c", attrib, "rgba"[chan]); + LLVMBuildStore(builder, out, color_ptr); + } +-- +GitLab + +From 3d242c044758292712e1876ba3afdd3e8f06d5df Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Tue, 4 Oct 2022 09:41:00 +1000 +Subject: [PATCH 1/6] llvmpipe/tests: port to new pointer interfaces. + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/drivers/llvmpipe/lp_test_arit.c | 6 +++--- + src/gallium/drivers/llvmpipe/lp_test_blend.c | 8 ++++---- + src/gallium/drivers/llvmpipe/lp_test_conv.c | 12 +++++++----- + 3 files changed, 14 insertions(+), 12 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c +index 55ced4c67ccd4..4118928d52ed0 100644 +--- a/src/gallium/drivers/llvmpipe/lp_test_arit.c ++++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c +@@ -362,11 +362,11 @@ build_unary_test_func(struct gallivm_state *gallivm, + LLVMSetFunctionCallConv(func, LLVMCCallConv); + + LLVMPositionBuilderAtEnd(builder, block); +- +- arg1 = LLVMBuildLoad(builder, arg1, ""); ++ ++ arg1 = LLVMBuildLoad2(builder, vf32t, arg1, ""); + + ret = test->builder(&bld, arg1); +- ++ + LLVMBuildStore(builder, ret, arg0); + + LLVMBuildRetVoid(builder); +diff --git a/src/gallium/drivers/llvmpipe/lp_test_blend.c b/src/gallium/drivers/llvmpipe/lp_test_blend.c +index 7805ec58d98a3..2d44e8eafe70c 100644 +--- a/src/gallium/drivers/llvmpipe/lp_test_blend.c ++++ b/src/gallium/drivers/llvmpipe/lp_test_blend.c +@@ -172,10 +172,10 @@ add_blend_test(struct gallivm_state *gallivm, + builder = gallivm->builder; + LLVMPositionBuilderAtEnd(builder, block); + +- src = LLVMBuildLoad(builder, src_ptr, "src"); +- src1 = LLVMBuildLoad(builder, src1_ptr, "src1"); +- dst = LLVMBuildLoad(builder, dst_ptr, "dst"); +- con = LLVMBuildLoad(builder, const_ptr, "const"); ++ src = LLVMBuildLoad2(builder, vec_type, src_ptr, "src"); ++ src1 = LLVMBuildLoad2(builder, vec_type, src1_ptr, "src1"); ++ dst = LLVMBuildLoad2(builder, vec_type, dst_ptr, "dst"); ++ con = LLVMBuildLoad2(builder, vec_type, const_ptr, "const"); + + res = lp_build_blend_aos(gallivm, blend, format, type, rt, src, NULL, + src1, NULL, dst, NULL, con, NULL, swizzle, 4); +diff --git a/src/gallium/drivers/llvmpipe/lp_test_conv.c b/src/gallium/drivers/llvmpipe/lp_test_conv.c +index 9ae148866af38..05aaa1b4fcdab 100644 +--- a/src/gallium/drivers/llvmpipe/lp_test_conv.c ++++ b/src/gallium/drivers/llvmpipe/lp_test_conv.c +@@ -112,9 +112,11 @@ add_conv_test(struct gallivm_state *gallivm, + LLVMValueRef src[LP_MAX_VECTOR_LENGTH]; + LLVMValueRef dst[LP_MAX_VECTOR_LENGTH]; + unsigned i; ++ LLVMTypeRef src_vec_type = lp_build_vec_type(gallivm, src_type); ++ LLVMTypeRef dst_vec_type = lp_build_vec_type(gallivm, dst_type); + +- args[0] = LLVMPointerType(lp_build_vec_type(gallivm, src_type), 0); +- args[1] = LLVMPointerType(lp_build_vec_type(gallivm, dst_type), 0); ++ args[0] = LLVMPointerType(src_vec_type, 0); ++ args[1] = LLVMPointerType(dst_vec_type, 0); + + func = LLVMAddFunction(module, "test", + LLVMFunctionType(LLVMVoidTypeInContext(context), +@@ -128,15 +130,15 @@ add_conv_test(struct gallivm_state *gallivm, + + for(i = 0; i < num_srcs; ++i) { + LLVMValueRef index = LLVMConstInt(LLVMInt32TypeInContext(context), i, 0); +- LLVMValueRef ptr = LLVMBuildGEP(builder, src_ptr, &index, 1, ""); +- src[i] = LLVMBuildLoad(builder, ptr, ""); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, src_vec_type, src_ptr, &index, 1, ""); ++ src[i] = LLVMBuildLoad2(builder, src_vec_type, ptr, ""); + } + + lp_build_conv(gallivm, src_type, dst_type, src, num_srcs, dst, num_dsts); + + for(i = 0; i < num_dsts; ++i) { + LLVMValueRef index = LLVMConstInt(LLVMInt32TypeInContext(context), i, 0); +- LLVMValueRef ptr = LLVMBuildGEP(builder, dst_ptr, &index, 1, ""); ++ LLVMValueRef ptr = LLVMBuildGEP2(builder, dst_vec_type, dst_ptr, &index, 1, ""); + LLVMBuildStore(builder, dst[i], ptr); + } + +-- +GitLab + + +From 9fe8e5ccf7a18c02634be4e80bb15e854e95e78a Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 14:11:30 +1000 +Subject: [PATCH 2/6] gallivm/llvmpipe: add opaque pointers support to sampler + +This adds explicit context types wiring through the sampler code + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/auxiliary/draw/draw_llvm.c | 4 ++ + src/gallium/auxiliary/draw/draw_llvm_sample.c | 18 +++-- + src/gallium/auxiliary/gallivm/lp_bld_nir.h | 2 + + .../auxiliary/gallivm/lp_bld_nir_soa.c | 8 +++ + src/gallium/auxiliary/gallivm/lp_bld_sample.c | 20 +++--- + src/gallium/auxiliary/gallivm/lp_bld_sample.h | 23 +++++++ + .../auxiliary/gallivm/lp_bld_sample_soa.c | 69 ++++++++++++++----- + src/gallium/auxiliary/gallivm/lp_bld_tgsi.h | 4 ++ + .../auxiliary/gallivm/lp_bld_tgsi_soa.c | 16 +++++ + src/gallium/drivers/llvmpipe/lp_state_cs.c | 1 + + src/gallium/drivers/llvmpipe/lp_state_fs.c | 2 + + src/gallium/drivers/llvmpipe/lp_tex_sample.c | 21 ++++-- + 12 files changed, 148 insertions(+), 40 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c +index 3bdc8775bd7e5..16c93ec85f24e 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm.c ++++ b/src/gallium/auxiliary/draw/draw_llvm.c +@@ -965,6 +965,7 @@ generate_vs(struct draw_llvm_variant *variant, + params.consts_ptr = consts_ptr; + params.system_values = system_values; + params.inputs = inputs; ++ params.context_type = variant->context_type; + params.context_ptr = context_ptr; + params.sampler = draw_sampler; + params.info = &llvm->draw->vs.vertex_shader->info; +@@ -2872,6 +2873,7 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, + params.mask = &mask; + params.consts_ptr = consts_ptr; + params.system_values = &system_values; ++ params.context_type = variant->context_type; + params.context_ptr = context_ptr; + params.sampler = sampler; + params.info = &llvm->draw->gs.geometry_shader->info; +@@ -3533,6 +3535,7 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, + params.mask = &mask; + params.consts_ptr = consts_ptr; + params.system_values = &system_values; ++ params.context_type = variant->context_type; + params.context_ptr = context_ptr; + params.sampler = sampler; + params.info = &llvm->draw->tcs.tess_ctrl_shader->info; +@@ -4062,6 +4065,7 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, + params.mask = &mask; + params.consts_ptr = consts_ptr; + params.system_values = &system_values; ++ params.context_type = variant->context_type; + params.context_ptr = context_ptr; + params.sampler = sampler; + params.info = &llvm->draw->tes.tess_eval_shader->info; +diff --git a/src/gallium/auxiliary/draw/draw_llvm_sample.c b/src/gallium/auxiliary/draw/draw_llvm_sample.c +index 6032f5b2a002f..5a48fb17caf2b 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm_sample.c ++++ b/src/gallium/auxiliary/draw/draw_llvm_sample.c +@@ -100,6 +100,7 @@ struct draw_llvm_image_soa + */ + static LLVMValueRef + draw_llvm_texture_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, + LLVMValueRef texture_unit_offset, +@@ -128,7 +129,7 @@ draw_llvm_texture_member(struct gallivm_state *gallivm, + /* context[0].textures[unit].member */ + indices[3] = lp_build_const_int32(gallivm, member_index); + +- ptr = LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + if (emit_load) + res = LLVMBuildLoad(builder, ptr, ""); +@@ -151,6 +152,7 @@ draw_llvm_texture_member(struct gallivm_state *gallivm, + */ + static LLVMValueRef + draw_llvm_sampler_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit, + unsigned member_index, +@@ -173,7 +175,7 @@ draw_llvm_sampler_member(struct gallivm_state *gallivm, + /* context[0].samplers[unit].member */ + indices[3] = lp_build_const_int32(gallivm, member_index); + +- ptr = LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + if (emit_load) + res = LLVMBuildLoad(builder, ptr, ""); +@@ -195,6 +197,7 @@ draw_llvm_sampler_member(struct gallivm_state *gallivm, + */ + static LLVMValueRef + draw_llvm_image_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned image_unit, + LLVMValueRef image_unit_offset, +@@ -223,7 +226,7 @@ draw_llvm_image_member(struct gallivm_state *gallivm, + /* context[0].textures[unit].member */ + indices[3] = lp_build_const_int32(gallivm, member_index); + +- ptr = LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + if (emit_load) + res = LLVMBuildLoad(builder, ptr, ""); +@@ -247,11 +250,12 @@ draw_llvm_image_member(struct gallivm_state *gallivm, + #define DRAW_LLVM_TEXTURE_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + draw_llvm_texture_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned texture_unit, \ + LLVMValueRef texture_unit_offset) \ + { \ +- return draw_llvm_texture_member(gallivm, context_ptr, \ ++ return draw_llvm_texture_member(gallivm, context_type, context_ptr, \ + texture_unit, texture_unit_offset, \ + _index, #_name, _emit_load ); \ + } +@@ -272,10 +276,11 @@ DRAW_LLVM_TEXTURE_MEMBER(sample_stride, DRAW_JIT_TEXTURE_SAMPLE_STRIDE, TRUE) + #define DRAW_LLVM_SAMPLER_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + draw_llvm_sampler_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned sampler_unit) \ + { \ +- return draw_llvm_sampler_member(gallivm, context_ptr, \ ++ return draw_llvm_sampler_member(gallivm, context_type, context_ptr, \ + sampler_unit, _index, #_name, _emit_load ); \ + } + +@@ -289,10 +294,11 @@ DRAW_LLVM_SAMPLER_MEMBER(max_aniso, DRAW_JIT_SAMPLER_MAX_ANISO, TRUE) + #define DRAW_LLVM_IMAGE_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + draw_llvm_image_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned image_unit, LLVMValueRef image_unit_offset) \ + { \ +- return draw_llvm_image_member(gallivm, context_ptr, \ ++ return draw_llvm_image_member(gallivm, context_type, context_ptr, \ + image_unit, image_unit_offset, \ + _index, #_name, _emit_load ); \ + } +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.h b/src/gallium/auxiliary/gallivm/lp_bld_nir.h +index 922208d8603d5..727837e9a5390 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.h +@@ -246,7 +246,9 @@ struct lp_build_nir_soa_context + LLVMValueRef consts_sizes[LP_MAX_TGSI_CONST_BUFFERS]; + const LLVMValueRef (*inputs)[TGSI_NUM_CHANNELS]; + LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS]; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; ++ LLVMTypeRef thread_data_type; + LLVMValueRef thread_data_ptr; + + LLVMValueRef ssbo_ptr; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +index dafbffb344833..443bf4fea8afd 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c +@@ -1613,7 +1613,9 @@ static void emit_image_op(struct lp_build_nir_context *bld_base, + struct gallivm_state *gallivm = bld_base->base.gallivm; + + params->type = bld_base->base.type; ++ params->context_type = bld->context_type; + params->context_ptr = bld->context_ptr; ++ params->thread_data_type = bld->thread_data_type; + params->thread_data_ptr = bld->thread_data_ptr; + params->exec_mask = mask_vec(bld_base); + +@@ -1634,6 +1636,7 @@ static void emit_image_size(struct lp_build_nir_context *bld_base, + struct gallivm_state *gallivm = bld_base->base.gallivm; + + params->int_type = bld_base->int_bld.type; ++ params->context_type = bld->context_type; + params->context_ptr = bld->context_ptr; + + if (params->texture_unit_offset) +@@ -1691,7 +1694,9 @@ static void emit_tex(struct lp_build_nir_context *bld_base, + LLVMBuilderRef builder = bld_base->base.gallivm->builder; + + params->type = bld_base->base.type; ++ params->context_type = bld->context_type; + params->context_ptr = bld->context_ptr; ++ params->thread_data_type = bld->thread_data_type; + params->thread_data_ptr = bld->thread_data_ptr; + + if (params->texture_index_offset && bld_base->shader->info.stage != MESA_SHADER_FRAGMENT) { +@@ -1774,6 +1779,7 @@ static void emit_tex_size(struct lp_build_nir_context *bld_base, + struct lp_build_nir_soa_context *bld = (struct lp_build_nir_soa_context *)bld_base; + + params->int_type = bld_base->int_bld.type; ++ params->context_type = bld->context_type; + params->context_ptr = bld->context_ptr; + + if (params->texture_unit_offset) +@@ -2847,7 +2853,9 @@ void lp_build_nir_soa(struct gallivm_state *gallivm, + bld.sampler = params->sampler; + // bld.bld_base.info = params->info; + ++ bld.context_type = params->context_type; + bld.context_ptr = params->context_ptr; ++ bld.thread_data_type = params->thread_data_type; + bld.thread_data_ptr = params->thread_data_ptr; + bld.bld_base.aniso_filter_table = params->aniso_filter_table; + bld.image = params->image; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +index bb7b422346575..cdbf737031a8c 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +@@ -266,7 +266,7 @@ lp_build_pmin(struct lp_build_sample_context *bld, + boolean pmin_per_quad = pmin_bld->type.length != length; + unsigned i; + +- first_level = bld->dynamic_state->first_level(bld->gallivm, ++ first_level = bld->dynamic_state->first_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); + first_level_vec = lp_build_broadcast_scalar(int_size_bld, first_level); + int_size = lp_build_minify(int_size_bld, bld->int_size, first_level_vec, TRUE); +@@ -376,7 +376,7 @@ lp_build_rho(struct lp_build_sample_context *bld, + * the messy cube maps for now) when requested. + */ + +- first_level = bld->dynamic_state->first_level(bld->gallivm, ++ first_level = bld->dynamic_state->first_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); + first_level_vec = lp_build_broadcast_scalar(int_size_bld, first_level); + int_size = lp_build_minify(int_size_bld, bld->int_size, first_level_vec, TRUE); +@@ -854,7 +854,7 @@ lp_build_lod_selector(struct lp_build_sample_context *bld, + * This is hit during mipmap generation. + */ + LLVMValueRef min_lod = +- dynamic_state->min_lod(bld->gallivm, ++ dynamic_state->min_lod(bld->gallivm, bld->context_type, + bld->context_ptr, sampler_unit); + + lod = lp_build_broadcast_scalar(lodf_bld, min_lod); +@@ -952,7 +952,7 @@ lp_build_lod_selector(struct lp_build_sample_context *bld, + /* add sampler lod bias */ + if (bld->static_sampler_state->lod_bias_non_zero) { + LLVMValueRef sampler_lod_bias = +- dynamic_state->lod_bias(bld->gallivm, ++ dynamic_state->lod_bias(bld->gallivm, bld->context_type, + bld->context_ptr, sampler_unit); + sampler_lod_bias = lp_build_broadcast_scalar(lodf_bld, + sampler_lod_bias); +@@ -966,7 +966,7 @@ lp_build_lod_selector(struct lp_build_sample_context *bld, + /* clamp lod */ + if (bld->static_sampler_state->apply_max_lod) { + LLVMValueRef max_lod = +- dynamic_state->max_lod(bld->gallivm, ++ dynamic_state->max_lod(bld->gallivm, bld->context_type, + bld->context_ptr, sampler_unit); + max_lod = lp_build_broadcast_scalar(lodf_bld, max_lod); + +@@ -974,7 +974,7 @@ lp_build_lod_selector(struct lp_build_sample_context *bld, + } + if (bld->static_sampler_state->apply_min_lod) { + LLVMValueRef min_lod = +- dynamic_state->min_lod(bld->gallivm, ++ dynamic_state->min_lod(bld->gallivm, bld->context_type, + bld->context_ptr, sampler_unit); + min_lod = lp_build_broadcast_scalar(lodf_bld, min_lod); + +@@ -1032,9 +1032,9 @@ lp_build_nearest_mip_level(struct lp_build_sample_context *bld, + struct lp_sampler_dynamic_state *dynamic_state = bld->dynamic_state; + LLVMValueRef first_level, last_level, level; + +- first_level = dynamic_state->first_level(bld->gallivm, ++ first_level = dynamic_state->first_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); +- last_level = dynamic_state->last_level(bld->gallivm, ++ last_level = dynamic_state->last_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); + first_level = lp_build_broadcast_scalar(leveli_bld, first_level); + last_level = lp_build_broadcast_scalar(leveli_bld, last_level); +@@ -1094,9 +1094,9 @@ lp_build_linear_mip_levels(struct lp_build_sample_context *bld, + + assert(bld->num_lods == bld->num_mips); + +- first_level = dynamic_state->first_level(bld->gallivm, ++ first_level = dynamic_state->first_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); +- last_level = dynamic_state->last_level(bld->gallivm, ++ last_level = dynamic_state->last_level(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); + first_level = lp_build_broadcast_scalar(leveli_bld, first_level); + last_level = lp_build_broadcast_scalar(leveli_bld, last_level); +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.h b/src/gallium/auxiliary/gallivm/lp_bld_sample.h +index 91d946545c81c..ecebc8fc631fe 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.h +@@ -109,7 +109,9 @@ struct lp_sampler_params + unsigned sampler_index; + LLVMValueRef texture_index_offset; + unsigned sample_key; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; ++ LLVMTypeRef thread_data_type; + LLVMValueRef thread_data_ptr; + const LLVMValueRef *coords; + const LLVMValueRef *offsets; +@@ -127,6 +129,7 @@ struct lp_sampler_size_query_params + unsigned texture_unit; + LLVMValueRef texture_unit_offset; + unsigned target; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; + boolean is_sviewinfo; + bool samples_only; +@@ -149,7 +152,9 @@ struct lp_img_params + unsigned target; + LLVMAtomicRMWBinOp op; + LLVMValueRef exec_mask; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; ++ LLVMTypeRef thread_data_type; + LLVMValueRef thread_data_ptr; + const LLVMValueRef *coords; + LLVMValueRef ms_index; +@@ -230,66 +235,77 @@ struct lp_sampler_dynamic_state + /** Obtain the base texture width (or number of elements) (returns int32) */ + LLVMValueRef + (*width)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain the base texture height (returns int32) */ + LLVMValueRef + (*height)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain the base texture depth (or array size) (returns int32) */ + LLVMValueRef + (*depth)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain the first mipmap level (base level) (returns int32) */ + LLVMValueRef + (*first_level)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain the number of mipmap levels minus one (returns int32) */ + LLVMValueRef + (*last_level)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain stride in bytes between image rows/blocks (returns int32) */ + LLVMValueRef + (*row_stride)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain stride in bytes between image slices (returns int32) */ + LLVMValueRef + (*img_stride)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain pointer to base of texture */ + LLVMValueRef + (*base_ptr)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain pointer to array of mipmap offsets */ + LLVMValueRef + (*mip_offsets)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain number of samples (returns int32) */ + LLVMValueRef + (*num_samples)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + + /** Obtain multisample stride (returns int32) */ + LLVMValueRef + (*sample_stride)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, LLVMValueRef texture_unit_offset); + +@@ -298,30 +314,35 @@ struct lp_sampler_dynamic_state + /** Obtain texture min lod (returns float) */ + LLVMValueRef + (*min_lod)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit); + + /** Obtain texture max lod (returns float) */ + LLVMValueRef + (*max_lod)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit); + + /** Obtain texture lod bias (returns float) */ + LLVMValueRef + (*lod_bias)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit); + + /** Obtain texture border color (returns ptr to float[4]) */ + LLVMValueRef + (*border_color)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit); + + /** Obtain maximum anisotropy */ + LLVMValueRef + (*max_aniso)(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit); + +@@ -332,6 +353,7 @@ struct lp_sampler_dynamic_state + */ + LLVMValueRef + (*cache_ptr)(struct gallivm_state *gallivm, ++ LLVMTypeRef thread_data_type, + LLVMValueRef thread_data_ptr, + unsigned unit); + }; +@@ -440,6 +462,7 @@ struct lp_build_sample_context + + LLVMValueRef border_color_clamped; + ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; + + LLVMValueRef aniso_filter_table; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +index bf0453b3de284..c24833dafe123 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +@@ -2046,7 +2046,7 @@ lp_build_layer_coord(struct lp_build_sample_context *bld, + LLVMValueRef num_layers; + struct lp_build_context *int_coord_bld = &bld->int_coord_bld; + +- num_layers = bld->dynamic_state->depth(bld->gallivm, ++ num_layers = bld->dynamic_state->depth(bld->gallivm, bld->context_type, + bld->context_ptr, texture_unit, NULL); + + if (out_of_bounds) { +@@ -2611,6 +2611,7 @@ lp_build_sample_common(struct lp_build_sample_context *bld, + + if (aniso) + max_aniso = bld->dynamic_state->max_aniso(bld->gallivm, ++ bld->context_type, + bld->context_ptr, + sampler_index); + +@@ -2625,9 +2626,11 @@ lp_build_sample_common(struct lp_build_sample_context *bld, + if (is_lodq) { + LLVMValueRef last_level; + last_level = bld->dynamic_state->last_level(bld->gallivm, ++ bld->context_type, + bld->context_ptr, + texture_index, NULL); + first_level = bld->dynamic_state->first_level(bld->gallivm, ++ bld->context_type, + bld->context_ptr, + texture_index, NULL); + last_level = lp_build_sub(&bld->int_bld, last_level, first_level); +@@ -2674,7 +2677,9 @@ lp_build_sample_common(struct lp_build_sample_context *bld, + unreachable("Bad mip_filter value in lp_build_sample_soa()"); + case PIPE_TEX_MIPFILTER_NONE: + /* always use mip level 0 */ +- first_level = bld->dynamic_state->first_level(bld->gallivm, bld->context_ptr, ++ first_level = bld->dynamic_state->first_level(bld->gallivm, ++ bld->context_type, ++ bld->context_ptr, + texture_index, NULL); + first_level = lp_build_broadcast_scalar(&bld->leveli_bld, first_level); + *ilevel0 = first_level; +@@ -2702,6 +2707,7 @@ lp_build_clamp_border_color(struct lp_build_sample_context *bld, + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef border_color_ptr = + bld->dynamic_state->border_color(gallivm, ++ bld->context_type, + bld->context_ptr, sampler_unit); + LLVMValueRef border_color; + const struct util_format_description *format_desc = bld->format_desc; +@@ -3128,6 +3134,7 @@ lp_build_fetch_texel(struct lp_build_sample_context *bld, + assert(bld->num_mips == 1); + if (bld->static_texture_state->target != PIPE_BUFFER) { + ilevel = bld->dynamic_state->first_level(bld->gallivm, ++ bld->context_type, + bld->context_ptr, texture_unit, NULL); + } + else { +@@ -3197,6 +3204,7 @@ lp_build_fetch_texel(struct lp_build_sample_context *bld, + if (bld->fetch_ms) { + LLVMValueRef num_samples; + num_samples = bld->dynamic_state->num_samples(bld->gallivm, ++ bld->context_type, + bld->context_ptr, texture_unit, NULL); + out1 = lp_build_cmp(int_coord_bld, PIPE_FUNC_LESS, ms_index, int_coord_bld->zero); + out_of_bounds = lp_build_or(int_coord_bld, out_of_bounds, out1); +@@ -3295,7 +3303,9 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + unsigned sample_key, + unsigned texture_index, + unsigned sampler_index, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, ++ LLVMTypeRef thread_data_type, + LLVMValueRef thread_data_ptr, + const LLVMValueRef *coords, + const LLVMValueRef *offsets, +@@ -3376,6 +3386,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + /* Setup our build context */ + memset(&bld, 0, sizeof bld); + bld.gallivm = gallivm; ++ bld.context_type = context_type; + bld.context_ptr = context_ptr; + bld.aniso_filter_table = aniso_filter_table; + bld.static_sampler_state = &derived_sampler_state; +@@ -3559,22 +3570,23 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + lp_build_context_init(&bld.lodi_bld, gallivm, bld.lodi_type); + + /* Get the dynamic state */ +- LLVMValueRef tex_width = dynamic_state->width(gallivm, ++ LLVMValueRef tex_width = dynamic_state->width(gallivm, context_type, + context_ptr, texture_index, + NULL); +- bld.row_stride_array = dynamic_state->row_stride(gallivm, ++ bld.row_stride_array = dynamic_state->row_stride(gallivm, context_type, + context_ptr, texture_index, NULL); +- bld.img_stride_array = dynamic_state->img_stride(gallivm, ++ bld.img_stride_array = dynamic_state->img_stride(gallivm, context_type, + context_ptr, texture_index, NULL); +- bld.base_ptr = dynamic_state->base_ptr(gallivm, ++ bld.base_ptr = dynamic_state->base_ptr(gallivm, context_type, + context_ptr, texture_index, NULL); +- bld.mip_offsets = dynamic_state->mip_offsets(gallivm, ++ bld.mip_offsets = dynamic_state->mip_offsets(gallivm, context_type, + context_ptr, texture_index, NULL); + + if (fetch_ms) { + bld.sample_stride = + lp_build_broadcast_scalar(&bld.int_coord_bld, + dynamic_state->sample_stride(gallivm, ++ context_type, + context_ptr, + texture_index, + NULL)); +@@ -3583,7 +3595,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + /* Note that mip_offsets is an array[level] of offsets to texture images */ + + if (dynamic_state->cache_ptr && thread_data_ptr) { +- bld.cache = dynamic_state->cache_ptr(gallivm, ++ bld.cache = dynamic_state->cache_ptr(gallivm, thread_data_type, + thread_data_ptr, texture_index); + } + +@@ -3620,7 +3632,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + LLVMConstInt(i32t, 0, 0), ""); + if (dims >= 2) { + LLVMValueRef tex_height = +- dynamic_state->height(gallivm, ++ dynamic_state->height(gallivm, context_type, + context_ptr, texture_index, NULL); + bld.int_size = LLVMBuildInsertElement(builder, bld.int_size, + tex_height, +@@ -3636,7 +3648,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + LLVMConstInt(i32t, 1, 0), ""); + if (dims >= 3) { + LLVMValueRef tex_depth = +- dynamic_state->depth(gallivm, context_ptr, ++ dynamic_state->depth(gallivm, context_type, context_ptr, + texture_index, NULL); + bld.int_size = LLVMBuildInsertElement(builder, bld.int_size, + tex_depth, +@@ -3800,6 +3812,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + bld4.no_rho_approx = bld.no_rho_approx; + bld4.no_brilinear = bld.no_brilinear; + bld4.gallivm = bld.gallivm; ++ bld4.context_type = bld.context_type; + bld4.context_ptr = bld.context_ptr; + bld4.aniso_filter_table = aniso_filter_table; + bld4.static_texture_state = bld.static_texture_state; +@@ -4001,6 +4014,8 @@ lp_build_sample_gen_func(struct gallivm_state *gallivm, + const struct lp_static_sampler_state *static_sampler_state, + struct lp_sampler_dynamic_state *dynamic_state, + struct lp_type type, ++ LLVMTypeRef context_type, ++ LLVMTypeRef thread_data_type, + unsigned texture_index, + unsigned sampler_index, + LLVMValueRef function, +@@ -4106,7 +4121,9 @@ lp_build_sample_gen_func(struct gallivm_state *gallivm, + sample_key, + texture_index, + sampler_index, ++ context_type, + context_ptr, ++ thread_data_type, + thread_data_ptr, + coords, + offsets, +@@ -4254,6 +4271,8 @@ lp_build_sample_soa_func(struct gallivm_state *gallivm, + static_sampler_state, + dynamic_state, + params->type, ++ params->context_type, ++ params->thread_data_type, + texture_index, + sampler_index, + function, +@@ -4376,7 +4395,9 @@ lp_build_sample_soa(const struct lp_static_texture_state *static_texture_state, + params->sample_key, + params->texture_index, + params->sampler_index, ++ params->context_type, + params->context_ptr, ++ params->thread_data_type, + params->thread_data_ptr, + params->coords, + params->offsets, +@@ -4397,6 +4418,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + { + LLVMValueRef first_level = NULL; + const unsigned num_lods = 1; ++ LLVMTypeRef context_type = params->context_type; + LLVMValueRef context_ptr = params->context_ptr; + const unsigned texture_unit = params->texture_unit; + const enum pipe_texture_target target = params->target; +@@ -4459,6 +4481,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + lp_build_broadcast(gallivm, + lp_build_vec_type(gallivm, params->int_type), + dynamic_state->num_samples(gallivm, ++ context_type, + context_ptr, + texture_unit, + texture_unit_offset)); +@@ -4471,7 +4494,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + /* FIXME: this needs to honor per-element lod */ + lod = LLVMBuildExtractElement(gallivm->builder, params->explicit_lod, + lp_build_const_int32(gallivm, 0), ""); +- first_level = dynamic_state->first_level(gallivm, ++ first_level = dynamic_state->first_level(gallivm, context_type, + context_ptr, texture_unit, + texture_unit_offset); + level = LLVMBuildAdd(gallivm->builder, lod, first_level, "level"); +@@ -4497,6 +4520,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + res_bh = bh = 1; + size = LLVMBuildInsertElement(gallivm->builder, size, + dynamic_state->width(gallivm, ++ context_type, + context_ptr, + texture_unit, + texture_unit_offset), +@@ -4512,7 +4536,9 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + lp_build_const_int32(gallivm, 0), ""); + if (dims >= 2) { + size = LLVMBuildInsertElement(gallivm->builder, size, +- dynamic_state->height(gallivm, context_ptr, ++ dynamic_state->height(gallivm, ++ context_type, ++ context_ptr, + texture_unit, + texture_unit_offset), + lp_build_const_int32(gallivm, 1), ""); +@@ -4530,6 +4556,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + if (dims >= 3) { + size = LLVMBuildInsertElement(gallivm->builder, size, + dynamic_state->depth(gallivm, ++ context_type, + context_ptr, + texture_unit, + texture_unit_offset), +@@ -4550,7 +4577,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + tex_blocksize_log2, view_blocksize); + + if (has_array) { +- LLVMValueRef layers = dynamic_state->depth(gallivm, ++ LLVMValueRef layers = dynamic_state->depth(gallivm, context_type, + context_ptr, texture_unit, + texture_unit_offset); + if (target == PIPE_TEXTURE_CUBE_ARRAY) { +@@ -4577,7 +4604,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + + /* everything is scalar for now */ + lp_build_context_init(&leveli_bld, gallivm, lp_type_int_vec(32, 32)); +- last_level = dynamic_state->last_level(gallivm, ++ last_level = dynamic_state->last_level(gallivm, context_type, + context_ptr, texture_unit, + texture_unit_offset); + +@@ -4624,7 +4651,7 @@ lp_build_size_query_soa(struct gallivm_state *gallivm, + else { + LLVMValueRef last_level; + +- last_level = dynamic_state->last_level(gallivm, ++ last_level = dynamic_state->last_level(gallivm, context_type, + context_ptr, texture_unit, + texture_unit_offset); + num_levels = lp_build_sub(&bld_int_scalar, last_level, first_level); +@@ -4784,31 +4811,39 @@ lp_build_img_op_soa(const struct lp_static_texture_state *static_texture_state, + } + + LLVMValueRef row_stride = dynamic_state->row_stride(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + LLVMValueRef img_stride = dynamic_state->img_stride(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + LLVMValueRef base_ptr = dynamic_state->base_ptr(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + LLVMValueRef width = dynamic_state->width(gallivm, +- params->context_ptr, ++ params->context_type, ++ params->context_ptr, + params->image_index, NULL); + LLVMValueRef height = dynamic_state->height(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + LLVMValueRef depth = dynamic_state->depth(gallivm, +- params->context_ptr, ++ params->context_type, ++ params->context_ptr, + params->image_index, NULL); + LLVMValueRef num_samples = NULL, sample_stride = NULL; + + LLVMValueRef ms_index = params->ms_index; + if (ms_index) { + num_samples = dynamic_state->num_samples(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + sample_stride = dynamic_state->sample_stride(gallivm, ++ params->context_type, + params->context_ptr, + params->image_index, NULL); + } +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h +index 31067e0165491..d335a92388fe4 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h +@@ -267,7 +267,9 @@ struct lp_build_tgsi_params { + LLVMValueRef const_sizes_ptr; + const struct lp_bld_tgsi_system_values *system_values; + const LLVMValueRef (*inputs)[4]; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; ++ LLVMTypeRef thread_data_type; + LLVMValueRef thread_data_ptr; + const struct lp_build_sampler_soa *sampler; + const struct tgsi_shader_info *info; +@@ -521,7 +523,9 @@ struct lp_build_tgsi_soa_context + LLVMValueRef consts_sizes[LP_MAX_TGSI_CONST_BUFFERS]; + const LLVMValueRef (*inputs)[TGSI_NUM_CHANNELS]; + LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS]; ++ LLVMTypeRef context_type; + LLVMValueRef context_ptr; ++ LLVMTypeRef thread_data_type; + LLVMValueRef thread_data_ptr; + + LLVMValueRef ssbo_ptr; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +index f33de194484a0..d98d20e11e5d3 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +@@ -2273,7 +2273,9 @@ emit_tex( struct lp_build_tgsi_soa_context *bld, + params.sample_key = sample_key; + params.texture_index = unit; + params.sampler_index = unit; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.coords = coords; + params.offsets = offsets; +@@ -2442,7 +2444,9 @@ emit_sample(struct lp_build_tgsi_soa_context *bld, + params.sample_key = sample_key; + params.texture_index = texture_unit; + params.sampler_index = sampler_unit; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.coords = coords; + params.offsets = offsets; +@@ -2580,7 +2584,9 @@ emit_fetch_texels( struct lp_build_tgsi_soa_context *bld, + * can exceed this. + */ + params.sampler_index = 0; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.coords = coords; + params.offsets = offsets; +@@ -2665,6 +2671,7 @@ emit_size_query( struct lp_build_tgsi_soa_context *bld, + params.texture_unit = unit; + params.texture_unit_offset = NULL; + params.target = pipe_target; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; + params.is_sviewinfo = TRUE; + params.lod_property = lod_property; +@@ -3453,7 +3460,9 @@ img_load_emit( + memset(¶ms, 0, sizeof(params)); + + params.type = bld->bld_base.base.type; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.coords = coords; + params.outdata = emit_data->output; +@@ -3601,7 +3610,9 @@ img_store_emit( + memset(¶ms, 0, sizeof(params)); + + params.type = bld->bld_base.base.type; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.coords = coords; + params.outdata = NULL; +@@ -3710,6 +3721,7 @@ resq_emit( + params.int_type = bld->bld_base.int_bld.type; + params.texture_unit = buf; + params.target = tgsi_to_pipe_tex_target(target); ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; + params.sizes_out = emit_data->output; + +@@ -3751,7 +3763,9 @@ img_atomic_emit( + memset(¶ms, 0, sizeof(params)); + + params.type = bld->bld_base.base.type; ++ params.context_type = bld->context_type; + params.context_ptr = bld->context_ptr; ++ params.thread_data_type = bld->thread_data_type; + params.thread_data_ptr = bld->thread_data_ptr; + params.exec_mask = mask_vec(bld_base); + params.image_index = emit_data->inst->Src[0].Register.Index; +@@ -4483,7 +4497,9 @@ lp_build_tgsi_soa(struct gallivm_state *gallivm, + bld.sampler = params->sampler; + bld.bld_base.info = params->info; + bld.indirect_files = params->info->indirect_files; ++ bld.context_type = params->context_type; + bld.context_ptr = params->context_ptr; ++ bld.thread_data_type = params->thread_data_type; + bld.thread_data_ptr = params->thread_data_ptr; + bld.image = params->image; + bld.shared_ptr = params->shared_ptr; +diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c +index 86f7b65585ae5..22ac92e1fb7da 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_cs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c +@@ -447,6 +447,7 @@ generate_compute(struct llvmpipe_context *lp, + params.mask = &mask; + params.consts_ptr = consts_ptr; + params.system_values = &system_values; ++ params.context_type = variant->jit_cs_context_type; + params.context_ptr = context_ptr; + params.sampler = sampler; + params.info = &shader->info.base; +diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c +index d1dbd9d787dc1..e10e10836faa3 100644 +--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c ++++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c +@@ -1052,7 +1052,9 @@ generate_fs_loop(struct gallivm_state *gallivm, + params.consts_ptr = consts_ptr; + params.system_values = &system_values; + params.inputs = interp->inputs; ++ params.context_type = context_type; + params.context_ptr = context_ptr; ++ params.thread_data_type = thread_data_type; + params.thread_data_ptr = thread_data_ptr; + params.sampler = sampler; + params.info = &shader->info.base; +diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample.c b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +index 0812bc72cd098..8700eda253332 100644 +--- a/src/gallium/drivers/llvmpipe/lp_tex_sample.c ++++ b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +@@ -110,6 +110,7 @@ struct lp_llvm_image_soa + */ + static LLVMValueRef + lp_llvm_texture_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned texture_unit, + LLVMValueRef texture_unit_offset, +@@ -144,7 +145,7 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + indices[3] = lp_build_const_int32(gallivm, member_index); + + LLVMValueRef ptr = +- LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; + +@@ -166,11 +167,12 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + #define LP_LLVM_TEXTURE_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + lp_llvm_texture_##_name(struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned texture_unit, \ + LLVMValueRef texture_unit_offset) \ + { \ +- return lp_llvm_texture_member(gallivm, context_ptr, \ ++ return lp_llvm_texture_member(gallivm, context_type, context_ptr, \ + texture_unit, texture_unit_offset, \ + _index, #_name, _emit_load ); \ + } +@@ -199,6 +201,7 @@ LP_LLVM_TEXTURE_MEMBER(sample_stride, LP_JIT_TEXTURE_SAMPLE_STRIDE, TRUE) + */ + static LLVMValueRef + lp_llvm_sampler_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned sampler_unit, + unsigned member_index, +@@ -220,7 +223,7 @@ lp_llvm_sampler_member(struct gallivm_state *gallivm, + indices[3] = lp_build_const_int32(gallivm, member_index); + + LLVMValueRef ptr = +- LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; + +@@ -233,10 +236,11 @@ lp_llvm_sampler_member(struct gallivm_state *gallivm, + #define LP_LLVM_SAMPLER_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + lp_llvm_sampler_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned sampler_unit) \ + { \ +- return lp_llvm_sampler_member(gallivm, context_ptr, \ ++ return lp_llvm_sampler_member(gallivm, context_type, context_ptr, \ + sampler_unit, _index, #_name, _emit_load ); \ + } + +@@ -258,6 +262,7 @@ LP_LLVM_SAMPLER_MEMBER(max_aniso, LP_JIT_SAMPLER_MAX_ANISO, TRUE) + */ + static LLVMValueRef + lp_llvm_image_member(struct gallivm_state *gallivm, ++ LLVMTypeRef context_type, + LLVMValueRef context_ptr, + unsigned image_unit, + LLVMValueRef image_unit_offset, +@@ -285,7 +290,7 @@ lp_llvm_image_member(struct gallivm_state *gallivm, + indices[3] = lp_build_const_int32(gallivm, member_index); + + LLVMValueRef ptr = +- LLVMBuildGEP(builder, context_ptr, indices, ARRAY_SIZE(indices), ""); ++ LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + + LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; + +@@ -307,10 +312,11 @@ lp_llvm_image_member(struct gallivm_state *gallivm, + #define LP_LLVM_IMAGE_MEMBER(_name, _index, _emit_load) \ + static LLVMValueRef \ + lp_llvm_image_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ + LLVMValueRef context_ptr, \ + unsigned image_unit, LLVMValueRef image_unit_offset) \ + { \ +- return lp_llvm_image_member(gallivm, context_ptr, \ ++ return lp_llvm_image_member(gallivm, context_type, context_ptr, \ + image_unit, image_unit_offset, \ + _index, #_name, _emit_load ); \ + } +@@ -329,13 +335,14 @@ LP_LLVM_IMAGE_MEMBER(sample_stride, LP_JIT_IMAGE_SAMPLE_STRIDE, TRUE) + #if LP_USE_TEXTURE_CACHE + static LLVMValueRef + lp_llvm_texture_cache_ptr(struct gallivm_state *gallivm, ++ LLVMTypeRef thread_data_type, + LLVMValueRef thread_data_ptr, + unsigned unit) + { + /* We use the same cache for all units */ + (void)unit; + +- return lp_jit_thread_data_cache(gallivm, LLVMGetElementType(LLVMTypeOf(thread_data_ptr)), thread_data_ptr); ++ return lp_jit_thread_data_cache(gallivm, thread_data_type, thread_data_ptr); + } + #endif + +-- +GitLab + + +From 02c675b1960a11f02b91018c519d9da6b371615b Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 14:41:20 +1000 +Subject: [PATCH 3/6] draw/llvmpipe: move texture/sampler/image member load to + opaque. + +This removes the non-opaque paths from the draw/lp sampling code. + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/auxiliary/draw/draw_llvm_sample.c | 24 ++++++++++++------- + src/gallium/drivers/llvmpipe/lp_tex_sample.c | 24 ++++++++++++++++--- + 2 files changed, 36 insertions(+), 12 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm_sample.c b/src/gallium/auxiliary/draw/draw_llvm_sample.c +index 5a48fb17caf2b..cde003afcebe6 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm_sample.c ++++ b/src/gallium/auxiliary/draw/draw_llvm_sample.c +@@ -131,9 +131,11 @@ draw_llvm_texture_member(struct gallivm_state *gallivm, + + ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- if (emit_load) +- res = LLVMBuildLoad(builder, ptr, ""); +- else ++ if (emit_load) { ++ LLVMTypeRef tex_type = LLVMStructGetTypeAtIndex(context_type, DRAW_JIT_CTX_TEXTURES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(tex_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else + res = ptr; + + lp_build_name(res, "context.texture%u.%s", texture_unit, member_name); +@@ -177,9 +179,11 @@ draw_llvm_sampler_member(struct gallivm_state *gallivm, + + ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- if (emit_load) +- res = LLVMBuildLoad(builder, ptr, ""); +- else ++ if (emit_load) { ++ LLVMTypeRef samp_type = LLVMStructGetTypeAtIndex(context_type, DRAW_JIT_CTX_SAMPLERS); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(samp_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else + res = ptr; + + lp_build_name(res, "context.sampler%u.%s", sampler_unit, member_name); +@@ -228,9 +232,11 @@ draw_llvm_image_member(struct gallivm_state *gallivm, + + ptr = LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- if (emit_load) +- res = LLVMBuildLoad(builder, ptr, ""); +- else ++ if (emit_load) { ++ LLVMTypeRef img_type = LLVMStructGetTypeAtIndex(context_type, DRAW_JIT_CTX_IMAGES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(img_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else + res = ptr; + + lp_build_name(res, "context.image%u.%s", image_unit, member_name); +diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample.c b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +index 8700eda253332..e62ec9f6d8915 100644 +--- a/src/gallium/drivers/llvmpipe/lp_tex_sample.c ++++ b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +@@ -147,7 +147,13 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + LLVMValueRef ptr = + LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; ++ LLVMValueRef res; ++ if (emit_load) { ++ LLVMTypeRef tex_type = LLVMStructGetTypeAtIndex(context_type, LP_JIT_CTX_TEXTURES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(tex_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else ++ res = ptr; + + lp_build_name(res, "context.texture%u.%s", texture_unit, member_name); + +@@ -225,7 +231,13 @@ lp_llvm_sampler_member(struct gallivm_state *gallivm, + LLVMValueRef ptr = + LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; ++ LLVMValueRef res; ++ if (emit_load) { ++ LLVMTypeRef samp_type = LLVMStructGetTypeAtIndex(context_type, LP_JIT_CTX_SAMPLERS); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(samp_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else ++ res = ptr; + + lp_build_name(res, "context.sampler%u.%s", sampler_unit, member_name); + +@@ -292,7 +304,13 @@ lp_llvm_image_member(struct gallivm_state *gallivm, + LLVMValueRef ptr = + LLVMBuildGEP2(builder, context_type, context_ptr, indices, ARRAY_SIZE(indices), ""); + +- LLVMValueRef res = emit_load ? LLVMBuildLoad(builder, ptr, "") : ptr; ++ LLVMValueRef res; ++ if (emit_load) { ++ LLVMTypeRef img_type = LLVMStructGetTypeAtIndex(context_type, LP_JIT_CTX_IMAGES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(img_type), member_index); ++ res = LLVMBuildLoad2(builder, res_type, ptr, ""); ++ } else ++ res = ptr; + + lp_build_name(res, "context.image%u.%s", image_unit, member_name); + +-- +GitLab + + +From 1a9889ae12757e9bdc019cbd109783a3e93121b7 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 14:59:54 +1000 +Subject: [PATCH 4/6] draw/llvmpipe: add way to return pointer types to generic + code. + +Some of the generic code tries to load from things it has no +types for, mip offsets, row and image strides. + +Fix the interfaces to allow returning types for these. + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/auxiliary/draw/draw_llvm_sample.c | 49 ++++++++++++++++--- + src/gallium/auxiliary/gallivm/lp_bld_sample.h | 12 +++-- + .../auxiliary/gallivm/lp_bld_sample_soa.c | 16 ++++-- + src/gallium/drivers/llvmpipe/lp_tex_sample.c | 49 ++++++++++++++++--- + 4 files changed, 104 insertions(+), 22 deletions(-) + +diff --git a/src/gallium/auxiliary/draw/draw_llvm_sample.c b/src/gallium/auxiliary/draw/draw_llvm_sample.c +index cde003afcebe6..19e9937d57ac6 100644 +--- a/src/gallium/auxiliary/draw/draw_llvm_sample.c ++++ b/src/gallium/auxiliary/draw/draw_llvm_sample.c +@@ -106,7 +106,8 @@ draw_llvm_texture_member(struct gallivm_state *gallivm, + LLVMValueRef texture_unit_offset, + unsigned member_index, + const char *member_name, +- boolean emit_load) ++ boolean emit_load, ++ LLVMTypeRef *out_type) + { + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef indices[4]; +@@ -138,6 +139,12 @@ draw_llvm_texture_member(struct gallivm_state *gallivm, + } else + res = ptr; + ++ if (out_type) { ++ LLVMTypeRef tex_type = LLVMStructGetTypeAtIndex(context_type, DRAW_JIT_CTX_TEXTURES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(tex_type), member_index); ++ *out_type = res_type; ++ } ++ + lp_build_name(res, "context.texture%u.%s", texture_unit, member_name); + + return res; +@@ -263,7 +270,21 @@ draw_llvm_image_member(struct gallivm_state *gallivm, + { \ + return draw_llvm_texture_member(gallivm, context_type, context_ptr, \ + texture_unit, texture_unit_offset, \ +- _index, #_name, _emit_load ); \ ++ _index, #_name, _emit_load, NULL ); \ ++ } ++ ++#define DRAW_LLVM_TEXTURE_MEMBER_OUTTYPE(_name, _index, _emit_load) \ ++ static LLVMValueRef \ ++ draw_llvm_texture_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ ++ LLVMValueRef context_ptr, \ ++ unsigned texture_unit, \ ++ LLVMValueRef texture_unit_offset, \ ++ LLVMTypeRef *out_type) \ ++ { \ ++ return draw_llvm_texture_member(gallivm, context_type, context_ptr, \ ++ texture_unit, texture_unit_offset, \ ++ _index, #_name, _emit_load, out_type); \ + } + + +@@ -273,9 +294,9 @@ DRAW_LLVM_TEXTURE_MEMBER(depth, DRAW_JIT_TEXTURE_DEPTH, TRUE) + DRAW_LLVM_TEXTURE_MEMBER(first_level,DRAW_JIT_TEXTURE_FIRST_LEVEL, TRUE) + DRAW_LLVM_TEXTURE_MEMBER(last_level, DRAW_JIT_TEXTURE_LAST_LEVEL, TRUE) + DRAW_LLVM_TEXTURE_MEMBER(base_ptr, DRAW_JIT_TEXTURE_BASE, TRUE) +-DRAW_LLVM_TEXTURE_MEMBER(row_stride, DRAW_JIT_TEXTURE_ROW_STRIDE, FALSE) +-DRAW_LLVM_TEXTURE_MEMBER(img_stride, DRAW_JIT_TEXTURE_IMG_STRIDE, FALSE) +-DRAW_LLVM_TEXTURE_MEMBER(mip_offsets, DRAW_JIT_TEXTURE_MIP_OFFSETS, FALSE) ++DRAW_LLVM_TEXTURE_MEMBER_OUTTYPE(row_stride, DRAW_JIT_TEXTURE_ROW_STRIDE, FALSE) ++DRAW_LLVM_TEXTURE_MEMBER_OUTTYPE(img_stride, DRAW_JIT_TEXTURE_IMG_STRIDE, FALSE) ++DRAW_LLVM_TEXTURE_MEMBER_OUTTYPE(mip_offsets, DRAW_JIT_TEXTURE_MIP_OFFSETS, FALSE) + DRAW_LLVM_TEXTURE_MEMBER(num_samples, DRAW_JIT_TEXTURE_NUM_SAMPLES, TRUE) + DRAW_LLVM_TEXTURE_MEMBER(sample_stride, DRAW_JIT_TEXTURE_SAMPLE_STRIDE, TRUE) + +@@ -309,13 +330,27 @@ DRAW_LLVM_SAMPLER_MEMBER(max_aniso, DRAW_JIT_SAMPLER_MAX_ANISO, TRUE) + _index, #_name, _emit_load ); \ + } + ++#define DRAW_LLVM_IMAGE_MEMBER_OUTTYPE(_name, _index, _emit_load) \ ++ static LLVMValueRef \ ++ draw_llvm_image_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ ++ LLVMValueRef context_ptr, \ ++ unsigned image_unit, LLVMValueRef image_unit_offset, \ ++ LLVMTypeRef *out_type) \ ++ { \ ++ assert(!out_type); \ ++ return draw_llvm_image_member(gallivm, context_type, context_ptr, \ ++ image_unit, image_unit_offset, \ ++ _index, #_name, _emit_load); \ ++ } ++ + + DRAW_LLVM_IMAGE_MEMBER(width, DRAW_JIT_IMAGE_WIDTH, TRUE) + DRAW_LLVM_IMAGE_MEMBER(height, DRAW_JIT_IMAGE_HEIGHT, TRUE) + DRAW_LLVM_IMAGE_MEMBER(depth, DRAW_JIT_IMAGE_DEPTH, TRUE) + DRAW_LLVM_IMAGE_MEMBER(base_ptr, DRAW_JIT_IMAGE_BASE, TRUE) +-DRAW_LLVM_IMAGE_MEMBER(row_stride, DRAW_JIT_IMAGE_ROW_STRIDE, TRUE) +-DRAW_LLVM_IMAGE_MEMBER(img_stride, DRAW_JIT_IMAGE_IMG_STRIDE, TRUE) ++DRAW_LLVM_IMAGE_MEMBER_OUTTYPE(row_stride, DRAW_JIT_IMAGE_ROW_STRIDE, TRUE) ++DRAW_LLVM_IMAGE_MEMBER_OUTTYPE(img_stride, DRAW_JIT_IMAGE_IMG_STRIDE, TRUE) + DRAW_LLVM_IMAGE_MEMBER(num_samples, DRAW_JIT_IMAGE_NUM_SAMPLES, TRUE) + DRAW_LLVM_IMAGE_MEMBER(sample_stride, DRAW_JIT_IMAGE_SAMPLE_STRIDE, TRUE) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.h b/src/gallium/auxiliary/gallivm/lp_bld_sample.h +index ecebc8fc631fe..caf0ab0907d80 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.h +@@ -272,14 +272,16 @@ struct lp_sampler_dynamic_state + (*row_stride)(struct gallivm_state *gallivm, + LLVMTypeRef context_type, + LLVMValueRef context_ptr, +- unsigned texture_unit, LLVMValueRef texture_unit_offset); ++ unsigned texture_unit, LLVMValueRef texture_unit_offset, ++ LLVMTypeRef *out_type); + + /** Obtain stride in bytes between image slices (returns int32) */ + LLVMValueRef + (*img_stride)(struct gallivm_state *gallivm, + LLVMTypeRef context_type, + LLVMValueRef context_ptr, +- unsigned texture_unit, LLVMValueRef texture_unit_offset); ++ unsigned texture_unit, LLVMValueRef texture_unit_offset,\ ++ LLVMTypeRef *out_type); + + /** Obtain pointer to base of texture */ + LLVMValueRef +@@ -293,7 +295,8 @@ struct lp_sampler_dynamic_state + (*mip_offsets)(struct gallivm_state *gallivm, + LLVMTypeRef context_type, + LLVMValueRef context_ptr, +- unsigned texture_unit, LLVMValueRef texture_unit_offset); ++ unsigned texture_unit, LLVMValueRef texture_unit_offset, ++ LLVMTypeRef *out_type); + + /** Obtain number of samples (returns int32) */ + LLVMValueRef +@@ -447,9 +450,12 @@ struct lp_build_sample_context + struct lp_build_context lodi_bld; + + /* Common dynamic state values */ ++ LLVMTypeRef row_stride_type; + LLVMValueRef row_stride_array; ++ LLVMTypeRef img_stride_type; + LLVMValueRef img_stride_array; + LLVMValueRef base_ptr; ++ LLVMTypeRef mip_offsets_type; + LLVMValueRef mip_offsets; + LLVMValueRef cache; + LLVMValueRef sample_stride; +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +index c24833dafe123..2e90d09ae617f 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +@@ -3574,13 +3574,16 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + context_ptr, texture_index, + NULL); + bld.row_stride_array = dynamic_state->row_stride(gallivm, context_type, +- context_ptr, texture_index, NULL); ++ context_ptr, texture_index, NULL, ++ &bld.row_stride_type); + bld.img_stride_array = dynamic_state->img_stride(gallivm, context_type, +- context_ptr, texture_index, NULL); ++ context_ptr, texture_index, NULL, ++ &bld.img_stride_type); + bld.base_ptr = dynamic_state->base_ptr(gallivm, context_type, + context_ptr, texture_index, NULL); + bld.mip_offsets = dynamic_state->mip_offsets(gallivm, context_type, +- context_ptr, texture_index, NULL); ++ context_ptr, texture_index, NULL, ++ &bld.mip_offsets_type); + + if (fetch_ms) { + bld.sample_stride = +@@ -3820,9 +3823,12 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm, + bld4.dynamic_state = bld.dynamic_state; + bld4.format_desc = bld.format_desc; + bld4.dims = bld.dims; ++ bld4.row_stride_type = bld.row_stride_type; + bld4.row_stride_array = bld.row_stride_array; ++ bld4.img_stride_type = bld.img_stride_type; + bld4.img_stride_array = bld.img_stride_array; + bld4.base_ptr = bld.base_ptr; ++ bld4.mip_offsets_type = bld.mip_offsets_type; + bld4.mip_offsets = bld.mip_offsets; + bld4.int_size = bld.int_size; + bld4.int_tex_blocksize = bld.int_tex_blocksize; +@@ -4813,11 +4819,11 @@ lp_build_img_op_soa(const struct lp_static_texture_state *static_texture_state, + LLVMValueRef row_stride = dynamic_state->row_stride(gallivm, + params->context_type, + params->context_ptr, +- params->image_index, NULL); ++ params->image_index, NULL, NULL); + LLVMValueRef img_stride = dynamic_state->img_stride(gallivm, + params->context_type, + params->context_ptr, +- params->image_index, NULL); ++ params->image_index, NULL, NULL); + LLVMValueRef base_ptr = dynamic_state->base_ptr(gallivm, + params->context_type, + params->context_ptr, +diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample.c b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +index e62ec9f6d8915..ddaea90aecda2 100644 +--- a/src/gallium/drivers/llvmpipe/lp_tex_sample.c ++++ b/src/gallium/drivers/llvmpipe/lp_tex_sample.c +@@ -116,7 +116,8 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + LLVMValueRef texture_unit_offset, + unsigned member_index, + const char *member_name, +- boolean emit_load) ++ boolean emit_load, ++ LLVMTypeRef *out_type) + { + LLVMBuilderRef builder = gallivm->builder; + LLVMValueRef indices[4]; +@@ -155,6 +156,12 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + } else + res = ptr; + ++ if (out_type) { ++ LLVMTypeRef tex_type = LLVMStructGetTypeAtIndex(context_type, LP_JIT_CTX_TEXTURES); ++ LLVMTypeRef res_type = LLVMStructGetTypeAtIndex(LLVMGetElementType(tex_type), member_index); ++ *out_type = res_type; ++ } ++ + lp_build_name(res, "context.texture%u.%s", texture_unit, member_name); + + return res; +@@ -180,7 +187,21 @@ lp_llvm_texture_member(struct gallivm_state *gallivm, + { \ + return lp_llvm_texture_member(gallivm, context_type, context_ptr, \ + texture_unit, texture_unit_offset, \ +- _index, #_name, _emit_load ); \ ++ _index, #_name, _emit_load, NULL ); \ ++ } ++ ++#define LP_LLVM_TEXTURE_MEMBER_OUTTYPE(_name, _index, _emit_load) \ ++ static LLVMValueRef \ ++ lp_llvm_texture_##_name(struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ ++ LLVMValueRef context_ptr, \ ++ unsigned texture_unit, \ ++ LLVMValueRef texture_unit_offset, \ ++ LLVMTypeRef *out_type) \ ++ { \ ++ return lp_llvm_texture_member(gallivm, context_type, context_ptr, \ ++ texture_unit, texture_unit_offset, \ ++ _index, #_name, _emit_load, out_type ); \ + } + + +@@ -190,9 +211,9 @@ LP_LLVM_TEXTURE_MEMBER(depth, LP_JIT_TEXTURE_DEPTH, TRUE) + LP_LLVM_TEXTURE_MEMBER(first_level, LP_JIT_TEXTURE_FIRST_LEVEL, TRUE) + LP_LLVM_TEXTURE_MEMBER(last_level, LP_JIT_TEXTURE_LAST_LEVEL, TRUE) + LP_LLVM_TEXTURE_MEMBER(base_ptr, LP_JIT_TEXTURE_BASE, TRUE) +-LP_LLVM_TEXTURE_MEMBER(row_stride, LP_JIT_TEXTURE_ROW_STRIDE, FALSE) +-LP_LLVM_TEXTURE_MEMBER(img_stride, LP_JIT_TEXTURE_IMG_STRIDE, FALSE) +-LP_LLVM_TEXTURE_MEMBER(mip_offsets, LP_JIT_TEXTURE_MIP_OFFSETS, FALSE) ++LP_LLVM_TEXTURE_MEMBER_OUTTYPE(row_stride, LP_JIT_TEXTURE_ROW_STRIDE, FALSE) ++LP_LLVM_TEXTURE_MEMBER_OUTTYPE(img_stride, LP_JIT_TEXTURE_IMG_STRIDE, FALSE) ++LP_LLVM_TEXTURE_MEMBER_OUTTYPE(mip_offsets, LP_JIT_TEXTURE_MIP_OFFSETS, FALSE) + LP_LLVM_TEXTURE_MEMBER(num_samples, LP_JIT_TEXTURE_NUM_SAMPLES, TRUE) + LP_LLVM_TEXTURE_MEMBER(sample_stride, LP_JIT_TEXTURE_SAMPLE_STRIDE, TRUE) + +@@ -339,13 +360,27 @@ lp_llvm_image_member(struct gallivm_state *gallivm, + _index, #_name, _emit_load ); \ + } + ++#define LP_LLVM_IMAGE_MEMBER_OUTTYPE(_name, _index, _emit_load) \ ++ static LLVMValueRef \ ++ lp_llvm_image_##_name( struct gallivm_state *gallivm, \ ++ LLVMTypeRef context_type, \ ++ LLVMValueRef context_ptr, \ ++ unsigned image_unit, LLVMValueRef image_unit_offset, \ ++ LLVMTypeRef *out_type) \ ++ { \ ++ assert(!out_type); \ ++ return lp_llvm_image_member(gallivm, context_type, context_ptr, \ ++ image_unit, image_unit_offset, \ ++ _index, #_name, _emit_load ); \ ++ } ++ + + LP_LLVM_IMAGE_MEMBER(width, LP_JIT_IMAGE_WIDTH, TRUE) + LP_LLVM_IMAGE_MEMBER(height, LP_JIT_IMAGE_HEIGHT, TRUE) + LP_LLVM_IMAGE_MEMBER(depth, LP_JIT_IMAGE_DEPTH, TRUE) + LP_LLVM_IMAGE_MEMBER(base_ptr, LP_JIT_IMAGE_BASE, TRUE) +-LP_LLVM_IMAGE_MEMBER(row_stride, LP_JIT_IMAGE_ROW_STRIDE, TRUE) +-LP_LLVM_IMAGE_MEMBER(img_stride, LP_JIT_IMAGE_IMG_STRIDE, TRUE) ++LP_LLVM_IMAGE_MEMBER_OUTTYPE(row_stride, LP_JIT_IMAGE_ROW_STRIDE, TRUE) ++LP_LLVM_IMAGE_MEMBER_OUTTYPE(img_stride, LP_JIT_IMAGE_IMG_STRIDE, TRUE) + LP_LLVM_IMAGE_MEMBER(num_samples, LP_JIT_IMAGE_NUM_SAMPLES, TRUE) + LP_LLVM_IMAGE_MEMBER(sample_stride, LP_JIT_IMAGE_SAMPLE_STRIDE, TRUE) + +-- +GitLab + + +From 0c865245900615e57f103b5e3f8759a68e978f85 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Mon, 26 Sep 2022 15:02:38 +1000 +Subject: [PATCH 5/6] gallivm/sample: use retrieved types to do opaque pointer + loads. + +This uses the types to do the loads using opaque ptr interfaces. + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/auxiliary/gallivm/lp_bld_sample.c | 26 ++++++++++++------- + 1 file changed, 16 insertions(+), 10 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +index cdbf737031a8c..9e608303451d6 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c +@@ -1147,10 +1147,11 @@ lp_build_linear_mip_levels(struct lp_build_sample_context *bld, + * A helper function that factorizes this common pattern. + */ + static LLVMValueRef +-load_mip(struct gallivm_state *gallivm, LLVMValueRef offsets, LLVMValueRef index1) { ++load_mip(struct gallivm_state *gallivm, ++ LLVMTypeRef ptr_type, LLVMValueRef offsets, LLVMValueRef index1) { + LLVMValueRef zero = lp_build_const_int32(gallivm, 0); + LLVMValueRef indexes[2] = {zero, index1}; +- LLVMValueRef ptr = LLVMBuildGEP(gallivm->builder, offsets, indexes, ARRAY_SIZE(indexes), ""); ++ LLVMValueRef ptr = LLVMBuildGEP2(gallivm->builder, ptr_type, offsets, indexes, ARRAY_SIZE(indexes), ""); + return LLVMBuildLoad2(gallivm->builder, LLVMInt32TypeInContext(gallivm->context), ptr, ""); + } + +@@ -1162,9 +1163,11 @@ LLVMValueRef + lp_build_get_mipmap_level(struct lp_build_sample_context *bld, + LLVMValueRef level) + { +- LLVMValueRef mip_offset = load_mip(bld->gallivm, bld->mip_offsets, level); ++ LLVMValueRef mip_offset = load_mip(bld->gallivm, bld->mip_offsets_type, bld->mip_offsets, level); + LLVMBuilderRef builder = bld->gallivm->builder; +- LLVMValueRef data_ptr = LLVMBuildGEP(builder, bld->base_ptr, &mip_offset, 1, ""); ++ LLVMValueRef data_ptr = LLVMBuildGEP2(builder, ++ LLVMInt8TypeInContext(bld->gallivm->context), ++ bld->base_ptr, &mip_offset, 1, ""); + return data_ptr; + } + +@@ -1180,7 +1183,7 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + LLVMValueRef offsets, offset1; + + if (bld->num_mips == 1) { +- offset1 = load_mip(bld->gallivm, bld->mip_offsets, level); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets_type, bld->mip_offsets, level); + offsets = lp_build_broadcast_scalar(&bld->int_coord_bld, offset1); + } + else if (bld->num_mips == bld->coord_bld.type.length / 4) { +@@ -1189,7 +1192,7 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + offsets = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- offset1 = load_mip(bld->gallivm, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets_type, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); + LLVMValueRef indexo = lp_build_const_int32(bld->gallivm, 4 * i); + offsets = LLVMBuildInsertElement(builder, offsets, offset1, indexo, ""); + } +@@ -1203,7 +1206,7 @@ lp_build_get_mip_offsets(struct lp_build_sample_context *bld, + offsets = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- offset1 = load_mip(bld->gallivm, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); ++ offset1 = load_mip(bld->gallivm, bld->mip_offsets_type, bld->mip_offsets, LLVMBuildExtractElement(builder, level, indexi, "")); + offsets = LLVMBuildInsertElement(builder, offsets, offset1, indexi, ""); + } + } +@@ -1333,12 +1336,13 @@ lp_build_scale_view_dim(struct gallivm_state *gallivm, LLVMValueRef size, + */ + static LLVMValueRef + lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, ++ LLVMTypeRef stride_type, + LLVMValueRef stride_array, LLVMValueRef level) + { + LLVMBuilderRef builder = bld->gallivm->builder; + LLVMValueRef stride, stride1; + if (bld->num_mips == 1) { +- stride1 = load_mip(bld->gallivm, stride_array, level); ++ stride1 = load_mip(bld->gallivm, stride_type, stride_array, level); + stride = lp_build_broadcast_scalar(&bld->int_coord_bld, stride1); + } + else if (bld->num_mips == bld->coord_bld.type.length / 4) { +@@ -1348,7 +1352,7 @@ lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, + stride = bld->int_coord_bld.undef; + for (i = 0; i < bld->num_mips; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- stride1 = load_mip(bld->gallivm, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); ++ stride1 = load_mip(bld->gallivm, stride_type, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); + LLVMValueRef indexo = lp_build_const_int32(bld->gallivm, 4 * i); + stride = LLVMBuildInsertElement(builder, stride, stride1, indexo, ""); + } +@@ -1363,7 +1367,7 @@ lp_build_get_level_stride_vec(struct lp_build_sample_context *bld, + stride = bld->int_coord_bld.undef; + for (i = 0; i < bld->coord_bld.type.length; i++) { + LLVMValueRef indexi = lp_build_const_int32(bld->gallivm, i); +- stride1 = load_mip(bld->gallivm, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); ++ stride1 = load_mip(bld->gallivm, stride_type, stride_array, LLVMBuildExtractElement(builder, level, indexi, "")); + stride = LLVMBuildInsertElement(builder, stride, stride1, indexi, ""); + } + } +@@ -1515,11 +1519,13 @@ lp_build_mipmap_level_sizes(struct lp_build_sample_context *bld, + + if (dims >= 2) { + *row_stride_vec = lp_build_get_level_stride_vec(bld, ++ bld->row_stride_type, + bld->row_stride_array, + ilevel); + } + if (dims == 3 || has_layer_coord(bld->static_texture_state->target)) { + *img_stride_vec = lp_build_get_level_stride_vec(bld, ++ bld->img_stride_type, + bld->img_stride_array, + ilevel); + } +-- +GitLab + + +From 6f27bf250461e02ad7df17ad41cbfa71a4cae487 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Tue, 27 Sep 2022 15:28:18 +1000 +Subject: [PATCH 6/6] gallivm: remove legacy pointer_get apis + +These are no longer used. + +Reviewed-by: Mihai Preda <mhpreda@gmail.com> +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18947> +--- + src/gallium/auxiliary/gallivm/lp_bld_struct.c | 117 ------------------ + src/gallium/auxiliary/gallivm/lp_bld_struct.h | 65 ---------- + 2 files changed, 182 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +index 73c32cebadfb6..0595c3d3df220 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c +@@ -41,43 +41,6 @@ + #include "lp_bld_debug.h" + #include "lp_bld_struct.h" + +- +-/* Deprecated (used only by llvmpipe); use lp_build_struct_get_ptr2() instead. */ +-LLVMValueRef +-lp_build_struct_get_ptr(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- unsigned member, +- const char *name) +-{ +- LLVMValueRef indices[2]; +- LLVMValueRef member_ptr; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +- +- indices[0] = lp_build_const_int32(gallivm, 0); +- indices[1] = lp_build_const_int32(gallivm, member); +- member_ptr = LLVMBuildGEP(gallivm->builder, ptr, indices, ARRAY_SIZE(indices), ""); +- lp_build_name(member_ptr, "%s.%s_ptr", LLVMGetValueName(ptr), name); +- return member_ptr; +-} +- +-/* Deprecated (used only by llvmpipe); use lp_build_struct_get2() instead. */ +-LLVMValueRef +-lp_build_struct_get(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- unsigned member, +- const char *name) +-{ +- LLVMValueRef member_ptr; +- LLVMValueRef res; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMStructTypeKind); +- member_ptr = lp_build_struct_get_ptr(gallivm, ptr, member, name); +- res = LLVMBuildLoad(gallivm->builder, member_ptr, ""); +- lp_build_name(res, "%s.%s", LLVMGetValueName(ptr), name); +- return res; +-} +- + LLVMValueRef + lp_build_struct_get_ptr2(struct gallivm_state *gallivm, + LLVMTypeRef ptr_type, +@@ -154,86 +117,6 @@ lp_build_array_get2(struct gallivm_state *gallivm, + return res; + } + +-LLVMValueRef +-lp_build_array_get_ptr(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index) +-{ +- LLVMValueRef indices[2]; +- LLVMValueRef element_ptr; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); +- indices[0] = lp_build_const_int32(gallivm, 0); +- indices[1] = index; +- element_ptr = LLVMBuildGEP(gallivm->builder, ptr, indices, ARRAY_SIZE(indices), ""); +-#ifdef DEBUG +- lp_build_name(element_ptr, "&%s[%s]", +- LLVMGetValueName(ptr), LLVMGetValueName(index)); +-#endif +- return element_ptr; +-} +- +- +-LLVMValueRef +-lp_build_array_get(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index) +-{ +- LLVMValueRef element_ptr; +- LLVMValueRef res; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); +- element_ptr = lp_build_array_get_ptr(gallivm, ptr, index); +- res = LLVMBuildLoad(gallivm->builder, element_ptr, ""); +-#ifdef DEBUG +- lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); +-#endif +- return res; +-} +- +- +-void +-lp_build_array_set(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index, +- LLVMValueRef value) +-{ +- LLVMValueRef element_ptr; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- assert(LLVM_VERSION_MAJOR >= 15 || LLVMGetTypeKind(LLVMGetElementType(LLVMTypeOf(ptr))) == LLVMArrayTypeKind); +- element_ptr = lp_build_array_get_ptr(gallivm, ptr, index); +- LLVMBuildStore(gallivm->builder, value, element_ptr); +-} +- +- +-LLVMValueRef +-lp_build_pointer_get(LLVMBuilderRef builder, +- LLVMValueRef ptr, +- LLVMValueRef index) +-{ +- return lp_build_pointer_get_unaligned(builder, ptr, index, 0); +-} +- +- +-LLVMValueRef +-lp_build_pointer_get_unaligned(LLVMBuilderRef builder, +- LLVMValueRef ptr, +- LLVMValueRef index, +- unsigned alignment) +-{ +- LLVMValueRef element_ptr; +- LLVMValueRef res; +- assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); +- element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); +- res = LLVMBuildLoad(builder, element_ptr, ""); +- if (alignment) +- LLVMSetAlignment(res, alignment); +-#ifdef DEBUG +- lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); +-#endif +- return res; +-} +- + LLVMValueRef + lp_build_pointer_get_unaligned2(LLVMBuilderRef builder, + LLVMTypeRef ptr_type, +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.h b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +index 52d6020563bfb..11f256964f540 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_struct.h ++++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.h +@@ -53,26 +53,6 @@ + offsetof(_ctype, _cmember)) + + +-/** +- * Get value pointer to a structure member. +- * Deprecated (used only by llvmpipe); use lp_build_struct_get_ptr2() instead. +- */ +-LLVMValueRef +-lp_build_struct_get_ptr(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- unsigned member, +- const char *name); +- +-/** +- * Get the value of a structure member. +- * Deprecated (used only by llvmpipe); use lp_build_struct_get2() instead. +- */ +-LLVMValueRef +-lp_build_struct_get(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- unsigned member, +- const char *name); +- + /** + * Get value pointer to a structure member. + * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. +@@ -107,51 +87,6 @@ lp_build_array_get2(struct gallivm_state *gallivm, + LLVMValueRef ptr, + LLVMValueRef index); + +-/** +- * Get value pointer to an array element. +- */ +-LLVMValueRef +-lp_build_array_get_ptr(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index); +- +-/** +- * Get the value of an array element. +- */ +-LLVMValueRef +-lp_build_array_get(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index); +- +-/** +- * Set the value of an array element. +- */ +-void +-lp_build_array_set(struct gallivm_state *gallivm, +- LLVMValueRef ptr, +- LLVMValueRef index, +- LLVMValueRef value); +- +-/** +- * Get the value of an array element. +- */ +-LLVMValueRef +-lp_build_pointer_get(LLVMBuilderRef builder, +- LLVMValueRef ptr, +- LLVMValueRef index); +- +-/** +- * Get the value of an array element, with explicit alignment. +- * +- * If the element size is different from the alignment this will +- * cause llvm to emit an unaligned load +- */ +-LLVMValueRef +-lp_build_pointer_get_unaligned(LLVMBuilderRef builder, +- LLVMValueRef ptr, +- LLVMValueRef index, +- unsigned alignment); +- + /** + * Get the value of an array element. + * This takes the explicit LLVM type of ptr, as required by LLVM-15 opaque-pointers. +-- +GitLab + diff --git a/user/mesa/llvm18.patch b/user/mesa/llvm18.patch new file mode 100644 index 000000000..660bacb91 --- /dev/null +++ b/user/mesa/llvm18.patch @@ -0,0 +1,397 @@ +From f79617fe804ea6524651ff1bc3a91098d3199179 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.olsak@amd.com> +Date: Mon, 25 Sep 2023 15:57:33 -0400 +Subject: [PATCH] amd/llvm: fix build with LLVM 18 + +Reviewed-by: Dave Airlie <airlied@redhat.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25388> +--- + src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +index 5e7a30a6cc2e3..e213f7e4be180 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp ++++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +@@ -366,7 +366,11 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, + builder.setEngineKind(EngineKind::JIT) + .setErrorStr(&Error) + .setTargetOptions(options) ++#if LLVM_VERSION_MAJOR >= 18 ++ .setOptLevel((CodeGenOptLevel)OptLevel); ++#else + .setOptLevel((CodeGenOpt::Level)OptLevel); ++#endif + + #if DETECT_OS_WINDOWS + /* +-- +GitLab + + + + + + +<!DOCTYPE html> +<html class="gl-light ui-neutral with-header with-top-bar " lang="en"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<meta content="IE=edge" http-equiv="X-UA-Compatible"> +<meta content="width=device-width, initial-scale=1" name="viewport"> +<title>gallivm: handle llvm 16 atexit ordering problems. (b3cfec2f) · Commits · Mesa / mesa · GitLab</title> +<script> +//<![CDATA[ +window.gon={};gon.math_rendering_limits_enabled=true;gon.features={"ciGraphqlPipelineMiniGraph":false}; +//]]> +</script> + + + + + + +<link rel="stylesheet" href="/assets/application-bc8000290bc8c8c0ebadb5c9d96dac50df8244426ef375a23cfae334e9b100c2.css" media="all" /> +<link rel="stylesheet" href="/assets/page_bundles/pipelines-147f0c35e12b857600d63ad57bd1505da553bee448fee17c49459845401fed79.css" media="all" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-5653213c51a6c90453a926cfc5e5e71ad9b41881a20a408bef8a303cf175435c.css" media="all" /><link rel="stylesheet" href="/assets/page_bundles/work_items-4dbc32cca030ff7727ba26485149518edc039e72f1577ef00291805720518949.css" media="all" /> +<link rel="stylesheet" href="/assets/application_utilities-d9a7b82eeacf5bfb8ceea81780b391ff56bc5b4332509ae17839f3590bce0ae9.css" media="all" /> +<link rel="stylesheet" href="/assets/tailwind-c4fd78b89a0e3b72cbd08ce282e35067bb563355705f68ef5cb893962ccc7c32.css" media="all" /> + + +<link rel="stylesheet" href="/assets/fonts-fae5d3f79948bd85f18b6513a025f863b19636e85b09a1492907eb4b1bb0557b.css" media="all" /> +<link rel="stylesheet" href="/assets/highlight/themes/white-2ffecda73965655b02849f077e67509c64f03bf7959a10ee45a0147e79ab96fd.css" media="all" /> + + +<link rel="preload" href="/assets/application_utilities-d9a7b82eeacf5bfb8ceea81780b391ff56bc5b4332509ae17839f3590bce0ae9.css" as="style" type="text/css"> +<link rel="preload" href="/assets/application-bc8000290bc8c8c0ebadb5c9d96dac50df8244426ef375a23cfae334e9b100c2.css" as="style" type="text/css"> +<link rel="preload" href="/assets/highlight/themes/white-2ffecda73965655b02849f077e67509c64f03bf7959a10ee45a0147e79ab96fd.css" as="style" type="text/css"> + + + + + +<script src="/assets/webpack/runtime.c3b445fb.bundle.js" defer="defer"></script> +<script src="/assets/webpack/main.aa8f43d1.chunk.js" defer="defer"></script> +<script src="/assets/webpack/graphql.e1f11a07.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.dashboard.issues-pages.dashboard.milestones.show-pages.-a65b27a2.97e0c257.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.dashboard.issues-pages.groups.boards-pages.groups.issue-8f3ec9c9.450d024d.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.dashboard.issues-pages.groups.boards-pages.groups.issue-181be4cb.80f39b87.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.groups.new-pages.import.gitlab_projects.new-pages.import.manifest.new-pages.projects.n-44c6c18e.227a132b.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.search.show-super_sidebar.4ea731a1.chunk.js" defer="defer"></script> +<script src="/assets/webpack/super_sidebar.ed4df32c.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.dashboar-7469413d.4f86d3e8.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.i-56cf042c.01ecb85c.chunk.js" defer="defer"></script> +<script src="/assets/webpack/8.788661b8.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.i-79e94350.81fd5681.chunk.js" defer="defer"></script> +<script src="/assets/webpack/10.abcd7097.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.i-aa2a43bd.1d1306c9.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.milestones.edit-pages.groups.mil-d4098e09.740ed42b.chunk.js" defer="defer"></script> +<script src="/assets/webpack/26.3e8521dc.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.groups.milestones.edit-pages.groups.milestones.new-pages.groups.milestones.show-pages.-3a9ea570.d48dcdaa.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.projects.commit.pipelines-pages.projects.commit.rapid_diffs-pages.projects.commit.show.c0025a99.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.projects.commit.show-pages.projects.snippets.show-pages.snippets.show.cf9cdece.chunk.js" defer="defer"></script> +<script src="/assets/webpack/commons-pages.projects.commit.show-pages.projects.compare.show-pages.projects.wikis.diff.14466c81.chunk.js" defer="defer"></script> +<script src="/assets/webpack/pages.projects.commit.show.67c9270a.chunk.js" defer="defer"></script> +<meta content="object" property="og:type"> +<meta content="GitLab" property="og:site_name"> +<meta content="gallivm: handle llvm 16 atexit ordering problems. (b3cfec2f) · Commits · Mesa / mesa · GitLab" property="og:title"> +<meta content="This is ported from amd ac_llvm_helper.cpp, thanks to Marek for the pointer. This is needed to avoid crashes due to atexit ordering between some piglit tests and mesa internals. Cc:..." property="og:description"> +<meta content="https://gitlab.freedesktop.org/uploads/-/system/project/avatar/176/gears.png" property="og:image"> +<meta content="64" property="og:image:width"> +<meta content="64" property="og:image:height"> +<meta content="https://gitlab.freedesktop.org/mesa/mesa/-/commit/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0" property="og:url"> +<meta content="summary" property="twitter:card"> +<meta content="gallivm: handle llvm 16 atexit ordering problems. (b3cfec2f) · Commits · Mesa / mesa · GitLab" property="twitter:title"> +<meta content="This is ported from amd ac_llvm_helper.cpp, thanks to Marek for the pointer. This is needed to avoid crashes due to atexit ordering between some piglit tests and mesa internals. Cc:..." property="twitter:description"> +<meta content="https://gitlab.freedesktop.org/uploads/-/system/project/avatar/176/gears.png" property="twitter:image"> + +<meta name="csrf-param" content="authenticity_token" /> +<meta name="csrf-token" content="AioFgsl_omxJZyl5Q2D4GnKiXe47UFUKYPQW0znQbNIsHTFW0Bd4XCkZo8p5Pmlez7T9muUsVHMfGUAj9SBU6g" /> +<meta name="csp-nonce" /> +<meta name="action-cable-url" content="/-/cable" /> +<link href="/-/manifest.json" rel="manifest"> +<link rel="icon" type="image/png" href="/uploads/-/system/appearance/favicon/1/fdo-favicon.ico" id="favicon" data-original-href="/uploads/-/system/appearance/favicon/1/fdo-favicon.ico" /> +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" /> +<link href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml"> + + + + +<meta content="This is ported from amd ac_llvm_helper.cpp, thanks to Marek for the pointer. This is needed to avoid crashes due to atexit ordering between some piglit tests and mesa internals. Cc:..." name="description"> +<meta content="#ececef" name="theme-color"> +</head> + +<body class="tab-width-8 gl-browser-generic gl-platform-other " data-find-file="/mesa/mesa/-/find_file/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0" data-group="mesa" data-group-full-path="mesa" data-namespace-id="1155" data-page="projects:commit:show" data-page-type-id="b3cfec2fd824a52023c92fd5928f4f5c1cb449a0" data-project="mesa" data-project-full-path="mesa/mesa" data-project-id="176"> +<script> +//<![CDATA[ +gl = window.gl || {}; +gl.GfmAutoComplete = gl.GfmAutoComplete || {}; +gl.GfmAutoComplete.dataSources = {"members":"/mesa/mesa/-/autocomplete_sources/members?type=Commit\u0026type_id=b3cfec2fd824a52023c92fd5928f4f5c1cb449a0","issues":"/mesa/mesa/-/autocomplete_sources/issues","mergeRequests":"/mesa/mesa/-/autocomplete_sources/merge_requests","labels":"/mesa/mesa/-/autocomplete_sources/labels?type=Commit\u0026type_id=b3cfec2fd824a52023c92fd5928f4f5c1cb449a0","milestones":"/mesa/mesa/-/autocomplete_sources/milestones","commands":"/mesa/mesa/-/autocomplete_sources/commands?type=Commit\u0026type_id=b3cfec2fd824a52023c92fd5928f4f5c1cb449a0","snippets":"/mesa/mesa/-/autocomplete_sources/snippets","contacts":"/mesa/mesa/-/autocomplete_sources/contacts?type=Commit\u0026type_id=b3cfec2fd824a52023c92fd5928f4f5c1cb449a0","wikis":null}; + + +//]]> +</script> +<script> +//<![CDATA[ +gl = window.gl || {}; +gl.client = {"isGeneric":true,"isOther":true}; + + +//]]> +</script> + + +<header class="header-logged-out" data-testid="navbar"> +<a class="gl-sr-only gl-accessibility" href="#content-body">Skip to content</a> +<div class="container-fluid"> +<nav aria-label="Explore GitLab" class="header-logged-out-nav gl-display-flex gl-gap-3 gl-justify-content-space-between"> +<div class="gl-display-flex gl-align-items-center gl-gap-1"> +<span class="gl-sr-only">GitLab</span> +<a title="Homepage" id="logo" class="header-logged-out-logo has-tooltip" aria-label="Homepage" href="/"><img class="brand-header-logo lazy" alt="" data-src="/uploads/-/system/appearance/header_logo/1/fdo-logo-header.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> +</a></div> +<ul class="gl-list-none gl-p-0 gl-m-0 gl-display-flex gl-gap-3 gl-align-items-center gl-flex-grow-1"> +<li class="header-logged-out-nav-item"> +<a class="" href="/explore">Explore</a> +</li> +</ul> +<ul class="gl-list-none gl-p-0 gl-m-0 gl-display-flex gl-gap-3 gl-align-items-center gl-justify-content-end"> +<li class="header-logged-out-nav-item"> +<a href="/users/sign_in?redirect_to_referer=yes">Sign in</a> +</li> +<li class="header-logged-out-nav-item"> +<a class="gl-button btn btn-md btn-confirm " href="/users/sign_up"><span class="gl-button-text"> +Register + +</span> + +</a></li> +</ul> +</nav> +</div> +</header> + +<div class="layout-page page-with-super-sidebar"> +<aside class="js-super-sidebar super-sidebar super-sidebar-loading" data-command-palette="{"project_files_url":"/mesa/mesa/-/files/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0?format=json","project_blob_url":"/mesa/mesa/-/blob/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0"}" data-force-desktop-expanded-sidebar="" data-root-path="/" data-sidebar="{"is_logged_in":false,"context_switcher_links":[{"title":"Explore","link":"/explore","icon":"compass"}],"current_menu_items":[{"id":"project_overview","title":"mesa","icon":null,"avatar":"/uploads/-/system/project/avatar/176/gears.png","entity_id":176,"link":"/mesa/mesa","pill_count":null,"link_classes":"shortcuts-project","is_active":false},{"id":"manage_menu","title":"Manage","icon":"users","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/mesa/mesa/activity","is_active":false,"pill_count":null,"items":[{"id":"activity","title":"Activity","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/activity","pill_count":null,"link_classes":"shortcuts-project-activity","is_active":false},{"id":"members","title":"Members","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/-/project_members","pill_count":null,"link_classes":null,"is_active":false},{"id":"labels","title":"Labels","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/-/labels","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"id":"plan_menu","title":"Plan","icon":"planning","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/mesa/mesa/-/issues","is_active":false,"pill_count":null,"items":[{"id":"project_issue_list","title":"Issues","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/-/issues","pill_count":"3.7k","link_classes":"shortcuts-issues has-sub-items","is_active":false},{"id":"boards","title":"Issue boards","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/-/boards","pill_count":null,"link_classes":"shortcuts-issue-boards","is_active":false},{"id":"milestones","title":"Milestones","icon":null,"avatar":null,"entity_id":null,"link":"/mesa/mesa/-/milestones","pill_count":null,"link_classes":null,"is_active":false}],"separated":false},{"id":"code_menu","title":"Code","icon":"code","avatar":null,"avatar_shape":"rect","entity_id":null,"link":"/mesa/mesa/-/merge_requests","is_active":true,"pill_count":null,"items":[{"id":"project_merge_request_list","title":"Merge requests","icon":nFrom b3cfec2fd824a52023c92fd5928f4f5c1cb449a0 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 4 Jan 2024 06:17:50 +1000 +Subject: [PATCH] gallivm: handle llvm 16 atexit ordering problems. + +This is ported from amd ac_llvm_helper.cpp, thanks to Marek for the pointer. + +This is needed to avoid crashes due to atexit ordering between some piglit +tests and mesa internals. + +Cc: mesa-stable +Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26883> +--- + src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 34 +++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +index e213f7e4be180..a5e84d708f2c6 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp ++++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +@@ -62,6 +62,7 @@ + #include <llvm/Support/PrettyStackTrace.h> + #include <llvm/ExecutionEngine/ObjectCache.h> + #include <llvm/Support/TargetSelect.h> ++#include <llvm/CodeGen/SelectionDAGNodes.h> + #if LLVM_VERSION_MAJOR >= 15 + #include <llvm/Support/MemoryBuffer.h> + #endif +@@ -100,6 +101,8 @@ + #include "lp_bld_misc.h" + #include "lp_bld_debug.h" + ++static void lp_run_atexit_for_destructors(void); ++ + namespace { + + class LLVMEnsureMultithreaded { +@@ -147,6 +150,7 @@ static void init_native_targets() + } + } + #endif ++ lp_run_atexit_for_destructors(); + } + + extern "C" void +@@ -623,3 +627,33 @@ lp_set_module_stack_alignment_override(LLVMModuleRef MRef, unsigned align) + M->setOverrideStackAlignment(align); + #endif + } ++ ++using namespace llvm; ++ ++class GallivmRunAtExitForStaticDestructors : public SDNode ++{ ++public: ++ /* getSDVTList (protected) calls getValueTypeList (private), which contains static variables. */ ++ GallivmRunAtExitForStaticDestructors(): SDNode(0, 0, DebugLoc(), getSDVTList(MVT::Other)) ++ { ++ } ++}; ++ ++static void ++lp_run_atexit_for_destructors(void) ++{ ++ /* LLVM >= 16 registers static variable destructors on the first compile, which gcc ++ * implements by calling atexit there. Before that, u_queue registers its atexit ++ * handler to kill all threads. Since exit() runs atexit handlers in the reverse order, ++ * the LLVM destructors are called first while shader compiler threads may still be ++ * running, which crashes in LLVM in SelectionDAG.cpp. ++ * ++ * The solution is to run the code that declares the LLVM static variables first, ++ * so that atexit for LLVM is registered first and u_queue is registered after that, ++ * which ensures that all u_queue threads are terminated before LLVM destructors are ++ * called. ++ * ++ * This just executes the code that declares static variables. ++ */ ++ GallivmRunAtExitForStaticDestructors(); ++} +-- +GitLab + +From 550cc685a76b609a3c3f358d554de6e9911510ec Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Thu, 18 Jan 2024 18:05:47 +1000 +Subject: [PATCH] gallivm: fix coroutines with llvm 18 + +llvm 18 added an extra parameters to coro end which should just +take a null token always for us. + +Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27133> +--- + src/gallium/auxiliary/gallivm/lp_bld_coro.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.c b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +index 0214dcf674203..75aaa7d2b84c9 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_coro.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.c +@@ -89,13 +89,18 @@ LLVMValueRef lp_build_coro_free(struct gallivm_state *gallivm, + + void lp_build_coro_end(struct gallivm_state *gallivm, LLVMValueRef coro_hdl) + { +- LLVMValueRef coro_end_args[2]; ++ LLVMValueRef coro_end_args[3]; ++ int num_args = 2; + coro_end_args[0] = coro_hdl; + coro_end_args[1] = LLVMConstInt(LLVMInt1TypeInContext(gallivm->context), 0, 0); ++#if LLVM_VERSION_MAJOR >= 18 ++ coro_end_args[2] = LLVMConstNull(LLVMTokenTypeInContext(gallivm->context)); ++ num_args++; ++#endif + lp_build_intrinsic(gallivm->builder, + "llvm.coro.end", + LLVMInt1TypeInContext(gallivm->context), +- coro_end_args, 2, 0); ++ coro_end_args, num_args, 0); + } + + void lp_build_coro_resume(struct gallivm_state *gallivm, LLVMValueRef coro_hdl) +-- +GitLab + +From 99f0449987bec1f82cd42a06f40bb4a863a37792 Mon Sep 17 00:00:00 2001 +From: Nikita Popov <npopov@redhat.com> +Date: Mon, 11 Mar 2024 14:45:41 +0100 +Subject: [PATCH] Pass no-verify-fixpoint option to instcombine in LLVM 18 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When LLVM 18 is used, pass the no-verify-fixpoint option when +running the instcombine pass. Otherwise LLVM may abort with an +error. + +The background here is that this option is enabled by default for +testing purposes, because instcombine is normally only explicitly +invoked like this inside tests. If it is used in an actual +production pipeline, the no-verify-fixpoint option needs to be +enabled. + +This should fix the issue reported at +https://bugzilla.redhat.com/show_bug.cgi?id=2268800. + +Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> +Reviewed-by: Marek Olšák <marek.olsak@amd.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28101> +--- + src/gallium/auxiliary/gallivm/lp_bld_init.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c +index cd2108f3a088d..1345d85b22439 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c +@@ -609,7 +609,11 @@ gallivm_compile_module(struct gallivm_state *gallivm) + LLVMRunPasses(gallivm->module, passes, LLVMGetExecutionEngineTargetMachine(gallivm->engine), opts); + + if (!(gallivm_perf & GALLIVM_PERF_NO_OPT)) ++#if LLVM_VERSION_MAJOR >= 18 ++ strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine<no-verify-fixpoint>"); ++#else + strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); ++#endif + else + strcpy(passes, "mem2reg"); + +-- +GitLab + +From a2ae6518c2d70dca9e3e9e93dc8e38a18f73c14e Mon Sep 17 00:00:00 2001 +From: Konstantin Seurer <konstantin.seurer@gmail.com> +Date: Fri, 28 Apr 2023 23:15:48 +0200 +Subject: [PATCH] gallivm: Fix gather/scatter types for newer llvm + +The types changed with opaque pointer support. + +Fixes a bunch of lavapipe regressions. +Cc: mesa-stable + +Reviewed-by: Roland Scheidegger <sroland@vmware.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23293> +--- + src/gallium/auxiliary/gallivm/lp_bld_gather.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_gather.c b/src/gallium/auxiliary/gallivm/lp_bld_gather.c +index b93251b444495..f55f2f3145e28 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_gather.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_gather.c +@@ -611,8 +611,14 @@ lp_build_masked_gather(struct gallivm_state *gallivm, + LLVMValueRef args[4]; + char intrin_name[64]; + ++#if LLVM_VERSION_MAJOR >= 16 ++ snprintf(intrin_name, 64, "llvm.masked.gather.v%ui%u.v%up0", ++ length, bit_size, length); ++#else + snprintf(intrin_name, 64, "llvm.masked.gather.v%ui%u.v%up0i%u", + length, bit_size, length, bit_size); ++#endif ++ + args[0] = offset_ptr; + args[1] = lp_build_const_int32(gallivm, bit_size / 8); + args[2] = LLVMBuildICmp(builder, LLVMIntNE, exec_mask, +@@ -635,8 +641,14 @@ lp_build_masked_scatter(struct gallivm_state *gallivm, + LLVMValueRef args[4]; + char intrin_name[64]; + ++#if LLVM_VERSION_MAJOR >= 16 ++ snprintf(intrin_name, 64, "llvm.masked.scatter.v%ui%u.v%up0", ++ length, bit_size, length); ++#else + snprintf(intrin_name, 64, "llvm.masked.scatter.v%ui%u.v%up0i%u", + length, bit_size, length, bit_size); ++#endif ++ + args[0] = value_vec; + args[1] = offset_ptr; + args[2] = lp_build_const_int32(gallivm, bit_size / 8); +-- +GitLab + diff --git a/user/mesa/nouveau-flush-fix.patch b/user/mesa/nouveau-flush-fix.patch new file mode 100644 index 000000000..97512d01a --- /dev/null +++ b/user/mesa/nouveau-flush-fix.patch @@ -0,0 +1,11 @@ +--- mesa-21.3.8/src/mesa/drivers/dri/nouveau/nouveau_driver.c.old 2022-03-18 19:26:47.000000000 +0000 ++++ mesa-21.3.8/src/mesa/drivers/dri/nouveau/nouveau_driver.c 2023-10-23 06:05:10.177357372 +0000 +@@ -69,7 +69,7 @@ + struct nouveau_context *nctx = to_nouveau_context(ctx); + struct nouveau_pushbuf *push = context_push(ctx); + +- PUSH_KICK(push); ++ if (push) PUSH_KICK(push); + + if (ctx->DrawBuffer && _mesa_is_winsys_fbo(ctx->DrawBuffer) && + ctx->DrawBuffer->_ColorDrawBufferIndexes[0] == BUFFER_FRONT_LEFT) { diff --git a/user/meson/APKBUILD b/user/meson/APKBUILD index 725c42f0a..60146659f 100644 --- a/user/meson/APKBUILD +++ b/user/meson/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=meson -pkgver=0.62.2 +pkgver=1.2.3 pkgrel=0 pkgdesc="Fast, user-friendly build system" url="https://mesonbuild.com/" @@ -10,8 +10,7 @@ license="Apache-2.0" depends="python3 ninja" makedepends="python3-dev" subpackages="$pkgname-doc" -source="https://github.com/mesonbuild/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.gz - meson-0.62.1-gettext-tiny.patch" +source="https://github.com/mesonbuild/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.gz" build() { python3 setup.py build @@ -25,5 +24,4 @@ package() { python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="4089588701f0f702eb3b794e0ede78b99f13ec7545d1a7470c7bfd6a857de59673684a543928dd578402578c53f38365a3a59e3e29022fd30a525353818a4195 meson-0.62.2.tar.gz -c6b65c88e7403ef2f892840575021f78082b683b7e3b879cd5fef7d639f571920dfd264c60c9085d68f8cfc649c7db401fe2375f409e5038864e74896f22b18a meson-0.62.1-gettext-tiny.patch" +sha512sums="cdcadc731effc1ffb2de98b795ba37955f934ed9b54b9f7f3ac5fe96ab33268d4de4fce734a4c2ef7d2ecc5051616df127e1f8665e197ff954310bf1483b81fc meson-1.2.3.tar.gz" diff --git a/user/meson/meson-0.62.1-gettext-tiny.patch b/user/meson/meson-0.62.1-gettext-tiny.patch deleted file mode 100644 index 4413a32dc..000000000 --- a/user/meson/meson-0.62.1-gettext-tiny.patch +++ /dev/null @@ -1,92 +0,0 @@ -Upstream-URL: https://github.com/mesonbuild/meson/pull/10365 - -From 7606b19f8981f75b7076a765cec1ecf7b04220fb Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <eschwartz@archlinux.org> -Date: Sat, 7 May 2022 23:03:01 -0400 -Subject: [PATCH 1/3] gettext: explicitly pass source root / subdir as cli args - -Because this is a wrapper script and we could/should do this, we even -have half the infra for it. ---- - mesonbuild/modules/i18n.py | 6 ++++++ - mesonbuild/scripts/gettext.py | 15 +++++++-------- - 2 files changed, 13 insertions(+), 8 deletions(-) - -diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py -index 2bdf9d30b97..4bbc69abfb1 100644 ---- a/mesonbuild/modules/i18n.py -+++ b/mesonbuild/modules/i18n.py -@@ -251,6 +251,9 @@ def gettext(self, state: 'ModuleState', args: T.Tuple[str], kwargs: 'Gettext') - - extra_arg = '--extra-args=' + '@@'.join(extra_args) if extra_args else None - - potargs = state.environment.get_build_command() + ['--internal', 'gettext', 'pot', pkg_arg] -+ potargs.append(f'--source-root={state.source_root}') -+ if state.subdir: -+ potargs.append(f'--subdir={state.subdir}') - if datadirs: - potargs.append(datadirs) - if extra_arg: -@@ -292,6 +295,9 @@ def gettext(self, state: 'ModuleState', args: T.Tuple[str], kwargs: 'Gettext') - - targets.append(allgmotarget) - - updatepoargs = state.environment.get_build_command() + ['--internal', 'gettext', 'update_po', pkg_arg] -+ updatepoargs.append(f'--source-root={state.source_root}') -+ if state.subdir: -+ updatepoargs.append(f'--subdir={state.subdir}') - if lang_arg: - updatepoargs.append(lang_arg) - if datadirs: -diff --git a/mesonbuild/scripts/gettext.py b/mesonbuild/scripts/gettext.py -index c3298926ef8..c31657a71d3 100644 ---- a/mesonbuild/scripts/gettext.py -+++ b/mesonbuild/scripts/gettext.py -@@ -23,6 +23,7 @@ - parser.add_argument('--datadirs', default='') - parser.add_argument('--langs', default='') - parser.add_argument('--localedir', default='') -+parser.add_argument('--source-root', default='') - parser.add_argument('--subdir', default='') - parser.add_argument('--xgettext', default='xgettext') - parser.add_argument('--msgmerge', default='msgmerge') -@@ -45,7 +46,7 @@ def read_linguas(src_sub: str) -> T.List[str]: - print(f'Could not find file LINGUAS in {src_sub}') - return [] - --def run_potgen(src_sub: str, xgettext: str, pkgname: str, datadirs: str, args: T.List[str]) -> int: -+def run_potgen(src_sub: str, xgettext: str, pkgname: str, datadirs: str, args: T.List[str], source_root: str) -> int: - listfile = os.path.join(src_sub, 'POTFILES.in') - if not os.path.exists(listfile): - listfile = os.path.join(src_sub, 'POTFILES') -@@ -59,7 +60,7 @@ def run_potgen(src_sub: str, xgettext: str, pkgname: str, datadirs: str, args: T - - ofile = os.path.join(src_sub, pkgname + '.pot') - return subprocess.call([xgettext, '--package-name=' + pkgname, '-p', src_sub, '-f', listfile, -- '-D', os.environ['MESON_SOURCE_ROOT'], '-k_', '-o', ofile] + args, -+ '-D', source_root, '-k_', '-o', ofile] + args, - env=child_env) - - def update_po(src_sub: str, msgmerge: str, msginit: str, pkgname: str, langs: T.List[str]) -> int: -@@ -77,18 +78,16 @@ def run(args: T.List[str]) -> int: - subcmd = options.command - langs = options.langs.split('@@') if options.langs else None - extra_args = options.extra_args.split('@@') if options.extra_args else [] -- subdir = os.environ.get('MESON_SUBDIR', '') -- if options.subdir: -- subdir = options.subdir -- src_sub = os.path.join(os.environ['MESON_SOURCE_ROOT'], subdir) -+ subdir = options.subdir -+ src_sub = os.path.join(options.source_root, subdir) - - if not langs: - langs = read_linguas(src_sub) - - if subcmd == 'pot': -- return run_potgen(src_sub, options.xgettext, options.pkgname, options.datadirs, extra_args) -+ return run_potgen(src_sub, options.xgettext, options.pkgname, options.datadirs, extra_args, options.source_root) - elif subcmd == 'update_po': -- if run_potgen(src_sub, options.xgettext, options.pkgname, options.datadirs, extra_args) != 0: -+ if run_potgen(src_sub, options.xgettext, options.pkgname, options.datadirs, extra_args, options.source_root) != 0: - return 1 - return update_po(src_sub, options.msgmerge, options.msginit, options.pkgname, langs) - else: - diff --git a/user/mimetic/APKBUILD b/user/mimetic/APKBUILD index e4861c278..40ce81de3 100644 --- a/user/mimetic/APKBUILD +++ b/user/mimetic/APKBUILD @@ -2,17 +2,18 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=mimetic pkgver=0.9.8 -pkgrel=0 +pkgrel=1 pkgdesc="C++ library for processing MIME" -url="http://www.codesink.org/mimetic_mime_library.html" +url="https://www.codesink.org/mimetic_mime_library.html" arch="all" license="MIT" depends="" makedepends="doxygen" subpackages="$pkgname-dev" -source="http://www.codesink.org/download/mimetic-$pkgver.tar.gz +source="https://www.codesink.org/download/mimetic-$pkgver.tar.gz fix-compile.patch signedness.patch + nullptr.patch " prepare() { @@ -41,4 +42,5 @@ package() { sha512sums="4157eecb3e26af314d475c91192a357d6da35271a07a07b037d5037e9af84952ce2636874e86df0e94e8887dcfdb8f594a1ba04e6448181e436b0e2675f48f58 mimetic-0.9.8.tar.gz 26badbaea0e9392080ece1cfda41d16a4fa87850e92edb4120e0a080fcebeeebaf28adb0fc73ba56ecacfc670bc315b2255c9c101471beb09068b1b4c4c8c473 fix-compile.patch -d92c719134064e545e7b63f56bfc6b2898c82766a4540230ac5273b1380ef4546d220d95faa99d7b9c01508650a361b7473ad74c9a79262cb423277ca83a36b2 signedness.patch" +d92c719134064e545e7b63f56bfc6b2898c82766a4540230ac5273b1380ef4546d220d95faa99d7b9c01508650a361b7473ad74c9a79262cb423277ca83a36b2 signedness.patch +716d5b15e4e7734fc63b3bbdb0651fa45f2a89d745084788b4db7cf46a17ba30dc5d1290f8c514089dce12376e51110b8b0850bb3a87e06d024c93145fd2d5fc nullptr.patch" diff --git a/user/mimetic/nullptr.patch b/user/mimetic/nullptr.patch new file mode 100644 index 000000000..340ae37d6 --- /dev/null +++ b/user/mimetic/nullptr.patch @@ -0,0 +1,11 @@ +--- mimetic-0.9.8/mimetic/os/mmfile.cxx.old 2014-06-17 03:12:00.000000000 -0500 ++++ mimetic-0.9.8/mimetic/os/mmfile.cxx 2024-05-30 03:23:16.247921514 -0500 +@@ -57,7 +57,7 @@ + bool MMFile::map() + { + m_beg = (char*) mmap(0, m_st.st_size, PROT_READ, MAP_SHARED,m_fd,0); +- if(m_beg > 0) ++ if(m_beg != nullptr) + { + m_end = m_beg + m_st.st_size; + #if HAVE_MADVISE diff --git a/user/minicom/APKBUILD b/user/minicom/APKBUILD index a7ebc7b94..5c578c46e 100644 --- a/user/minicom/APKBUILD +++ b/user/minicom/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Michael Mason <ms13sp@gmail.com> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=minicom -pkgver=2.8 +pkgver=2.9 pkgrel=0 pkgdesc="Menu-driven communications program for terminals" url="https://fossies.org/linux/minicom/" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="535e0df37d8679ff08959b14f1f494a4d632af5a481e49873dd33a6c601de3ce20193ee6314d6c3282775f5adb906521a237bf8ac4b32e2751c754a91d99853f minicom-2.8.tar.bz2" +sha512sums="2ee4e585b180683b50b257ad768d903b3030f9b528f3bef5cb9c146b53c5bc39c724b69945edc7e72490b145bc12c6c568014a5a778aecac05917bd8d3d31663 minicom-2.9.tar.bz2" diff --git a/user/miniupnpc/APKBUILD b/user/miniupnpc/APKBUILD index c1445066a..ba9d46079 100644 --- a/user/miniupnpc/APKBUILD +++ b/user/miniupnpc/APKBUILD @@ -4,14 +4,14 @@ pkgname=miniupnpc pkgver=2.2.3 pkgrel=0 pkgdesc="A lightweight UPNP client enabling applications to control UPnP gateways" -url="https://miniupnp.tuxfamily.org/" +url="http://miniupnp.free.fr" arch="all" options="!check" # no tests license="BSD-3-Clause" depends="" makedepends="cmake" subpackages="$pkgname-dev $pkgname-doc" -source="http://miniupnp.tuxfamily.org/files/miniupnpc-$pkgver.tar.gz +source="http://miniupnp.free.fr/files/miniupnpc-$pkgver.tar.gz fix-cmake-include-install.patch " diff --git a/user/minizip/APKBUILD b/user/minizip/APKBUILD index c9257b909..b7de2ee8b 100644 --- a/user/minizip/APKBUILD +++ b/user/minizip/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=minizip -pkgver=1.2.13 +pkgver=1.3 pkgrel=0 pkgdesc="Miniature ZIP archive manipulation library" url="https://zlib.net" @@ -10,7 +10,9 @@ license="zlib" depends="" makedepends="autoconf automake libtool zlib-dev" subpackages="$pkgname-dev" -source="https://zlib.net/zlib-$pkgver.tar.gz" +source="https://zlib.net/zlib-$pkgver.tar.gz + CVE-2023-45853.patch + " builddir="$srcdir"/zlib-$pkgver/contrib/minizip prepare() { @@ -32,5 +34,5 @@ check() { package() { make DESTDIR="$pkgdir" install } - -sha512sums="99f0e843f52290e6950cc328820c0f322a4d934a504f66c7caa76bd0cc17ece4bf0546424fc95135de85a2656fed5115abb835fd8d8a390d60ffaf946c8887ad zlib-1.2.13.tar.gz" +sha512sums="185795044461cd78a5545250e06f6efdb0556e8d1bfe44e657b509dd6f00ba8892c8eb3febe65f79ee0b192d6af857f0e0055326d33a881449f3833f92e5f8fb zlib-1.3.tar.gz +06bb69fe70c3ad7b11e0cf43ff4f7e631010ccc9d74e736d2106d6bf7b4b0934da7c695011757b57511d176a2cf0b4955b854bb8e78a196abcf2792c40e9cea1 CVE-2023-45853.patch" diff --git a/user/minizip/CVE-2023-45853.patch b/user/minizip/CVE-2023-45853.patch new file mode 100644 index 000000000..66dfd5707 --- /dev/null +++ b/user/minizip/CVE-2023-45853.patch @@ -0,0 +1,40 @@ +This patch differs from upstream in the following way(s): + +* Paths changed to accommodate 'builddir' + +From 73331a6a0481067628f065ffe87bb1d8f787d10c Mon Sep 17 00:00:00 2001 +From: Hans Wennborg <hans@chromium.org> +Date: Fri, 18 Aug 2023 11:05:33 +0200 +Subject: [PATCH] Reject overflows of zip header fields in minizip. + +This checks the lengths of the file name, extra field, and comment +that would be put in the zip headers, and rejects them if they are +too long. They are each limited to 65535 bytes in length by the zip +format. This also avoids possible buffer overflows if the provided +fields are too long. +--- + contrib/minizip/zip.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/contrib/minizip/zip.c b/contrib/minizip/zip.c +index 3d3d4cadd..0446109b2 100644 +--- a/zip.c ++++ b/zip.c +@@ -1043,6 +1043,17 @@ extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, const char* filename, c + return ZIP_PARAMERROR; + #endif + ++ // The filename and comment length must fit in 16 bits. ++ if ((filename!=NULL) && (strlen(filename)>0xffff)) ++ return ZIP_PARAMERROR; ++ if ((comment!=NULL) && (strlen(comment)>0xffff)) ++ return ZIP_PARAMERROR; ++ // The extra field length must fit in 16 bits. If the member also requires ++ // a Zip64 extra block, that will also need to fit within that 16-bit ++ // length, but that will be checked for later. ++ if ((size_extrafield_local>0xffff) || (size_extrafield_global>0xffff)) ++ return ZIP_PARAMERROR; ++ + zi = (zip64_internal*)file; + + if (zi->in_opened_file_inzip == 1) diff --git a/user/mosh/APKBUILD b/user/mosh/APKBUILD index d138bd4f3..728719767 100644 --- a/user/mosh/APKBUILD +++ b/user/mosh/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Francesco Colista <fcolista@alpinelinux.org> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=mosh -pkgver=1.3.2 -pkgrel=2 +pkgver=1.4.0 +pkgrel=0 pkgdesc="Mobile shell surviving disconnects with local echo and line editing" url="https://mosh.org" arch="all" @@ -13,8 +13,7 @@ makedepends="ncurses-dev zlib-dev openssl-dev perl-dev perl-io-tty protobuf-dev automake autoconf libtool gzip" subpackages="$pkgname-doc $pkgname-client $pkgname-server $pkgname-bash-completion:bashcomp:noarch" -source="https://mosh.org/$pkgname-$pkgver.tar.gz - fix-ppc64le-build-with-musl.patch" +source="https://github.com/mobile-shell/mosh/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz" prepare() { default_prepare @@ -70,5 +69,4 @@ client() { "$subpkgdir"/usr/bin/ } -sha512sums="f400e8fe7ba2ab7362311fc12a00ec69587505f901988aeee500fc68d38a388218500a3f602111c883ff23a9d43572114fcf0a8bf505df203691e5b597615769 mosh-1.3.2.tar.gz -a276dde98a2dab63ad9c9c05468c55983a95f482878c5694713810b561eae1ea5618efc72431a17ee5b5014b12ee9709c6a8cbf582620294e7888cc837cd073c fix-ppc64le-build-with-musl.patch" +sha512sums="38c11f52ff1e42965b50a22bf6de80b0fa8ebbff841d825e760abf69c788a2bf5f34e6f7fc047574d595118334eef9edf8da5520b52cdde3ac1a79d7ad70312e mosh-1.4.0.tar.gz" diff --git a/user/mosh/fix-ppc64le-build-with-musl.patch b/user/mosh/fix-ppc64le-build-with-musl.patch deleted file mode 100644 index 8d918a963..000000000 --- a/user/mosh/fix-ppc64le-build-with-musl.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: Roberto Oliveira <robertoguimaraes8@gmail.com> -Date: Tue, 4 Apr 2017 16:46:50 +0000 -Subject: [PATCH] Fix build with musl on ppc64le - -mosh was breaking when building in ppc64le using musl, because ioctl() is defined -as ioctl(int, int) in musl and mosh is using TIOCSWINSZ macro as parameter. This was -triggering a gcc warning and make the build fail. - -This patch does an explicit integer conversion in TIOCSWINSZ, as no bits get -lost. - ---- a/src/frontend/mosh-server.cc -+++ b/src/frontend/mosh-server.cc -@@ -714,7 +714,12 @@ - } - window_size.ws_col = res->width; - window_size.ws_row = res->height; -- if ( ioctl( host_fd, TIOCSWINSZ, &window_size ) < 0 ) { -+ -+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__)) -+ if ( ioctl( host_fd, (int) TIOCSWINSZ, &window_size ) < 0 ) { -+ #else -+ if ( ioctl( host_fd, TIOCSWINSZ, &window_size ) < 0 ) { -+ #endif - perror( "ioctl TIOCSWINSZ" ); - network.start_shutdown(); - } ---- a/src/examples/termemu.cc -+++ a/src/examples/termemu.cc -@@ -226,7 +226,11 @@ - } - - /* tell child process */ -+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__)) -+ if ( ioctl( fd, (int) TIOCSWINSZ, &window_size ) < 0 ) { -+ #else - if ( ioctl( fd, TIOCSWINSZ, &window_size ) < 0 ) { -+ #endif - perror( "ioctl TIOCSWINSZ" ); - return; - } -@@ -306,7 +310,11 @@ - complete.act( &r ); - - /* tell child process */ -+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__)) -+ if ( ioctl( fd, (int) TIOCSWINSZ, &window_size ) < 0 ) { -+ #else - if ( ioctl( fd, TIOCSWINSZ, &window_size ) < 0 ) { -+ #endif - perror( "ioctl TIOCSWINSZ" ); - return; - } diff --git a/user/mousepad/APKBUILD b/user/mousepad/APKBUILD index bb500b5aa..ff1a44642 100644 --- a/user/mousepad/APKBUILD +++ b/user/mousepad/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=mousepad -pkgver=0.6.0 +pkgver=0.6.2 pkgrel=0 pkgdesc="Simple text editor for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="dad3488c973d767759a8b9752f83cc45d339064d34c19ee51f576af13f8db441f7234982c09e85f4032d553ee8df4f50ce8e0aa66c921a60ddb5c262a1c93702 mousepad-0.6.0.tar.bz2" +sha512sums="086f60f6f405290ed76366f4c5195e9c8f9c5058d1892200a73e48d6378428efe47f2038e3eddb81186e22dd87d57580559a556b1b22f202b6f056c7f90b64ea mousepad-0.6.2.tar.bz2" diff --git a/user/musl-obstack/APKBUILD b/user/musl-obstack/APKBUILD index c0eb566a7..faf1eb689 100644 --- a/user/musl-obstack/APKBUILD +++ b/user/musl-obstack/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=musl-obstack -pkgver=1.1 -pkgrel=1 +pkgver=1.2.3 +pkgrel=0 pkgdesc="Standalone library to implement obstack functionality" url=" " arch="all" @@ -10,7 +10,7 @@ license="GPL-2.0+" depends="" makedepends="autoconf automake libtool" subpackages="$pkgname-dev" -source="musl-obstack-$pkgver.tar.gz::https://github.com/pullmoll/musl-obstack/archive/v$pkgver.tar.gz" +source="musl-obstack-$pkgver.tar.gz::https://github.com/void-linux/musl-obstack/archive/v$pkgver.tar.gz" build() { export CFLAGS="$CFLAGS -fPIC" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e3a9956133d72a00663cf8d9720e62002142e113e7d67e2338a2bce1bdfac9eefd4290db8add15eabafdf01065f7fe9bb6754faa36b88df819c53d44fa140757 musl-obstack-1.1.tar.gz" +sha512sums="b2bbed19c4ab2714ca794bdcb1a84fad1af964e884d4f3bbe91c9937ca089d92b8472cb05ebe998a9f5c85cb922b9b458db91eff29077bd099942e1ce18e16cc musl-obstack-1.2.3.tar.gz" diff --git a/user/nano/APKBUILD b/user/nano/APKBUILD index c5cca6ad2..559884a27 100644 --- a/user/nano/APKBUILD +++ b/user/nano/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Michael Mason <ms13sp@gmail.com> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=nano -pkgver=5.8 +pkgver=8.0 pkgrel=0 pkgdesc="Enhanced clone of the Pico text editor" url="https://www.nano-editor.org" @@ -10,7 +10,7 @@ license="GPL-3.0+" depends="" makedepends="file-dev ncurses-dev" subpackages="$pkgname-doc $pkgname-lang" -source="https://nano-editor.org/dist/v5/$pkgname-$pkgver.tar.xz" +source="https://nano-editor.org/dist/v${pkgver%.*}/$pkgname-$pkgver.tar.xz" build() { ./configure \ @@ -40,4 +40,4 @@ package() { rm -rf "$pkgdir"/usr/lib/charset.alias } -sha512sums="ac614587f1a76c5ccb425fc8b4c6d4f7748dda89b863b2b8c6937b31e837edca5c83e3c13f53c9f5da5a9e24a1d8093c19dd0e8a85723f0bbae57fdab155e15c nano-5.8.tar.xz" +sha512sums="86c484428b8805768fd580d0f62aa32ce8f588f4beedcdd35a4014506b562928c7a2fa6487aa0d853b4c9c1639a4d186f46b4e96721568ff81191d5098403ca8 nano-8.0.tar.xz" diff --git a/user/ncftp/APKBUILD b/user/ncftp/APKBUILD index dd1a31d21..d23b85b37 100644 --- a/user/ncftp/APKBUILD +++ b/user/ncftp/APKBUILD @@ -1,17 +1,17 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=ncftp -pkgver=3.2.6 +pkgver=3.2.7 pkgrel=0 pkgdesc="A set of free application programs implementing FTP" -url="http://www.ncftp.com/" +url="https://www.ncftp.com/" arch="all" options="!check" # No test suite. license="ClArtistic" depends="" makedepends="ncurses-dev" subpackages="$pkgname-doc $pkgname-bookmarks" -source="ftp://ftp.ncftp.com/ncftp/$pkgname-$pkgver-src.tar.gz" +source="https://www.ncftp.com/downloads/ncftp/$pkgname-$pkgver-src.tar.xz" build() { LIBS="-ltinfo" ./configure \ @@ -38,4 +38,4 @@ bookmarks() { "$subpkgdir"/usr/bin/ } -sha512sums="a2f8ac555bee8af4be1aa745ce5838beee99cd2253c1fe701b710ec135d7c47e2bf8b22ec928975ec2460919977d45a07fb12185ab58a2e96e3092039ffd3303 ncftp-3.2.6-src.tar.gz" +sha512sums="b755385a57ac2487625c15985f091d9e1b71073b2593faffe1f2bbba34e691cfff9ffd8448b048f223ea08428e890f30c49a903e4f938393e3c0e4ae03ddab37 ncftp-3.2.7-src.tar.xz" diff --git a/user/netqmail/APKBUILD b/user/netqmail/APKBUILD index a450db304..d0a7bcd2e 100644 --- a/user/netqmail/APKBUILD +++ b/user/netqmail/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=netqmail pkgver=1.06 -pkgrel=8 +pkgrel=10 pkgdesc="The qmail mail transfer agent (community version)" url="http://www.netqmail.org/" arch="all" @@ -20,6 +20,7 @@ source="http://www.netqmail.org/$pkgname-$pkgver.tar.gz 0003-qmailremote-20170716.patch 0004-notifyfd.patch 0005-CVE-2005-1513.patch + rename-mbox-man.patch qmail.run smtpd.run smtpd-notls.run @@ -58,19 +59,18 @@ makeservicedir() echo 200 > "$1"/env/TLS_GID echo /etc/ssl/certs > "$1"/env/CADIR fi - if test $5 -eq 6 ; then - mkdir -p -m 0755 "$1"/data/rules/ip6/::_0 - touch "$1"/data/rules/ip6/::_0/allow - sed -i -e 's/s6-tcpserver /s6-tcpserver6 /' "$1"/run - elif test $5 -eq 4 ; then - mkdir -p -m 0755 "$1"/data/rules/ip4/0.0.0.0_0 - touch "$1"/data/rules/ip4/0.0.0.0_0/allow - sed -i -e 's/s6-tcpserver /s6-tcpserver4 /' "$1"/run - fi + mkdir -p -m 0755 "$1"/data/rules/ip6/::_0 + mkdir -p -m 0755 "$1"/data/rules/ip4/0.0.0.0_0 + touch "$1"/data/rules/ip6/::_0/allow "$1"/data/rules/ip4/0.0.0.0_0/allow fi chmod 0755 "$1"/run "$1"/log/run } +prepare() { + default_prepare + mv "$builddir"/mbox.5 "$builddir"/qmail-mbox.5 +} + build() { echo "$CC $CFLAGS" > conf-cc echo "$CC $LDFLAGS -s -static" > conf-ld @@ -101,10 +101,8 @@ package() { echo 255 > "$pkgdir"/var/qmail/control/concurrencylocal echo 255 > "$pkgdir"/var/qmail/control/concurrencyremote makeservicedir "$pkgdir"/var/qmail/services/qmail 7 "$srcdir"/qmail.run 'n20 s1000000 /var/log/qmail' 0 false - makeservicedir "$pkgdir"/etc/qmail/services/smtpd4-skeleton 3 "$srcdir"/smtpd.run '/var/log/smtpd-$IP' 4 true - makeservicedir "$pkgdir"/etc/qmail/services/smtpd6-skeleton 3 "$srcdir"/smtpd.run '/var/log/smtpd-$IP' 6 true - makeservicedir "$pkgdir"/etc/qmail/services/smtpd4-skeleton-notls 3 "$srcdir"/smtpd-notls.run '/var/log/smtpd-$IP' 4 false - makeservicedir "$pkgdir"/etc/qmail/services/smtpd6-skeleton-notls 3 "$srcdir"/smtpd-notls.run '/var/log/smtpd-$IP' 6 false + makeservicedir "$pkgdir"/etc/qmail/services/smtpd-skeleton 3 "$srcdir"/smtpd.run '/var/log/smtpd-$IP' 4 true + makeservicedir "$pkgdir"/etc/qmail/services/smtpd-skeleton-notls 3 "$srcdir"/smtpd-notls.run '/var/log/smtpd-$IP' 4 false } sha512sums="de40a6d8fac502bd785010434d99b99f2c0524e10aea3d0f2a0d35c70fce91e991eb1fb8f20a1276eb56d7e73130ea5e2c178f6075d138af47b28d9ca6e6046b netqmail-1.06.tar.gz @@ -113,8 +111,9 @@ b3af9c29e6d46daa2a1b9f677c6f32892d5f8c9b8d5c2bdd6f34b106dd5ad41394c05a5ebe145c6e cbebdc72c7cc5c437531c9277534ae552c6d044a83b36e3f3ce60ab5563c55eb814d6c543cc0997abab73075d1b517cc0929dd65674d468d517b0ca38196e2b4 0003-qmailremote-20170716.patch b32a8a36c8ab8872abd4f1a117482f064a6d631a6bb2ba75cafe61743bef09f923d26935d9514eec33a7dec5aeb3d0b517d677e55924859d2db5233bc11f9f11 0004-notifyfd.patch ac8406c1d16ce2e55e47bc83ca6e095833a54de73cecee222cad3fcececa518386b95a11cb0c9c2dcc6851bae28aa539b11069305aa887a291177bf177ee7b01 0005-CVE-2005-1513.patch +6ab1751b6ae1b932505a11ebaa4661edf9dd1b64da66a117c6b97c70cee7e429aaf8db98a3cabf25072d23ef39dc82f586a9adfe848635f6f1bdb0b20abed509 rename-mbox-man.patch 954a905bac5e3bc49f180dc0de7f6ee4c4ae8f94dd400ee4b06d3c944f1ff1cfc44bddccb07ae439f2523ad06fcb89023e57d091737da88f836013757794e931 qmail.run -37d99446cc21e4fe12c6bb78aaff64b93d59935257d660ff31be4a3ebb122a86f3db9afb6f6abc3934fca864eb108469669e4b32b8a4b21ec055d67175f69496 smtpd.run -9762eb50173f81ecb9b01a958457a60ef4814b4c474afe9976187b84818b69f627583a130e61fed8bfbf9e4859819bae983ebe8f27300d9ae6090a9a6d3b3881 smtpd-notls.run +8a887769fc8c5e1abbc56b72c913b435874549c213a10219124c554640eff09ace0a00a894907d633bdf424c7f351064b94e9e12635f725edc700db8cbf25ccd smtpd.run +721f4ae97ca302e6e1a8a8f685aed8542e408f580b51362006b385a48cbbec185080048bc3ef0953d10af1aaa15fa661dced930f321d594cbbcda8fe19f49abb smtpd-notls.run 57c30023fa479b88923712c5688469d61f70af3fc7c0d48eb445696f3b8a67e9279814932539e6958660d4ddecdce3dc804fbbde9613dab74001de25f9ef9bad netqmail.confd -f634f6118ea7ed1966b59ca7bdb21ca83e30084bebbc362a4de1d58c44cf14560732029e28ae9bea617005729b06d9677f35c2c96ea075f5972d23b4cb021e7f netqmail.initd" +e19719df558655e0e288bd188ed7669bd1505701680e15612ce66867bda93ea7297ecf70172d7f0245351422c94672c795ea175c3aa3b7a876434fa458bdab68 netqmail.initd" diff --git a/user/netqmail/netqmail.initd b/user/netqmail/netqmail.initd index 36e43e74e..1c7552df3 100644 --- a/user/netqmail/netqmail.initd +++ b/user/netqmail/netqmail.initd @@ -13,15 +13,19 @@ makesmtpd() set -e ip="$1" ext="$2" - if s6-tcpserver6-socketbinder -dBb0 -- "$ip" 25 true 2>/dev/null ; then + + if echo "$ip" | grep -qF : ; then ipv=6 relayfor="$smtprelay6" - elif s6-tcpserver4-socketbinder -dBb0 -- "$ip" 25 true 2>/dev/null ; then + elif echo "$ip" | grep -qF . ; then ipv=4 relayfor="$smtprelay4" else return 1 fi + if ! s6-tcpserver-socketbinder -dBb0 -- "$ip" 25 true 2>/dev/null ; then + return 1 + fi service="smtpd-$ip" sdir=/run/services/"$service" @@ -32,7 +36,7 @@ makesmtpd() chmod 2700 "$logdir" rm -rf "$sdir" - cp -a /etc/qmail/services/smtpd"${ipv}"-skeleton"$ext" "$sdir" + cp -a /etc/qmail/services/smtpd-skeleton"$ext" "$sdir" echo "$ip" > "$sdir"/env/IP echo "$KEYFILE" > "$sdir"/env/KEYFILE echo "$CERTFILE" > "$sdir"/env/CERTFILE diff --git a/user/netqmail/rename-mbox-man.patch b/user/netqmail/rename-mbox-man.patch new file mode 100644 index 000000000..753417352 --- /dev/null +++ b/user/netqmail/rename-mbox-man.patch @@ -0,0 +1,162 @@ +The mbox.5 file is provided by both mutt and qmail. The version provided +by mutt is a generic description of the mbox format. The qmail version +has specific information about qmail's mbox format. Hence, we rename it +to qmail-mbox.5. + +diff -Nau netqmail-1.06-orig/FILES netqmail-1.06/FILES +--- netqmail-1.06-orig/FILES 2007-11-30 14:22:54.000000000 -0600 ++++ netqmail-1.06/FILES 2023-12-01 20:05:06.120121122 -0600 +@@ -67,7 +67,6 @@ + maildirmake.1 + maildirwatch.1 + mailsubj.1 +-mbox.5 + preline.1 + qbiff.1 + qmail-clean.8 +@@ -80,6 +79,7 @@ + qmail-local.8 + qmail-log.5 + qmail-lspawn.8 ++qmail-mbox.5 + qmail-newmrh.9 + qmail-newu.9 + qmail-pop3d.8 +diff -Nau netqmail-1.06-orig/Makefile netqmail-1.06/Makefile +--- netqmail-1.06-orig/Makefile 2023-12-01 20:02:18.368178573 -0600 ++++ netqmail-1.06/Makefile 2023-12-01 20:06:17.272462017 -0600 +@@ -952,12 +952,12 @@ + preline.0 condredirect.0 bouncesaying.0 except.0 maildirmake.0 \ + maildir2mbox.0 maildirwatch.0 qmail.0 qmail-limits.0 qmail-log.0 \ + qmail-control.0 qmail-header.0 qmail-users.0 dot-qmail.0 \ +-qmail-command.0 tcp-environ.0 maildir.0 mbox.0 addresses.0 \ ++qmail-command.0 tcp-environ.0 maildir.0 qmail-mbox.0 addresses.0 \ + envelopes.0 forgeries.0 + +-mbox.0: \ +-mbox.5 +- nroff -man mbox.5 > mbox.0 ++qmail-mbox.0: \ ++qmail-mbox.5 ++ nroff -man qmail-mbox.5 > qmail-mbox.0 + + myctime.o: \ + compile myctime.c datetime.h fmt.h myctime.h +@@ -1783,7 +1783,7 @@ + auto_patrn.h conf-users conf-groups auto_uids.h auto_usera.h extra.h \ + addresses.5 except.1 bouncesaying.1 condredirect.1 dot-qmail.9 \ + envelopes.5 forgeries.7 forward.1 maildir2mbox.1 maildirmake.1 \ +-maildirwatch.1 mailsubj.1 mbox.5 preline.1 qbiff.1 qmail-clean.8 \ ++maildirwatch.1 mailsubj.1 qmail-mbox.5 preline.1 qbiff.1 qmail-clean.8 \ + qmail-command.8 qmail-control.9 qmail-getpw.9 qmail-header.5 \ + qmail-inject.8 qmail-limits.9 qmail-local.8 qmail-log.5 \ + qmail-lspawn.8 qmail-newmrh.9 qmail-newu.9 qmail-pop3d.8 \ +diff -Nau netqmail-1.06-orig/Makefile.orig netqmail-1.06/Makefile.orig +--- netqmail-1.06-orig/Makefile.orig 2023-12-01 20:02:18.368178573 -0600 ++++ netqmail-1.06/Makefile.orig 2023-12-01 20:06:58.588015563 -0600 +@@ -952,12 +952,12 @@ + preline.0 condredirect.0 bouncesaying.0 except.0 maildirmake.0 \ + maildir2mbox.0 maildirwatch.0 qmail.0 qmail-limits.0 qmail-log.0 \ + qmail-control.0 qmail-header.0 qmail-users.0 dot-qmail.0 \ +-qmail-command.0 tcp-environ.0 maildir.0 mbox.0 addresses.0 \ ++qmail-command.0 tcp-environ.0 maildir.0 qmail-mbox.0 addresses.0 \ + envelopes.0 forgeries.0 + +-mbox.0: \ +-mbox.5 +- nroff -man mbox.5 > mbox.0 ++qmail-mbox.0: \ ++qmail-mbox.5 ++ nroff -man qmail-mbox.5 > qmail-mbox.0 + + myctime.o: \ + compile myctime.c datetime.h fmt.h myctime.h +@@ -1783,7 +1783,7 @@ + auto_patrn.h conf-users conf-groups auto_uids.h auto_usera.h extra.h \ + addresses.5 except.1 bouncesaying.1 condredirect.1 dot-qmail.9 \ + envelopes.5 forgeries.7 forward.1 maildir2mbox.1 maildirmake.1 \ +-maildirwatch.1 mailsubj.1 mbox.5 preline.1 qbiff.1 qmail-clean.8 \ ++maildirwatch.1 mailsubj.1 qmail-mbox.5 preline.1 qbiff.1 qmail-clean.8 \ + qmail-command.8 qmail-control.9 qmail-getpw.9 qmail-header.5 \ + qmail-inject.8 qmail-limits.9 qmail-local.8 qmail-log.5 \ + qmail-lspawn.8 qmail-newmrh.9 qmail-newu.9 qmail-pop3d.8 \ +diff -Nau netqmail-1.06-orig/dot-qmail.9 netqmail-1.06/dot-qmail.9 +--- netqmail-1.06-orig/dot-qmail.9 2007-11-30 14:52:30.000000000 -0600 ++++ netqmail-1.06/dot-qmail.9 2023-12-01 20:04:47.292147838 -0600 +@@ -115,7 +115,7 @@ + stores the mail message in + .I mbox + format, as described in +-.BR mbox(5) . ++.BR qmail-mbox(5) . + + .B WARNING: + On many systems, +@@ -386,7 +386,7 @@ + .SH "SEE ALSO" + envelopes(5), + maildir(5), +-mbox(5), ++qmail-mbox(5), + qmail-users(5), + qmail-local(8), + qmail-command(8), +diff -Nau netqmail-1.06-orig/hier.c netqmail-1.06/hier.c +--- netqmail-1.06-orig/hier.c 2023-12-01 20:02:18.368178573 -0600 ++++ netqmail-1.06/hier.c 2023-12-01 20:04:22.854778368 -0600 +@@ -166,8 +166,8 @@ + c(base_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); + c(base_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644); + c(base_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); +- c(base_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644); +- c(base_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); ++ c(base_qmail,"man/man5","qmail-mbox.5",auto_uido,auto_gidq,0644); ++ c(base_qmail,"man/cat5","qmail-mbox.0",auto_uido,auto_gidq,0644); + c(base_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); + c(base_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); + c(base_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); +diff -Nau netqmail-1.06-orig/install-big.c netqmail-1.06/install-big.c +--- netqmail-1.06-orig/install-big.c 1998-06-15 05:53:16.000000000 -0500 ++++ netqmail-1.06/install-big.c 2023-12-01 20:05:20.048621806 -0600 +@@ -150,8 +150,8 @@ + c(auto_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); +- c(auto_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644); +- c(auto_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); ++ c(auto_qmail,"man/man5","qmail-mbox.5",auto_uido,auto_gidq,0644); ++ c(auto_qmail,"man/cat5","qmail-mbox.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); + c(auto_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); +diff -Nau netqmail-1.06-orig/maildir.5 netqmail-1.06/maildir.5 +--- netqmail-1.06-orig/maildir.5 1998-06-15 05:53:16.000000000 -0500 ++++ netqmail-1.06/maildir.5 2023-12-01 20:06:32.630809068 -0600 +@@ -235,5 +235,5 @@ + environment variable + as the name of the user's primary mail directory. + .SH "SEE ALSO" +-mbox(5), ++qmail-mbox(5), + qmail-local(8) +diff -Nau netqmail-1.06-orig/mbox.5 netqmail-1.06/mbox.5 +--- netqmail-1.06-orig/mbox.5 1998-06-15 05:53:16.000000000 -0500 ++++ netqmail-1.06/mbox.5 2023-12-01 20:06:23.661774312 -0600 +@@ -1,4 +1,4 @@ +-.TH mbox 5 ++.TH qmail-mbox 5 + .SH "NAME" + mbox \- file containing mail messages + .SH "INTRODUCTION" +Common subdirectories: netqmail-1.06-orig/old-patches and netqmail-1.06/old-patches +Common subdirectories: netqmail-1.06-orig/other-patches and netqmail-1.06/other-patches +diff -Nau netqmail-1.06-orig/preline.1 netqmail-1.06/preline.1 +--- netqmail-1.06-orig/preline.1 1998-06-15 05:53:16.000000000 -0500 ++++ netqmail-1.06/preline.1 2023-12-01 20:05:28.147749986 -0600 +@@ -53,5 +53,5 @@ + .B Return-Path + line. + .SH "SEE ALSO" +-mbox(5), ++qmail-mbox(5), + qmail-command(8) diff --git a/user/netqmail/smtpd-notls.run b/user/netqmail/smtpd-notls.run index f29015401..fb30d0706 100644 --- a/user/netqmail/smtpd-notls.run +++ b/user/netqmail/smtpd-notls.run @@ -4,6 +4,6 @@ fdmove -c 2 1 s6-envdir env importas -u IP IP fdmove 1 3 -s6-tcpserver -v2 -1U -c 255 -- $IP 25 -s6-tcpserver-access -v2 -DRpl0 -t5000 -i data/rules -- +s6-tcpserver -v -1 -U -c 255 -- $IP 25 +s6-tcpserver-access -v2 -Dpl0 -t5000 -i data/rules -- qmail-smtpd diff --git a/user/netqmail/smtpd.run b/user/netqmail/smtpd.run index 02884e840..51f06a7e7 100644 --- a/user/netqmail/smtpd.run +++ b/user/netqmail/smtpd.run @@ -4,8 +4,8 @@ fdmove -c 2 1 s6-envdir env importas -u IP IP fdmove 1 3 -s6-tcpserver -v2 -1 -c 255 -- $IP 25 -s6-tcpserver-access -v2 -DRp -t5000 -i data/rules -- +s6-tcpserver -v -1 -c 255 -- $IP 25 +s6-tcpserver-access -v2 -Dp -t5000 -i data/rules -- s6-ucspitlsd -v2 -K30000 -- s6-applyuidgid -Uz -- smtpd-starttls-proxy-io diff --git a/user/netsurf/APKBUILD b/user/netsurf/APKBUILD index 8be7259e7..c85e06a2e 100644 --- a/user/netsurf/APKBUILD +++ b/user/netsurf/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=netsurf -pkgver=3.10 +pkgver=3.11 pkgrel=0 pkgdesc="Modern, lightweight GTK-based browser" url="http://www.netsurf-browser.org/" @@ -26,5 +26,5 @@ package() { install -D -m644 "$srcdir"/netsurf.desktop "$pkgdir"/usr/share/applications/netsurf.desktop } -sha512sums="fc4c300eef07c540a7e07f8034db25b7e5fb731b5956029af2220f8638802aa38c055ad54b5683c14501aef9c22fb781b96613c16ae9a6996c3833ceede6f9bf netsurf-all-3.10.tar.gz -81cce213162cc49ea6a85b81c143c480ed202e2d2d06bb79d2eea803d7e8361b063d29c74904451cc2ba4e31cdad3524098344eb140cd5080f83beaf43aa8dbd netsurf.desktop" +sha512sums="f931687e08976ca336762587cc1ac75e45518be62b19d1d31aac3063b92b9666f8a022ff3a183e80c89404ba8ff33458b26521130e96943043085a42291ee283 netsurf-all-3.11.tar.gz +c82c95a305a0b6e984d313b7137ac8a20ff57e9df8c59cd1b636163aa040fc9ffea3fd652af1157b972265389786e221136abba89d01033a3710208552208dae netsurf.desktop" diff --git a/user/netsurf/netsurf.desktop b/user/netsurf/netsurf.desktop index c899cbbaa..c4aac80e8 100644 --- a/user/netsurf/netsurf.desktop +++ b/user/netsurf/netsurf.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Type=Application -Version=3.10 +Version=3.11 Name=NetSurf Comment=A minimalist web browser Icon=web-browser diff --git a/user/nettle/APKBUILD b/user/nettle/APKBUILD index b8acd8bee..762813dca 100644 --- a/user/nettle/APKBUILD +++ b/user/nettle/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=nettle pkgver=3.9.1 -pkgrel=0 +pkgrel=1 pkgdesc="Low-level cryptographic library" url="http://www.lysator.liu.se/~nisse/nettle/" arch="all" @@ -11,7 +11,7 @@ license="LGPL-3.0+ OR GPL-2.0+" depends="" depends_dev="gmp-dev" makedepends="$depends_dev m4 openssl-dev texinfo" -subpackages="$pkgname-dev $pkgname-utils" +subpackages="$pkgname-dev $pkgname-doc $pkgname-utils" source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz nettle-2.4-makefile.patch " diff --git a/user/obconf-qt/APKBUILD b/user/obconf-qt/APKBUILD index f3fb4acc2..38528f5b1 100644 --- a/user/obconf-qt/APKBUILD +++ b/user/obconf-qt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=obconf-qt -pkgver=0.16.3 +pkgver=0.16.4 _lxqt=0.9.0 pkgrel=0 pkgdesc="Qt5-based Openbox configuration tool" @@ -37,4 +37,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="617b0b1e7ddd6efaf8f3d771fbddd88ede5fe3daf6a5c5233cffdb2cf44ecc27731c4860f38e156c49953a369f07c93db0a88c48dae83f526461da34066f6c84 obconf-qt-0.16.3.tar.xz" +sha512sums="4f75a5275e14cd7e8f0abc1bfcd40b4d860d613bc37c06c0e68d6f622ed126dce2fea98b5dd8e629b5de472ab5e668a5b0af7f6621d09fcb0b2287a11b0fb662 obconf-qt-0.16.4.tar.xz" diff --git a/user/olm/APKBUILD b/user/olm/APKBUILD index 335484639..bc832ae94 100644 --- a/user/olm/APKBUILD +++ b/user/olm/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Dan Theisen <djt@hxx.in> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=olm -pkgver=3.2.6 +pkgver=3.2.16 pkgrel=0 pkgdesc="Implementation of the olm and megolm cryptographic ratchets" url="https://gitlab.matrix.org/matrix-org/olm/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e22af4e7791962978ea4c39b9bebf807a864ca52b329f032e5e398864cd142c1f166aadbce74cb85f776cb0b8352754151f64c60dac2ce1858def73d684fd44a olm-3.2.6.tar.bz2" +sha512sums="504ddc91297e7aef99e9b25f73b33bac29716ca33eb333bf1217b719d8862438e2cdaadd88cef3dc84e9f618bcc9eeeaf7e513f2d6909cc4a3d98a5dd79b0581 olm-3.2.16.tar.bz2" diff --git a/user/open-vm-tools/APKBUILD b/user/open-vm-tools/APKBUILD new file mode 100644 index 000000000..ea9af14c4 --- /dev/null +++ b/user/open-vm-tools/APKBUILD @@ -0,0 +1,111 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=open-vm-tools +pkgver=12.4.0 +_buildver=23259341 +pkgrel=1 +pkgdesc="Guest additions for VMware hypervisors" +url=" " +arch="x86 pmmx i528 x86_64 aarch64" +options="suid" +license="GPL-2.0-only" +depends="" +makedepends="curl-dev fuse3-dev glib-dev gtk+3.0-dev gtkmm+3.0-dev icu-dev + libdrm-dev libice-dev libsigc++-dev libsm-dev libtirpc-dev + libxcomposite-dev libxext-dev libxi-dev libxinerama-dev libxml2-dev + libxrandr-dev libxrender-dev libxtst-dev linux-pam-dev openssl-dev + rpcsvc-proto eudev-dev xmlsec-dev" +subpackages="$pkgname-dev $pkgname-desktop $pkgname-openrc" +source="https://github.com/vmware/open-vm-tools/releases/download/stable-$pkgver/open-vm-tools-$pkgver-$_buildver.tar.gz + disable-werror.patch + dndcp-portability.patch + time64.patch + hgfs-portability.patch + loff_t.patch + poll-header.patch + preadv.patch + resolver.patch + strerror_r.patch + vgauth-portability.patch + vix.patch + vmtoolsd.pamd + + open-vm-tools.confd + open-vm-tools.initd + vgauthd.initd + " +builddir="$srcdir/$pkgname-$pkgver-$_buildver" + +build() { + LDFLAGS="$LDFLAGS `icu-config --ldflags`" ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --disable-containerinfo \ + --disable-deploypkg \ + --disable-glibc-check \ + --disable-static \ + --disable-tests \ + --enable-resolutionkms \ + --with-gtk3 \ + --with-gtkmm3 \ + --with-icu \ + --with-pam \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --with-x \ + --without-kernel-modules + make +} + +check() { + make check +} + +package() { + make DESTDIR="$pkgdir" install + # Replace packaged PAM configuration with ours. + install -m 644 "$srcdir"/vmtoolsd.pamd "$pkgdir"/etc/pam.d/vmtoolsd + ln -s vmhgfs-fuse "$pkgdir"/usr/bin/mount.vmhgfs-fuse + + install -D -m644 "$srcdir"/open-vm-tools.confd "$pkgdir"/etc/conf.d/open-vm-tools + install -D -m755 "$srcdir"/open-vm-tools.initd "$pkgdir"/etc/init.d/open-vm-tools + install -D -m755 "$srcdir"/vgauthd.initd "$pkgdir"/etc/init.d/vgauthd +} + +desktop() { + pkgdesc="$pkgdesc (X11 desktop additions)" + mkdir -p "$subpkgdir"/etc + mv "$pkgdir"/etc/xdg "$subpkgdir"/etc/ + + mkdir -p "$subpkgdir"/usr/bin + for tool in vmware-user vmwgfxctrl vmware-user-suid-wrapper; do + mv "$pkgdir"/usr/bin/$tool "$subpkgdir"/usr/bin/$tool + done + chmod 4755 "$subpkgdir"/usr/bin/vmware-user-suid-wrapper + + mkdir -p "$subpkgdir"/usr/lib/$pkgname/plugins/vmsvc + mv "$pkgdir"/usr/lib/$pkgname/plugins/vmusr \ + "$subpkgdir"/usr/lib/$pkgname/plugins/ + mv "$pkgdir"/usr/lib/$pkgname/plugins/vmsvc/libresolutionKMS.so \ + "$subpkgdir"/usr/lib/$pkgname/plugins/vmsvc/ +} + +sha512sums="11ea43c64ec534922145f83e2b7ef9254437f80656ad03b596340a78c3698adcc7d84adade9c5d8e1c83b5ebc3bd086601b1d104e0f070274dc2b6bc1f64fb17 open-vm-tools-12.4.0-23259341.tar.gz +1966f6f31ed531829a40cd3e5c8352ea25cac0535a24f62aecf37e2018adbeb33cd214a43d4acc57766c8795d1849e1241c8777bbf96ad447f0c7baa41a555ed disable-werror.patch +987a65c77a462520430d157212fbd23381af301a0e5b02410750f4ac844bad903a92c62f743ea2880b9bca939696edd6c8f92b3f4fc01daafd46b5455f7b9666 dndcp-portability.patch +6167f412598bd70c7a66831a3fb870514da17461494210c2466af35748e3452702573203ca503906f30864a51436a3e296ee5fc25a7283f51ba06a542ed7f177 time64.patch +656585c7b087dd1b7539bcd362bb80faa48b7354819636061c2c92569bcd537804daf15b76f6bad0b7229af9d24462de4e630256ac7059941bf8cd115ae9a39c hgfs-portability.patch +6edb41bb9658271c6a214230c88526c4fccc4c6b3299bb67691f6f917e1e695a20dd09692c9a64d36d46a35cbecb975dcaf7062c0d7fccd2d9011cc17130072d loff_t.patch +2b623a9901851ba9b1652c117ee2a2ebb8e4cea7a01e2ffe6553cf6d929a86921f4e206278fd19fbab4effc0cc9051848e5254ca35ecfb3a006783e915cd5c5e poll-header.patch +52ab4bc5f73cde75b849a87dcc0981d95043a6b9bfdc1b18a10129998b4187ffd5098843f8593ed1a3569e91a2abeba0d5bdd1427727542a47dbbc8a84ab294f preadv.patch +b1f059432d0c4a233356b082e975ea0bf68059231c40cf3e32aedcdc273df234d6cdef9ac1c52baf3c1ee05d9cd02f414f6ce3bf049bdcb0a1162f67f522f902 resolver.patch +08abd276568d019c64e96ce49704980f214cab06eab563af3c7afb44b7e9893da3953cb34c963c82c6913092fcd766701a815db0b4c323aa1ba02ddb58768cd6 strerror_r.patch +b87ebf98d97815d48d998cf84490ae74bfee3619894f12121c8cd5706934783bb29668e32f494f6527e06779016da6f9f3bd0be7d3c342fc43c49d3d6637fafd vgauth-portability.patch +c37965bdbae1b1498d843cc752dc189832e79325eb7bd0dfd8acde81b1c2851c22d7717a3e65bce8209731c404a6e8eeff55a2e9a0f4d548e1f3ea7a7bfad27f vix.patch +9974a6a2e382600f8019de8923268d82ae22ebad0c5280e38d529570e7bdfdcfad86be838fcfd449a457e2d6cbf1dd9091ffa1e4da3c0acd8c34e9690a338f23 vmtoolsd.pamd +fca30a3be4dd3247e16115fe32b4d27ede8751f96b5a33b9f489b0ce57823c605b6249ff722d6f4ed82a98979f36d28821603b4a5a1d967d3048d23d983a19be open-vm-tools.confd +90acbf03eac472e7d8929c9293bf6cc77ad8f3583d74a51679866d4483d35f8c2628d3d544fc608824db39ee018caf4a2d318f73c557c1fa2ca7683c44e5241e open-vm-tools.initd +87ca487a2013b03c2d1b461621d98acd0a5f3eb3479ef7fa08f71ffcb7ab9947496ca08b7466bedc42c4d558ad31e7c81fcd40780a680161d8efc345fd857904 vgauthd.initd" diff --git a/user/open-vm-tools/disable-werror.patch b/user/open-vm-tools/disable-werror.patch new file mode 100644 index 000000000..544350a5e --- /dev/null +++ b/user/open-vm-tools/disable-werror.patch @@ -0,0 +1,21 @@ +#--- open-vm-tools-12.4.0-23259341/configure.ac.old 2024-02-06 09:07:32.000000000 -0600 +#+++ open-vm-tools-12.4.0-23259341/configure.ac 2024-05-22 13:44:36.918508290 -0500 +#@@ -1388,7 +1388,6 @@ +# +# ### General flags / actions +# CFLAGS="$CFLAGS -Wall" +#-CFLAGS="$CFLAGS -Werror" +# +# # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' +# # in Xlib.h on OpenSolaris. +# +--- open-vm-tools-12.4.0-23259341/configure.old 2024-02-06 09:11:26.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/configure 2024-05-22 13:44:44.128513544 -0500 +@@ -26481,7 +26481,6 @@ + + ### General flags / actions + CFLAGS="$CFLAGS -Wall" +-CFLAGS="$CFLAGS -Werror" + + # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' + # in Xlib.h on OpenSolaris. diff --git a/user/open-vm-tools/dndcp-portability.patch b/user/open-vm-tools/dndcp-portability.patch new file mode 100644 index 000000000..b667cbbce --- /dev/null +++ b/user/open-vm-tools/dndcp-portability.patch @@ -0,0 +1,22 @@ +--- open-vm-tools-12.4.0-23259341/services/plugins/dndcp/dnd/dndLinux.c.old 2024-02-06 09:08:40.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/services/plugins/dndcp/dnd/dndLinux.c 2024-05-22 14:45:57.307885844 -0500 +@@ -53,9 +53,6 @@ + + #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO) + #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) +-#ifdef sun +-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) +-#endif + #ifdef __ANDROID__ + /* + * Android doesn't support setmntent(), endmntent() or MOUNTED. +@@ -64,6 +61,9 @@ + #define NO_ENDMNTENT + #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) + #endif ++#ifndef ACCESSPERMS ++#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) ++#endif + + + /* diff --git a/user/open-vm-tools/hgfs-portability.patch b/user/open-vm-tools/hgfs-portability.patch new file mode 100644 index 000000000..dcd46b24f --- /dev/null +++ b/user/open-vm-tools/hgfs-portability.patch @@ -0,0 +1,34 @@ +--- open-vm-tools-12.4.0-23259341/lib/include/hgfsUtil.h.old 2024-02-06 09:08:40.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/lib/include/hgfsUtil.h 2024-05-22 14:05:09.079168248 -0500 +@@ -53,17 +53,5 @@ + # include <time.h> + # endif + # include "vm_basic_types.h" +-# if !defined _STRUCT_TIMESPEC && \ +- !defined _TIMESPEC_DECLARED && \ +- !defined __timespec_defined && \ +- !defined sun && \ +- !defined __FreeBSD__ && \ +- !__APPLE__ && \ +- !defined _WIN32 +-struct timespec { +- time_t tv_sec; +- long tv_nsec; +-}; +-# endif + + # include "hgfs.h" +--- open-vm-tools-12.4.0-23259341/lib/hgfsServer/hgfsServerLinux.c.old 2024-02-06 09:08:55.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/lib/hgfsServer/hgfsServerLinux.c 2024-05-22 14:04:34.789168929 -0500 +@@ -108,8 +108,10 @@ + * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the + * Solaris version of <sys/stat.h>. + */ +-#ifdef sun ++#ifndef ACCESSPERMS + # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) ++#endif ++#ifndef ALLPERMS + # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) + #endif + diff --git a/user/open-vm-tools/loff_t.patch b/user/open-vm-tools/loff_t.patch new file mode 100644 index 000000000..d9f24bd1b --- /dev/null +++ b/user/open-vm-tools/loff_t.patch @@ -0,0 +1,11 @@ +--- open-vm-tools-12.4.0-23259341/vmhgfs-fuse/fsutil.h.old 2024-02-06 09:07:33.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/vmhgfs-fuse/fsutil.h 2024-05-22 14:49:32.547748097 -0500 +@@ -32,7 +32,7 @@ + #include "hgfsProto.h" + #include <fuse.h> + +-#if defined(__FreeBSD__) || defined(__SOLARIS__) || defined(__APPLE__) ++#if defined(__FreeBSD__) || defined(__SOLARIS__) || defined(__APPLE__) || defined(__linux__) + typedef long long loff_t; + #endif + diff --git a/user/open-vm-tools/open-vm-tools.confd b/user/open-vm-tools/open-vm-tools.confd new file mode 100644 index 000000000..4414fabdb --- /dev/null +++ b/user/open-vm-tools/open-vm-tools.confd @@ -0,0 +1,2 @@ +# Set this to no to disable drag and drop (and vmblock) loading. +VM_DRAG_AND_DROP="yes" diff --git a/user/open-vm-tools/open-vm-tools.initd b/user/open-vm-tools/open-vm-tools.initd new file mode 100644 index 000000000..244a951e4 --- /dev/null +++ b/user/open-vm-tools/open-vm-tools.initd @@ -0,0 +1,60 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +pidfile="/run/vmtoolsd.pid" +command="/usr/bin/vmtoolsd" +command_args="-b ${pidfile}" + +vmblockmntpt="/proc/fs/vmblock/mountPoint" +vmblockfusemntpt="/run/vmblock-fuse" + +depend() { + before checkfs fsck net X + want vgauthd +} + +start_vmblock() { + checkpath -d -m 1777 /tmp/VMwareDnD + if command -v vmware-vmblock-fuse > /dev/null; then + modprobe fuse > /dev/null 2>&1 + checkpath -d "${vmblockfusemntpt}" + ebegin "Mounting vmblock-fuse" + vmware-vmblock-fuse \ + -o subtype=vmware-vmblock,default_permissions,allow_other \ + "${vmblockfusemntpt}" + eend $? + else + modprobe vmblock > /dev/null 2>&1 + checkpath -d "${vmblockmntpt}" + ebegin "Mounting vmblock" + mount -t vmblock vmblock "${vmblockmntpt}" + eend $? + fi +} + +stop_vmblock() { + if [ -d "${vmblockfusemntpt}" ]; then + ebegin "Unmounting vmblock-fuse" + umount "${vmblockfusemntpt}" + eend $? + else + ebegin "Unmounting vmblock" + umount "${vmblockmntpt}" + eend $? + fi +} + +start_pre() { + if [ x"${VM_DRAG_AND_DROP}" = xyes ]; then + start_vmblock + fi + return 0 +} + +stop_post() { + if [ x"${VM_DRAG_AND_DROP}" = xyes ]; then + stop_vmblock + fi + return 0 +} diff --git a/user/open-vm-tools/poll-header.patch b/user/open-vm-tools/poll-header.patch new file mode 100644 index 000000000..1dcc5e3c2 --- /dev/null +++ b/user/open-vm-tools/poll-header.patch @@ -0,0 +1,125 @@ +From 821c7949d79ad8e06b20cb1238316fce56778607 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Upstream-URL: https://github.com/vmware/open-vm-tools/pull/383 +Date: Thu, 31 Oct 2019 17:06:10 +0100 +Subject: [PATCH] Rename poll.h into vm_poll.h to fix build failure on musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +musl libc redirects include of sys/poll.h to poll.h. But since poll.h is +also a local header file, the musl libc header is never included. This +leads to the following build failure: + +In file included from asyncsocket.c:73:0: +.../host/i586-buildroot-linux-musl/sysroot/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp] + #warning redirecting incorrect #include <sys/poll.h> to <poll.h> +asyncsocket.c: In function ‘AsyncTCPSocketPollWork’: +asyncsocket.c:2537:13: error: invalid use of undefined type ‘struct pollfd’ + pfd[i].fd = asock[i]->fd; + ^ +asyncsocket.c:2537:13: error: dereferencing pointer to incomplete type ‘struct pollfd’ +asyncsocket.c:2538:13: error: invalid use of undefined type ‘struct pollfd’ + pfd[i].events = read ? POLLIN : POLLOUT; + ^ +asyncsocket.c:2538:33: error: ‘POLLIN’ undeclared (first use in this function); did you mean ‘POLL_IN’? + pfd[i].events = read ? POLLIN : POLLOUT; + +So rename poll.h into vm_poll.h as suggested by srowe in +https://github.com/vmware/open-vm-tools/issues/359#issuecomment-533529956 + +Fixes: + - http://autobuild.buildroot.org/results/4f575ef42bbc4387a07e396205052b2da081c64d + +Fix #359 + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +--- + lib/asyncsocket/asyncsocket.c | 4 ++-- + lib/hgfsServer/hgfsServer.c | 2 +- + lib/include/asyncsocket.h | 2 +- + lib/include/pollImpl.h | 2 +- + lib/include/{poll.h => vm_poll.h} | 0 + lib/rpcIn/rpcin.c | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + rename lib/include/{poll.h => vm_poll.h} (100%) + +diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c +index 102638cc9..01181a957 100644 +--- a/lib/asyncsocket/asyncsocket.c ++++ b/lib/asyncsocket/asyncsocket.c +@@ -70,8 +70,8 @@ + #else + #include <stddef.h> + #include <ctype.h> ++#include <poll.h> + #include <sys/types.h> +-#include <sys/poll.h> + #include <sys/socket.h> + #include <sys/un.h> + #include <netdb.h> +@@ -87,7 +87,7 @@ + #include "random.h" + #include "asyncsocket.h" + #include "asyncSocketBase.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "log.h" + #include "err.h" + #include "hostinfo.h" +diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c +index 462245511..fc6912860 100644 +--- a/lib/hgfsServer/hgfsServer.c ++++ b/lib/hgfsServer/hgfsServer.c +@@ -48,7 +48,7 @@ + #include "hgfsServerOplock.h" + #include "hgfsDirNotify.h" + #include "userlock.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "mutexRankLib.h" + #include "vm_basic_asm.h" + #include "unicodeOperations.h" +diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h +index 95a5e4643..a4b4e5aae 100644 +--- a/lib/include/asyncsocket.h ++++ b/lib/include/asyncsocket.h +@@ -177,7 +177,7 @@ typedef struct AsyncSocket AsyncSocket; + * Or the client can specify its favorite poll class and locking behavior. + * Use of IVmdbPoll is only supported for regular sockets and for Attach. + */ +-#include "poll.h" ++#include "vm_poll.h" + struct IVmdbPoll; + typedef struct AsyncSocketPollParams { + int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ +diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h +index 46442e556..8bc669970 100644 +--- a/lib/include/pollImpl.h ++++ b/lib/include/pollImpl.h +@@ -44,7 +44,7 @@ + #define INCLUDE_ALLOW_USERLEVEL + #include "includeCheck.h" + +-#include "poll.h" ++#include "vm_poll.h" + #include "vm_basic_asm.h" + + #if defined(__cplusplus) +diff --git a/lib/include/poll.h b/lib/include/vm_poll.h +similarity index 100% +rename from lib/include/poll.h +rename to lib/include/vm_poll.h +diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c +index 47a3380e4..660382c62 100644 +--- a/lib/rpcIn/rpcin.c ++++ b/lib/rpcIn/rpcin.c +@@ -57,7 +57,7 @@ + + #if defined(VMTOOLS_USE_VSOCKET) + # include <glib.h> +-# include "poll.h" ++# include "vm_poll.h" + # include "asyncsocket.h" + # include "vmci_defs.h" + #include "dataMap.h" diff --git a/user/open-vm-tools/preadv.patch b/user/open-vm-tools/preadv.patch new file mode 100644 index 000000000..ee2aacc5a --- /dev/null +++ b/user/open-vm-tools/preadv.patch @@ -0,0 +1,11 @@ +--- open-vm-tools-12.4.0-23259341/lib/file/fileIOPosix.c.old 2024-02-06 09:08:55.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/lib/file/fileIOPosix.c 2024-05-22 13:56:20.738840704 -0500 +@@ -203,7 +203,7 @@ + * are not available in any header file. + */ + +-#if defined(__linux__) && !defined(__ANDROID__) ++#if defined(__linux__) && defined(__GLIBC__) + #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) + /* + * We want preadv/pwritev. But due to FOB=64, the symbols are -64. diff --git a/user/open-vm-tools/resolver.patch b/user/open-vm-tools/resolver.patch new file mode 100644 index 000000000..7dd3e6fa9 --- /dev/null +++ b/user/open-vm-tools/resolver.patch @@ -0,0 +1,40 @@ +From: void-packages + +--- a/lib/nicInfo/nicInfoPosix.c ++++ b/lib/nicInfo/nicInfoPosix.c +@@ -66,6 +66,35 @@ + # include <net/if.h> + #endif + ++ ++#if !defined(__GLIBC__) ++/*************************************************************************** ++ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc ++ * Note: res_init() is actually deprecated according to ++ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html ++ **************************************************************************/ ++#include <string.h> ++ ++static inline int res_ninit(res_state statp) ++{ ++ int rc = res_init(); ++ if (statp != &_res) { ++ memcpy(statp, &_res, sizeof(*statp)); ++ } ++ return rc; ++} ++ ++static inline int res_nclose(res_state statp) ++{ ++ if (!statp) ++ return -1; ++ if (statp != &_res) { ++ memset(statp, 0, sizeof(*statp)); ++ } ++ return 0; ++} ++#endif ++ + /* + * resolver(3) and IPv6: + * diff --git a/user/open-vm-tools/strerror_r.patch b/user/open-vm-tools/strerror_r.patch new file mode 100644 index 000000000..05de85f7a --- /dev/null +++ b/user/open-vm-tools/strerror_r.patch @@ -0,0 +1,25 @@ +--- open-vm-tools-12.4.0-23259341/lib/err/errPosix.c.old 2024-02-06 09:08:54.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/lib/err/errPosix.c 2024-05-22 13:58:47.578938258 -0500 +@@ -29,6 +29,7 @@ + #endif + + #include <errno.h> ++#include <stdio.h> + #include <string.h> + #include <locale.h> + +@@ -63,10 +64,12 @@ + { + char *p; + +-#if defined(__linux__) && !defined(__ANDROID__) ++#if defined(__linux__) && defined(__GLIBC__) + p = strerror_r(errorNumber, buf, bufSize); + #else +- p = strerror(errorNumber); ++ if(strerror_r(errorNumber, buf, bufSize) != 0) ++ snprintf(buf, bufSize, "unknown error %i", errorNumber); ++ p = buf; + #endif + ASSERT(p != NULL); + return p; diff --git a/user/open-vm-tools/time64.patch b/user/open-vm-tools/time64.patch new file mode 100644 index 000000000..bc6bbb091 --- /dev/null +++ b/user/open-vm-tools/time64.patch @@ -0,0 +1,58 @@ +diff --git a/open-vm-tools/services/plugins/dndcp/fakeMouseWayland/fakeMouseWayland.cpp b/open-vm-tools/services/plugins/dndcp/fakeMouseWayland/fakeMouseWayland.cpp +index 0311a4e7..4a231a4d 100644 +--- a/services/plugins/dndcp/fakeMouseWayland/fakeMouseWayland.cpp ++++ b/services/plugins/dndcp/fakeMouseWayland/fakeMouseWayland.cpp +@@ -249,11 +249,14 @@ FakeMouse_Move(int x, // IN + + bool retValue = true; + struct input_event event; ++ struct timeval tv; + + event.type = EV_ABS; + event.code = ABS_X; + event.value = x; +- gettimeofday(&event.time, NULL); ++ gettimeofday(&tv, NULL); ++ event.input_event_sec = tv.tv_sec; ++ event.input_event_usec = tv.tv_usec; + if (write(uinput_fd, &event, sizeof(event)) < 0) { + g_debug("Line:%d. Function:%s. Failed to write\n", __LINE__, __FUNCTION__); + retValue = false; +@@ -262,7 +265,9 @@ FakeMouse_Move(int x, // IN + event.type = EV_ABS; + event.code = ABS_Y; + event.value = y; +- gettimeofday(&event.time, NULL); ++ gettimeofday(&tv, NULL); ++ event.input_event_sec = tv.tv_sec; ++ event.input_event_usec = tv.tv_usec; + if (write(uinput_fd, &event, sizeof(event)) < 0) { + g_debug("Line:%d. Function:%s. Failed to write\n", __LINE__, __FUNCTION__); + retValue = false; +@@ -271,7 +276,9 @@ FakeMouse_Move(int x, // IN + event.type = EV_SYN; + event.code = SYN_REPORT; + event.value = 0; +- gettimeofday(&event.time, NULL); ++ gettimeofday(&tv, NULL); ++ event.input_event_sec = tv.tv_sec; ++ event.input_event_usec = tv.tv_usec; + if (write(uinput_fd, &event, sizeof(event)) < 0) { + g_debug("Line:%d. Function:%s. Failed to write\n", __LINE__, __FUNCTION__); + retValue = false; +@@ -306,11 +313,14 @@ FakeMouse_Click(bool down) // IN + + bool retValue = true; + struct input_event event; ++ struct timeval tv; + + event.type = EV_KEY; + event.code = BTN_LEFT; + event.value = down; +- gettimeofday(&event.time, NULL); ++ gettimeofday(&tv, NULL); ++ event.input_event_sec = tv.tv_sec; ++ event.input_event_usec = tv.tv_usec; + if (write(uinput_fd, &event, sizeof(event)) < 0) { + g_debug("Line:%d. Function:%s. Failed to write\n", __LINE__, __FUNCTION__); + retValue = false; diff --git a/user/open-vm-tools/vgauth-portability.patch b/user/open-vm-tools/vgauth-portability.patch new file mode 100644 index 000000000..ad484a8fd --- /dev/null +++ b/user/open-vm-tools/vgauth-portability.patch @@ -0,0 +1,49 @@ +--- open-vm-tools-12.4.0-23259341/vgauth/common/VGAuthLog.c.old 2024-02-06 09:07:33.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/vgauth/common/VGAuthLog.c 2024-05-22 14:27:07.008724455 -0500 +@@ -210,7 +210,7 @@ + g_vsnprintf(buf, sizeof buf, fmt, args); + buf[sizeof buf - 1] = '\0'; + +-#ifdef sun ++#ifndef __GLIBC__ + strerror_r(code, errMsg, sizeof errMsg); + g_warning("[function %s, file %s, line %d], %s, [errno = %d], %s\n", + func, file, line, buf, code, errMsg); +--- open-vm-tools-12.4.0-23259341/vgauth/lib/netPosix.c.old 2024-02-06 09:07:36.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/vgauth/lib/netPosix.c 2024-05-22 14:26:11.458768814 -0500 +@@ -27,7 +27,6 @@ + #include <sys/socket.h> + #include <sys/stat.h> + #include <unistd.h> +-#include <sys/unistd.h> + #include <sys/un.h> + #include <netinet/in.h> + #include <arpa/inet.h> +--- open-vm-tools-12.4.0-23259341/vgauth/serviceImpl/netPosix.c.old 2024-02-06 09:07:35.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/vgauth/serviceImpl/netPosix.c 2024-05-22 14:28:53.728639235 -0500 +@@ -27,7 +27,6 @@ + #include <sys/socket.h> + #include <sys/stat.h> + #include <unistd.h> +-#include <sys/unistd.h> + #include <sys/un.h> + #include <netinet/in.h> + #include <arpa/inet.h> +--- open-vm-tools-12.4.0-23259341/vgauth/common/vmxrpc.c.old 2024-02-06 09:07:36.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/vgauth/common/vmxrpc.c 2024-05-22 14:42:02.708035980 -0500 +@@ -76,13 +76,13 @@ + typedef unsigned __int64 uint64; + + #endif +-#ifdef __linux__ ++#if defined(__linux__) && defined(__GLIBC__) + typedef __uint32_t uint32; + typedef __uint64_t uint64; + + #define SOCKET int + #endif +-#ifdef sun ++#if (defined(__linux__) && !defined(__GLIBC__)) || defined(sun) + typedef uint32_t uint32; + typedef uint64_t uint64; + diff --git a/user/open-vm-tools/vgauthd.initd b/user/open-vm-tools/vgauthd.initd new file mode 100644 index 000000000..8ab97f2c2 --- /dev/null +++ b/user/open-vm-tools/vgauthd.initd @@ -0,0 +1,6 @@ +#!/sbin/openrc-run + +pidfile="/run/vgauthd.pid" +command="/usr/bin/VGAuthService" +command_args="-s" +command_background="true" diff --git a/user/open-vm-tools/vix.patch b/user/open-vm-tools/vix.patch new file mode 100644 index 000000000..9a12d0d76 --- /dev/null +++ b/user/open-vm-tools/vix.patch @@ -0,0 +1,11 @@ +--- open-vm-tools-12.4.0-23259341/services/plugins/vix/vixTools.c.old 2024-02-06 09:07:35.000000000 -0600 ++++ open-vm-tools-12.4.0-23259341/services/plugins/vix/vixTools.c 2024-05-22 14:48:32.807786329 -0500 +@@ -66,7 +66,7 @@ + #include <unistd.h> + #endif + +-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__) ++#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__linux__) + #include <sys/stat.h> + #endif + diff --git a/user/open-vm-tools/vmtoolsd.pamd b/user/open-vm-tools/vmtoolsd.pamd new file mode 100644 index 000000000..71fb8cc0d --- /dev/null +++ b/user/open-vm-tools/vmtoolsd.pamd @@ -0,0 +1,6 @@ +# Welcome to Adélie Linux. + +# This file ensures VMware Tools uses the system-wide PAM configuration. + +auth include base-auth +account include base-account diff --git a/user/openal-soft/APKBUILD b/user/openal-soft/APKBUILD index 9b0a4c7ff..be2110585 100644 --- a/user/openal-soft/APKBUILD +++ b/user/openal-soft/APKBUILD @@ -1,10 +1,10 @@ # Contributor: Ariadne Conill <ariadne@dereferenced.org> # Maintainer: Zach van Rijn <me@zv.io> pkgname=openal-soft -pkgver=1.19.1 +pkgver=1.23.1 pkgrel=0 pkgdesc="Software implementation of OpenAL API" -url="https://kcat.strangesoft.net/openal.html" +url="https://openal-soft.org/" arch="all" options="!check" # No test suite. license="LGPL-2.0+" @@ -15,7 +15,7 @@ subpackages="$pkgname-dev" source="https://openal-soft.org/openal-releases/${pkgname}-${pkgver}.tar.bz2" build() { - local _cpuext_neon="" + _cpuext_neon="" case "$CARCH" in armhf) _cpuext_neon="-DALSOFT_CPUEXT_NEON=OFF" ;; esac @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="356a3f12bbe284bfac71f4f2a9f83d084083a832012222e73743042ac27812cf051c12b0ddcf53c010ff77e44ae2e9033cea9b9324d316a22a59a154307a64a4 openal-soft-1.19.1.tar.bz2" +sha512sums="0d40577cd27040dc8814c15bacc310a0ce1c98e084f0a37db9f66899265df42ea61ac672efba7445e495849c25b9ba5b086f43320a38965f6ee74081b2896819 openal-soft-1.23.1.tar.bz2" diff --git a/user/opencv/APKBUILD b/user/opencv/APKBUILD index 759f20e0b..9bd859b92 100644 --- a/user/opencv/APKBUILD +++ b/user/opencv/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: pkgname=opencv pkgver=4.6.0 -pkgrel=0 +pkgrel=1 pkgdesc="Computer vision and machine learning software library" url="https://opencv.org" arch="all" @@ -17,6 +17,7 @@ subpackages="$pkgname-dev $pkgname-libs" source="opencv-$pkgver.tar.gz::https://github.com/opencv/opencv/archive/$pkgver.tar.gz ade-0.1.1f.zip::https://github.com/opencv/ade/archive/v0.1.1f.zip cmake-license.patch + fix-headers.manual-patch " # secfixes: @@ -24,13 +25,13 @@ source="opencv-$pkgver.tar.gz::https://github.com/opencv/opencv/archive/$pkgver. # - CVE-2019-16249 prepare() { - default_prepare # purge 3rd party except carotene for i in 3rdparty/*; do case $i in */carotene*) continue;; */ittnotify) continue;; # Else FTBFS on x86_64 */quirc) continue;; + */include) continue;; esac rm -rf "$i" done @@ -65,6 +66,7 @@ build() { -DWITH_IPP=OFF \ $_sse \ -Bbuild + patch -Np1 < "$srcdir"/fix-headers.manual-patch make -C build } @@ -74,4 +76,5 @@ package() { sha512sums="93d7807794682990b6a1d1de1851986ae3c5d1afe6605f3f8cace03ba5e3390bee2568bc0f335af34d3fc974df64cbce0ce685261ec2abd693d259b97b15bc46 opencv-4.6.0.tar.gz f2994d5e92a2ae05cee6e153943afe151ce734ced6e06dcdb02dee9fed9336a7f1ea69661d9e033f1412fbb5e2a44a6e641662c85be5ba0604d0446abeabe836 ade-0.1.1f.zip -ffa6930086051c545a44d28b8e428de7faaeecf961cdee6eef007b2b01db7e5897c6f184b1059df9763c1bcd90f88b9ead710dc13b51a608f21d683f55f39bd6 cmake-license.patch" +ffa6930086051c545a44d28b8e428de7faaeecf961cdee6eef007b2b01db7e5897c6f184b1059df9763c1bcd90f88b9ead710dc13b51a608f21d683f55f39bd6 cmake-license.patch +c1ba6c7b66edc747a2bddd622787f75eb5edd9ef65a2da9a1bbf432fad97fdfe293f0b16631085006299e7e74468d601b942ecdc389997e9e64dee16c082648f fix-headers.manual-patch" diff --git a/user/opencv/fix-headers.manual-patch b/user/opencv/fix-headers.manual-patch new file mode 100644 index 000000000..9a3eb8542 --- /dev/null +++ b/user/opencv/fix-headers.manual-patch @@ -0,0 +1,12 @@ +Required header for GCC 13. + +--- opencv-4.6.0/build/3rdparty/ade/ade-0.1.1f/sources/ade/include/ade/typed_graph.hpp.old 2019-08-07 03:55:16.000000000 -0500 ++++ opencv-4.6.0/build/3rdparty/ade/ade-0.1.1f/sources/ade/include/ade/typed_graph.hpp 2024-05-28 16:39:53.217246004 -0500 +@@ -11,6 +11,7 @@ + + #include <unordered_set> + #include <string> ++#include <cstdint> + + #include <array> + diff --git a/user/opengfx/APKBUILD b/user/opengfx/APKBUILD index 24e0e621e..60c5cdd44 100644 --- a/user/opengfx/APKBUILD +++ b/user/opengfx/APKBUILD @@ -9,7 +9,7 @@ arch="noarch" options="!check" # Requires GIMP license="GPL-2.0-only" depends="" -makedepends="grfcodec nml cmd:unix2dos cmd:which" +makedepends="grfcodec nml dos2unix cmd:which" subpackages="" source="https://cdn.openttd.org/$pkgname-releases/$pkgver/$pkgname-$pkgver-source.tar.xz" builddir="$srcdir/$pkgname-$pkgver-source" diff --git a/user/openttd/APKBUILD b/user/openttd/APKBUILD index 3831b7b86..0ad34bb58 100644 --- a/user/openttd/APKBUILD +++ b/user/openttd/APKBUILD @@ -12,7 +12,7 @@ depends="opengfx openmsx opensfx" makedepends="fontconfig-dev freetype-dev icu-dev libpng-dev libxdg-basedir-dev lzo-dev sdl-dev xz-dev zlib-dev" subpackages="$pkgname-doc" -source="https://proxy.binaries.openttd.org/openttd-releases/$pkgver/openttd-$pkgver-source.tar.xz" +source="https://cdn.openttd.org/openttd-releases/$pkgver/openttd-$pkgver-source.tar.xz" build() { ./configure \ diff --git a/user/openvpn/APKBUILD b/user/openvpn/APKBUILD index 474fc455f..a3d86d7b9 100644 --- a/user/openvpn/APKBUILD +++ b/user/openvpn/APKBUILD @@ -2,14 +2,14 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=openvpn -pkgver=2.5.7 +pkgver=2.6.12 pkgrel=0 pkgdesc="A robust, and highly configurable VPN (Virtual Private Network)" url="https://openvpn.net/" arch="all" license="GPL-2.0-only WITH openvpn-openssl-exception" -depends="iproute2" -makedepends="openssl-dev lzo-dev linux-pam-dev linux-headers" +depends="iproute2 lz4-libs" +makedepends="libcap-ng-dev linux-headers linux-pam-dev lz4-dev lzo-dev openssl-dev" subpackages="$pkgname-doc $pkgname-dev $pkgname-auth-pam:pam $pkgname-openrc" install="$pkgname.pre-install" source="https://swupdate.openvpn.net/community/releases/$pkgname-$pkgver.tar.gz @@ -20,6 +20,9 @@ source="https://swupdate.openvpn.net/community/releases/$pkgname-$pkgver.tar.gz " # secfixes: +# 2.6.7-r0: +# - CVE-2023-46850 +# - CVE-2023-46849 # 2.5.6-r0: # - CVE-2022-0547 # - CVE-2021-3606 @@ -69,7 +72,7 @@ pam() { "$subpkgdir"/usr/lib/openvpn/plugins/ } -sha512sums="b90dc9ddb9c3bc8eda9ffa0507bb82c46347a44fb05861859665ac6f9759345054f47bc86073dcaf06d56b1e403e94d887aa0480e17188075c19c909daf18844 openvpn-2.5.7.tar.gz +sha512sums="92f548186d9375d6ae47b1387dd191241b8a45aed82294523b3771bdd5e699b94265e1a3bbf3ef2638da0d54c19c783f54c456cbd755c846849bf67913cad6db openvpn-2.6.12.tar.gz 3594937d4cc9d7b87ac6a3af433f651ed9695f41586994f9d9789554fbe3f87f054b997b89486eda4ae0b852d816aac9007222168d585910aa9f255073324bd9 openvpn.initd 6b2353aca9df7f43044e4e37990491b4ba077e259ebe13b8f2eb43e35ca7a617c1a65c5bfb8ab05e87cf12c4444184ae064f01f9abbb3c023dbbc07ff3f9c84e openvpn.confd cdb73c9a5b1eb56e9cbd29955d94297ce5a87079419cd626d6a0b6680d88cbf310735a53f794886df02030b687eaea553c7c569a8ea1282a149441add1c65760 openvpn.up diff --git a/user/otf-source-code-pro/APKBUILD b/user/otf-source-code-pro/APKBUILD index 5bd3f1ebb..bc9d73f25 100644 --- a/user/otf-source-code-pro/APKBUILD +++ b/user/otf-source-code-pro/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=otf-source-code-pro -pkgver=2.038 -_itver=1.058 -_varver=1.018 +pkgver=2.042 +_itver=1.062 +_varver=1.026 pkgrel=0 pkgdesc="Monospaced font family for user interfaces and programming" url="https://adobe-fonts.github.io/source-code-pro/" @@ -12,8 +12,8 @@ options="!check" # No test suite. license="OFL-1.1" depends="fontconfig" makedepends="" -source="https://github.com/adobe-fonts/source-code-pro/releases/download/${pkgver}R-ro/${_itver}R-it/${_varver}R-VAR/OTF-source-code-pro-${pkgver}R-ro-${_itver}R-it.zip" -builddir="$srcdir" +source="https://github.com/adobe-fonts/source-code-pro/releases/download/${pkgver}R-u/${_itver}R-i/${_varver}R-vf/OTF-source-code-pro-${pkgver}R-u_${_itver}R-i.zip" +builddir="$srcdir/OTF" package() { mkdir -p "$pkgdir"/usr/share/fonts/X11/OTF/${pkgname#*-} @@ -22,4 +22,4 @@ package() { done } -sha512sums="07566e6b2d5889323aa44040cab403b21a2341982f811a97039fd91a4b863732e35f3532af7b883ab751fa2f4db9080d897e403cf983e44e147a0d107c5b1838 OTF-source-code-pro-2.038R-ro-1.058R-it.zip" +sha512sums="a961c607557f727ae1099d741318eac49bd177009faca4ff843da86075c2403ccb72fa633050edf86dccd014a7aaa8348260b2af36a7b5e964b1be7b9dabe3d6 OTF-source-code-pro-2.042R-u_1.062R-i.zip" diff --git a/user/otf-source-sans-pro/APKBUILD b/user/otf-source-sans-pro/APKBUILD index edd7f2ecb..a9a03af59 100644 --- a/user/otf-source-sans-pro/APKBUILD +++ b/user/otf-source-sans-pro/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=otf-source-sans-pro -pkgver=3.046 +pkgver=3.052 _pkgver=${pkgver%.*}v${pkgver#*.} pkgrel=0 pkgdesc="Sans serif font family for user interfaces" @@ -21,4 +21,4 @@ package() { done } -sha512sums="13f369ab4ca1491a48d206f534f34ee6a42e62ee82caedd70bff7da35ebd7a9a5382a1fb73910363aa9fc4faa7d0becec717f7b94c4d1fffb67a3f6266330f8c OTF-source-sans-3.046R.zip" +sha512sums="dcd0c783d6c298f0040ade1d548fa5632ecc04d1e6a30eb387288ee00473f06bff26b7a98323d4306cebeb5a48af143d170c00461057d22d335798c7c48a5e15 OTF-source-sans-3.052R.zip" diff --git a/user/pangomm/APKBUILD b/user/pangomm/APKBUILD index af20d5b51..ecb6508f7 100644 --- a/user/pangomm/APKBUILD +++ b/user/pangomm/APKBUILD @@ -8,7 +8,7 @@ url="https://gnome.org" arch="all" license="LGPL-2.1+" depends="" -makedepends="doxygen glibmm-dev graphviz cairomm-dev meson ninja pango-dev cmd:xsltproc" +makedepends="doxygen glibmm-dev graphviz cairomm-dev meson ninja pango-dev libxslt" subpackages="$pkgname-dev $pkgname-doc" source="https://download.gnome.org/sources/pangomm/${pkgver%.*}/pangomm-$pkgver.tar.xz" diff --git a/user/parole/APKBUILD b/user/parole/APKBUILD index fe4eb6087..2a8722784 100644 --- a/user/parole/APKBUILD +++ b/user/parole/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=parole -pkgver=4.18.0 +pkgver=4.18.1 pkgrel=0 pkgdesc="GStreamer-based media player for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2988c8b6f9f0beab646a90116ee83f19d6e6689ea4d037ea643aa26d5716f7c452fa96ee1d4c6d01ee6c421b06cb5405f7256cfdb525ce1016c12f0a78cddb80 parole-4.18.0.tar.bz2" +sha512sums="ec2b8036f2be594dc13c37aca76b7250ec1792c7166501e9a2775efb731e87cf6894196243e68026437e2bbd4a9edf1aa9cfa076886e333e2ecf4523f8f1d647 parole-4.18.1.tar.bz2" diff --git a/user/pavucontrol-qt/APKBUILD b/user/pavucontrol-qt/APKBUILD index 05d47d5b6..b2b67764a 100644 --- a/user/pavucontrol-qt/APKBUILD +++ b/user/pavucontrol-qt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=pavucontrol-qt -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt port of pavucontrol, a PulseAudio mixer" @@ -10,8 +10,8 @@ arch="all" options="!check" # No test suite. license="GPL-2.0+" depends="" -makedepends="cmake pulseaudio-dev qt5-qtbase-dev liblxqt-dev qt5-qttools-dev - lxqt-build-tools>=$_lxqt" +makedepends="cmake pulseaudio-dev qt5-qtbase-dev liblxqt-dev>=${pkgver%.*} + qt5-qttools-dev lxqt-build-tools>=$_lxqt" source="https://github.com/lxqt/pavucontrol-qt/releases/download/$pkgver/pavucontrol-qt-$pkgver.tar.xz" build() { @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="64f954b103b6ffbb97a81a23489799a1fff71810f15f755b92e814a03d8bbe6351ba2a1c8179d60777cbbe60e5ee40cf0e04167cf1467a5b27c9b02142f7cb8c pavucontrol-qt-1.3.0.tar.xz" +sha512sums="cfa878bddd0b0299319c31a4e97aa8b6dc799f040fedf5ca0210d8eeb526f59258aab57ae050987633826c7a94fbbd0e1a1b1fc184fc8693541c799b6118a157 pavucontrol-qt-1.4.0.tar.xz" diff --git a/user/pcmanfm-qt/APKBUILD b/user/pcmanfm-qt/APKBUILD index 88577c1b8..98a42393d 100644 --- a/user/pcmanfm-qt/APKBUILD +++ b/user/pcmanfm-qt/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=pcmanfm-qt -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="File manager and desktop icon manager for LXQt" @@ -9,9 +9,9 @@ url="https://lxqt.github.io/" arch="all" options="!check" # No test suite. license="GPL-2.0+" -depends="" +depends="gvfs lxqt-menu-data" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt - liblxqt-dev>=${pkgver%.*}.0 libfm-qt-dev>=${pkgver%.*}.0 + liblxqt-dev>=${pkgver%.*} libfm-qt-dev>=${pkgver%.*}.0 qt5-qtx11extras-dev qt5-qttools-dev kwindowsystem-dev" subpackages="$pkgname-doc" source="https://github.com/lxqt/pcmanfm-qt/releases/download/$pkgver/pcmanfm-qt-$pkgver.tar.xz" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="c656b89258b8156863057a6f99932174f6f2f4d85ffae85b18ff3f0e3c199624aff29866df3b5f78e826918321cc3298bfe492119e6e01aaf5495cc9500ea3e3 pcmanfm-qt-1.3.0.tar.xz" +sha512sums="dbc24092b5ea7f13d484caf4cbefd2267f65db4c5d3b43cecf46114d149f91e58e977bed9fa3dc128e54e0b2bcb1043b8a234d16a7a211a94ae5f123e73ff117 pcmanfm-qt-1.4.0.tar.xz" diff --git a/user/perl-app-licensecheck/APKBUILD b/user/perl-app-licensecheck/APKBUILD index 3825e68c2..4c2208c42 100644 --- a/user/perl-app-licensecheck/APKBUILD +++ b/user/perl-app-licensecheck/APKBUILD @@ -5,12 +5,12 @@ _pkgreal=App-Licensecheck _author=JONASS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.3.8 +pkgver=3.3.9 pkgrel=0 pkgdesc="Perl library and utility for checking source-file licensing" url="https://metacpan.org/release/App-Licensecheck" arch="noarch" -options="!check" # spurious test failure +options="!check" # spurious test failures license="GPL-3.0+" depends="perl perl-array-intspan perl-encode-locale perl-feature-compat-try perl-getopt-long-descriptive perl-io-interactive perl-list-someutils @@ -43,4 +43,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b517a2baa6d97b41ed75cb1ed48548ce37dd5afa83f22e38cf627f93e46f158bf2c0139e3641eebb74bf7df2c9420f424bc444e917f70cecc6603c60334630c9 App-Licensecheck-v3.3.8.tar.gz" +sha512sums="ef120511ce2bbf384d864bd6a72fd06fb1946d8e2fdb4d19b196a32e0b7c5207b84990fc538382b35b18cca815005c616a7bc882934e79d4fef59add9df58d96 App-Licensecheck-v3.3.9.tar.gz" diff --git a/user/perl-b-hooks-endofscope/APKBUILD b/user/perl-b-hooks-endofscope/APKBUILD index 84a08f128..1a0bdeba5 100644 --- a/user/perl-b-hooks-endofscope/APKBUILD +++ b/user/perl-b-hooks-endofscope/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=B-Hooks-EndOfScope _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.26 +pkgver=0.28 pkgrel=0 pkgdesc="Execute Perl code after a scope finished compilation" url="https://metacpan.org/release/B-Hooks-EndOfScope" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="e7333f061889d5d97cd793ad557ec1a2c5a918c977f1af22ce004d5d67f7781fcf171f427c31ed6a2a2d02d12e6ad3e15e1c80cad498f83263ff384ab0ec297c B-Hooks-EndOfScope-0.26.tar.gz" +sha512sums="692d6ccc5d86f4fdd23491983ec4358a0be61d9ed23ab2e9a0b767395482447c44ff1a78e10ce72f393f542db3879712bc3077e74dbab13d902c302cae3750fe B-Hooks-EndOfScope-0.28.tar.gz" diff --git a/user/perl-cgi/APKBUILD b/user/perl-cgi/APKBUILD index 5c7942717..60ba72f59 100644 --- a/user/perl-cgi/APKBUILD +++ b/user/perl-cgi/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=CGI _author=LEEJO _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=4.56 +pkgver=4.62 pkgrel=0 pkgdesc="Handle CGI requests and responses in Perl" url="https://metacpan.org/release/CGI" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b4fb61aa186e46f507945d6a87d8470d9b879a4307094ad09d7ce8611984897c1b4fd96d2344062f966959dab0c40e40b03c3104dcacb66e76ce6fd3d778de56 CGI-4.56.tar.gz" +sha512sums="d418cf0b0024de6f29bceed0b4aede5cf2d51386ad6cbc07fe127a255a23e29464c272374fa7361d3cf83f6338f38c6aba0a07c841c5cab9974ef1fa2c5c1261 CGI-4.62.tar.gz" diff --git a/user/perl-code-tidyall/APKBUILD b/user/perl-code-tidyall/APKBUILD index 67dc032a8..093e078e4 100644 --- a/user/perl-code-tidyall/APKBUILD +++ b/user/perl-code-tidyall/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Code-TidyAll _author=DROLSKY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.83 +pkgver=0.84 pkgrel=0 pkgdesc="Your all-in-one Perl code tidier and validator" url="https://metacpan.org/release/Code-TidyAll" @@ -38,4 +38,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="6d06c8b0afd5d4fb67985abbf9ba69e565761c25738682c4ecfde7de8a8b06fdc8397fa9e438c84012475437de74d14db0ec456a007b968995d71415d5adfc83 Code-TidyAll-0.83.tar.gz" +sha512sums="b1ce060e81b42f80bebec3ea28613fd54b8948df6c22939b2a274b96bcb3c3a36bf3c3d15c8459c377bf98cf6e56258df1eefe75580c46a284d8186c5110cbc5 Code-TidyAll-0.84.tar.gz" diff --git a/user/perl-commandable/APKBUILD b/user/perl-commandable/APKBUILD index 12e3932ee..d688263c8 100644 --- a/user/perl-commandable/APKBUILD +++ b/user/perl-commandable/APKBUILD @@ -5,14 +5,15 @@ _pkgreal=Commandable _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.09 +pkgver=0.11 pkgrel=0 pkgdesc="Represents one invocation of a CLI command" url="https://metacpan.org/pod/Commandable" arch="noarch" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="perl-test-fatal perl-test-warnings" +checkdepends="perl-test-fatal perl-test-warnings perl-test2-suite + perl-test-nowarnings" makedepends="perl-module-build perl-module-pluggable" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="1bd74ae2de32e772f73d1883543309d3d3150b0aa214a4651758fe4c485c82c775292ba63f1e91841d9a0681d65a55a0fc0f8bf0e52dc4ce769105141fa2c9e5 Commandable-0.09.tar.gz" +sha512sums="cc73431bc58f0c0adc957532c331d34bf9da741e0c290855fe946219dad44bd55f2d9ba018b3d61f35ad43b87012906b0702ab5a0cc1c86cee266f0a276bab7d Commandable-0.11.tar.gz" diff --git a/user/perl-convert-color/APKBUILD b/user/perl-convert-color/APKBUILD index 9d1867e0d..5048462d2 100644 --- a/user/perl-convert-color/APKBUILD +++ b/user/perl-convert-color/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=Convert-Color _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.14 +pkgver=0.17 pkgrel=0 pkgdesc="Perl utilities for color conversion" url="https://metacpan.org/pod/Convert::Color" arch="noarch" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="perl-test-number-delta" +checkdepends="perl-test-number-delta perl-test2-suite" makedepends="perl-list-utilsby perl-module-build perl-module-pluggable" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="848d140248dd8f31adfee2cdc323f81386967952f29d7e7f28653faf456f0b804a55a179780d7ef3d11adaaaecf499310c2e00350c32bb3db5a808d846c1187b Convert-Color-0.14.tar.gz" +sha512sums="edcbdc0d2775b7e5f814fc3fd16d4e089f89a3141a0e8776bf783aade5a7f20fa05cb4a46bd01bf16d2d9f41af46bca72de087c56c02fd088fe8b619bc26cb27 Convert-Color-0.17.tar.gz" diff --git a/user/perl-cookie-baker/APKBUILD b/user/perl-cookie-baker/APKBUILD index 2b3cebe16..8b1858c1e 100644 --- a/user/perl-cookie-baker/APKBUILD +++ b/user/perl-cookie-baker/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Cookie-Baker _author=KAZEBURO _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.11 +pkgver=0.12 pkgrel=0 pkgdesc="Cookie string generator and parser for Perl" url="https://metacpan.org/release/Cookie-Baker" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="0b75d9c74e1daa5d4dd63febd887e6c4825fd1df5f56335bf733b5bf2f24a56f6b76728259799aaf4dedf27efae90c238962585956608b1408a67164c3759ed2 Cookie-Baker-0.11.tar.gz" +sha512sums="5b859652ff258b47c2078109275264e6d00619ac69b86b245c916c9b93e420ba253628df5d7d8c7a4c3321519cd63981435e571cb87ef8776ee3a94112b8c408 Cookie-Baker-0.12.tar.gz" diff --git a/user/perl-cpan-changes/APKBUILD b/user/perl-cpan-changes/APKBUILD index 90282b1d8..871f56cff 100644 --- a/user/perl-cpan-changes/APKBUILD +++ b/user/perl-cpan-changes/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=CPAN-Changes _author=HAARG _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.400002 +pkgver=0.500003 pkgrel=0 pkgdesc="Perl module for validating CPAN Changes files" url="https://metacpan.org/release/CPAN-Changes" arch="noarch" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -makedepends="perl-dev" +makedepends="perl-dev perl-module-runtime perl-moo perl-type-tiny" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" builddir="$srcdir/$_pkgreal-$pkgver" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="d359073d9d5ed2126835d4895c1ee5288cc09e72202ba77441bb25cf13e9cd0f16d4040b7e2cf1785efd6e8ccbe7908415fb4fefeebe9c0548d838d2ac850dfb CPAN-Changes-0.400002.tar.gz" +sha512sums="f5a9b088a76579288d69b963e344bf0d3d17d90b2600770bf2b2d74103b960ba71b16a22e0f3279c45474f62f639899611fbd5e25e3d659efa52c7995037b790 CPAN-Changes-0.500003.tar.gz" diff --git a/user/perl-cpan-meta-check/APKBUILD b/user/perl-cpan-meta-check/APKBUILD index 778cc7b8e..755ca2c00 100644 --- a/user/perl-cpan-meta-check/APKBUILD +++ b/user/perl-cpan-meta-check/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=CPAN-Meta-Check _author=LEONT _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.017 +pkgver=0.018 pkgrel=0 pkgdesc="Verify requirements in a Perl CPAN::Meta object" url="https://metacpan.org/release/CPAN-Meta-Check" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="cbb71312e9efe35a5d08f2e41d0b32592765587125a57bb3396dbead5d280a7fdfa24991dcfdea6a1b3cc3efc3ad23bbc9cf52ada38e043625eea72b56f3d08d CPAN-Meta-Check-0.017.tar.gz" +sha512sums="ea340287e4f14a5ea00f7fe0decc424ff3ac1af9615cf41905e36be37b1b5f3401d3d44d4aef1d0f4a253f46f0170e1a1607b669ab975ba78d7c1497f0583169 CPAN-Meta-Check-0.018.tar.gz" diff --git a/user/perl-data-optlist/APKBUILD b/user/perl-data-optlist/APKBUILD index 797cd8bf3..56a8a7b7d 100644 --- a/user/perl-data-optlist/APKBUILD +++ b/user/perl-data-optlist/APKBUILD @@ -4,7 +4,7 @@ _pkgreal=Data-OptList _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.113 +pkgver=0.114 pkgrel=0 pkgdesc="Parse and validate simple name/value option pairs" url="https://metacpan.org/release/Data-OptList" @@ -30,4 +30,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8c3a27218cf1a1fc9515be63586ea782c299cd193ab5003885a051a28d0d9c1e8d7ce6e4ddaffcdb37f1d2fa28363b4248a45f964b2429cea712253549ae2da2 Data-OptList-0.113.tar.gz" +sha512sums="72f60ad7d9a6d87ffecfbc0f6f6d48dad2816dd4431d7e82e8ab834e0852da27420fd52fb2a1138254d80bf8b98b94b9fa25b878e1bb155221543a78219ee16a Data-OptList-0.114.tar.gz" diff --git a/user/perl-datetime-locale/APKBUILD b/user/perl-datetime-locale/APKBUILD index 0842d9676..daddfb5a6 100644 --- a/user/perl-datetime-locale/APKBUILD +++ b/user/perl-datetime-locale/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=DateTime-Locale _author=DROLSKY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.37 +pkgver=1.40 pkgrel=0 pkgdesc="Locale support for Perl DateTime" url="https://metacpan.org/release/DateTime-Locale" @@ -36,4 +36,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="38228a04f346b50f8444d446440d63e51ee583cc2dd58b275c44aaeff43bfdee750156e4c8f046db6eb36b372026429e6e7e37000ee9d9a9fef0568f13f21a16 DateTime-Locale-1.37.tar.gz" +sha512sums="40942acea6e27ea7e84a6c38ec712c868f9009adaa16b9dbfa4ff5d5094a8add4a5fcaafe49b7bbb8530348ad79ac7a910efab68a5085a41e731108797ea1045 DateTime-Locale-1.40.tar.gz" diff --git a/user/perl-datetime-timezone/APKBUILD b/user/perl-datetime-timezone/APKBUILD index 2a24142fc..82ed28c5c 100644 --- a/user/perl-datetime-timezone/APKBUILD +++ b/user/perl-datetime-timezone/APKBUILD @@ -5,15 +5,17 @@ _pkgreal=DateTime-TimeZone _author=DROLSKY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.57 +pkgver=2.62 pkgrel=0 pkgdesc="Time zone object class and factory for Perl" url="https://metacpan.org/release/DateTime-TimeZone" arch="noarch" license="Artistic-1.0-Perl OR GPL-1.0+" -depends="perl-class-singleton perl-module-runtime perl-namespace-autoclean - perl-params-validationcompiler perl-specio perl-try-tiny perl" -checkdepends="perl-test-fatal perl-test-requires" +depends="perl-class-singleton perl-module-runtime + perl-namespace-autoclean perl-params-validationcompiler perl-specio + perl-try-tiny perl" +checkdepends="perl-test-fatal perl-test-output perl-test-requires + perl-test-taint" makedepends="perl-dev" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -33,4 +35,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="67ca8e7b4d43d359ba70a9aca96ccb26f2881beb63fdd6693337f67a8b7a88492e0634c078f9a13bbe348e0b6c799e7b04dff7dd4c8dd5705de4802d0fc4ecec DateTime-TimeZone-2.57.tar.gz" +sha512sums="7608a47b5acbf61904f66cc945bd96ff1042af6a6d3077905d238239dfdb8cd4a4dc3c75d21c37308d2ed716c64557c7a0fae41e47403a6771cf2f53cbb22afb DateTime-TimeZone-2.62.tar.gz" diff --git a/user/perl-datetime/APKBUILD b/user/perl-datetime/APKBUILD index 156a8dc44..7857b9653 100644 --- a/user/perl-datetime/APKBUILD +++ b/user/perl-datetime/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=DateTime _author=DROLSKY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.59 +pkgver=1.65 pkgrel=0 pkgdesc="Date and time object for Perl" url="https://metacpan.org/release/DateTime" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="72f96b0466e8ffa9d0d5fd480892d304993a048349bd837ad1f76fc144c816725de0844df9ea34a5c54d23476aec3838af8ac68cb8574247581f6cf8d08e4e88 DateTime-1.59.tar.gz" +sha512sums="53b8bb5085420104d9cd2b6df076d353684ec6f347caf17f858c9c09e052aa19421bf980d130dbbe0094b791ff071ee99d8222509717008e5a3cd354639f7720 DateTime-1.65.tar.gz" diff --git a/user/perl-dbd-pg/APKBUILD b/user/perl-dbd-pg/APKBUILD index 11e265d61..b08949330 100644 --- a/user/perl-dbd-pg/APKBUILD +++ b/user/perl-dbd-pg/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=DBD-Pg _author=TURNSTEP _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.16.1 +pkgver=3.18.0 pkgrel=0 pkgdesc="PostgreSQL interface for Perl DBI" url="https://metacpan.org/release/DBD-Pg" arch="all" license="Artistic-1.0-Perl OR GPL-1.0+" depends="perl perl-dbi" -checkdepends="cmd:locale postgresql" +checkdepends="musl-locales postgresql" makedepends="perl-dev postgresql-dev" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="86d598c5aa3c238c3797c622677ca727dd98db664a39b397c97ca78325bc62e861f549113022b61789a0a376826154793ac5ea641b35d04a6de1b4add6b14697 DBD-Pg-3.16.1.tar.gz" +sha512sums="0a81d1993f22a923776ab57f1437dbee2b5c42de091e274355dbcc9bb07e3db0c22126d0037de8de43fafeab9c947db1e3692087127027a0b13eed538fc2e1ee DBD-Pg-3.18.0.tar.gz" diff --git a/user/perl-devel-stacktrace/APKBUILD b/user/perl-devel-stacktrace/APKBUILD index 8a21941fe..2691167b0 100644 --- a/user/perl-devel-stacktrace/APKBUILD +++ b/user/perl-devel-stacktrace/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Devel-StackTrace _author=DROLSKY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.04 +pkgver=2.05 pkgrel=0 pkgdesc="A Perl object representing a stack trace" url="https://metacpan.org/release/Devel-StackTrace" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="2330c1d8619cdcb42b5919090e6eaabbe34ab26b50d5c09c4cfd7ed099829817a50ffe582bd1f2a19a7d5be050819796f22dee32b10e175259e6df177ce6d0a9 Devel-StackTrace-2.04.tar.gz" +sha512sums="070f95e731a7ac07a19f0ae0a4dbe04ae2ee72e43c34363e57c2336c856ec2f7fc055ae9fec6b8ee85ca06d6b5558a891a1a6df62c7d1b60493b22be38a020b8 Devel-StackTrace-2.05.tar.gz" diff --git a/user/perl-email-abstract/APKBUILD b/user/perl-email-abstract/APKBUILD index d20016d86..0add081e9 100644 --- a/user/perl-email-abstract/APKBUILD +++ b/user/perl-email-abstract/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Email-Abstract _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.009 +pkgver=3.010 pkgrel=0 pkgdesc="Unified interface to email representations in Perl" url="https://metacpan.org/release/Email-Abstract" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="e2c2a497d942ef56d723ab109f8844f840bc14a4a23ae0febea32f6ce814b943ac0599dfce0a17c24d6631826240d8692592292a1c4f1fcc599c1983b37e0705 Email-Abstract-3.009.tar.gz" +sha512sums="73c7e9083f583d17c20bcda2a17e6ff7187c587e8168415692618be2ec0a10f0bce2ddb1da8d2cc929022af56da4498d44cf0cc062c1c5b83abac2ecb48a9ae6 Email-Abstract-3.010.tar.gz" diff --git a/user/perl-email-sender/APKBUILD b/user/perl-email-sender/APKBUILD index 454df05b3..ed0f49f2e 100644 --- a/user/perl-email-sender/APKBUILD +++ b/user/perl-email-sender/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Email-Sender _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.600 +pkgver=2.601 pkgrel=0 pkgdesc="Library for sending email" url="https://metacpan.org/release/Email-Sender" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="2c28cc1f5c36488bf573a6e806ec4fbbe5fe3560fbb24c237375586a3f4e87df4c539e494910950a66e235296733fc9d186c49d9c7c5c016b17f2eacb62b17c6 Email-Sender-2.600.tar.gz" +sha512sums="ca349761607d4693eaac77c8f385799dffa3713dee642ca81271f377421c44d4b1712f16bc2834204d28448addb97576cbf50c8f28681e24940c691d6208b05a Email-Sender-2.601.tar.gz" diff --git a/user/perl-exporter-tiny/APKBUILD b/user/perl-exporter-tiny/APKBUILD index 3a52a9c53..642b09476 100644 --- a/user/perl-exporter-tiny/APKBUILD +++ b/user/perl-exporter-tiny/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Exporter-Tiny _author=TOBYINK _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.006000 +pkgver=1.006002 pkgrel=0 pkgdesc="Light-weight exporter with the features of Sub::Exporter" url="https://metacpan.org/release/Exporter-Tiny" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="bc43a7c4cd5bf3aacf95043bfe178770186b82fd7b935684c86bab78954c693bbc8dc35285a9670e3f7888e6a9d73731f1dcc3b21a05493509ee98ee2f8414f3 Exporter-Tiny-1.006000.tar.gz" +sha512sums="684dc97d854686910928f413bd84df3e2d2b351c2304116d5c567ec74eb7384f4085881f2bdeaf96dcf9ade2a959076ebd2bde3977dd5b876f75daaf6ca9d763 Exporter-Tiny-1.006002.tar.gz" diff --git a/user/perl-extutils-cppguess/APKBUILD b/user/perl-extutils-cppguess/APKBUILD index 1f876e2fe..653135d60 100644 --- a/user/perl-extutils-cppguess/APKBUILD +++ b/user/perl-extutils-cppguess/APKBUILD @@ -5,8 +5,8 @@ _pkgreal=ExtUtils-CppGuess _author=ETJ _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.26 -pkgrel=0 +pkgver=0.27 +pkgrel=1 pkgdesc="Perl module for checking C++ compiler and flags" url="https://metacpan.org/pod/ExtUtils::CppGuess" arch="noarch" @@ -14,7 +14,9 @@ license="Artistic-1.0-Perl OR GPL-1.0+" depends="perl perl-capture-tiny perl-extutils-parsexs" makedepends="perl-dev perl-module-build perl-extutils-cbuilder" subpackages="$pkgname-doc" -source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" +source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz + fix.patch + " builddir="$srcdir/ExtUtils-CppGuess-$pkgver" build() { @@ -31,4 +33,5 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="35e8e11f7df5d4a2a306cbe1df7a879291cb041677c740d95fc228e8ee812a127be4c70bc2ae6b25d3e73de69e1796539dacf3bb0b1a3311de3dea588335a225 ExtUtils-CppGuess-0.26.tar.gz" +sha512sums="289e38f3033b3072ff40dffdea8cb60bc9f91e426ff927de2e8499724cecb03f76c4740b2f868d6c55bf019c9e6eb1a5de20111591c7292e60765f65a249e60c ExtUtils-CppGuess-0.27.tar.gz +d58f11f617021ff0783f615d5d777890ec379de6a9cb05ed271cae37529e63a7158be7aa83392d8882216971039941441f4d6d14e3155c7a51dd5e764f6c2976 fix.patch" diff --git a/user/perl-extutils-cppguess/fix.patch b/user/perl-extutils-cppguess/fix.patch new file mode 100644 index 000000000..13ddb2203 --- /dev/null +++ b/user/perl-extutils-cppguess/fix.patch @@ -0,0 +1,60 @@ +Fix MSVC detection. I don't know why I did this, either. + +Ref: #1174 + +--- ExtUtils-CppGuess-0.27/lib/ExtUtils/CppGuess.pm.old 2023-11-19 13:19:51.000000000 -0600 ++++ ExtUtils-CppGuess-0.27/lib/ExtUtils/CppGuess.pm 2024-07-10 11:26:59.221777726 -0500 +@@ -257,6 +257,12 @@ + compiler_command => 'clang++', + extra_lflags => '-lc++', + ); ++ } elsif ( $self->_cc_is_msvc( $c_compiler ) ) { ++ %guess = ( ++ compiler_command => 'cl', ++ extra_cflags => '-TP -EHsc', ++ extra_lflags => 'msvcprt.lib', ++ ); + } elsif( $self->_cc_is_sunstudio( $c_compiler ) ) { + %guess = ( + compiler_command => 'CC', +@@ -277,12 +283,6 @@ + # Don't use -lstdc++ if Perl was linked with -static-libstdc++ (ActivePerl 5.18+ on Windows) + $guess{extra_lflags} = '-lstdc++' + unless ($self->_config->{ldflags} || '') =~ /static-libstdc\+\+/; +- } elsif ( $self->_cc_is_msvc( $c_compiler ) ) { +- %guess = ( +- compiler_command => 'cl', +- extra_cflags => '-TP -EHsc', +- extra_lflags => 'msvcprt.lib', +- ); + } + $guess{$ENV2VAL{$_}} = $ENV{$_} for grep defined $ENV{$_}, keys %ENV2VAL; + if (!%guess) { +@@ -383,8 +383,12 @@ + + sub _cc_is_msvc { + my( $self, $cc ) = @_; +- $self->{is_msvc} +- = ($self->_os =~ /MSWin32/ and File::Basename::basename($cc) =~ /^cl/i); ++ $self->{is_msvc} = undef; ++ if ( ++ ($self->_os =~ /MSWin32/ and File::Basename::basename($cc) =~ /^cl/i) ++ ) { ++ $self->{is_msvc} = 1; ++ } + return $self->{is_msvc}; + } + +--- ExtUtils-CppGuess-0.27/t/002_icpp.t.old 2023-11-19 13:11:06.000000000 -0600 ++++ ExtUtils-CppGuess-0.27/t/002_icpp.t 2024-07-10 11:27:48.506428703 -0500 +@@ -9,8 +9,8 @@ + [ + { os => 'MSWin32', cc => 'cl', config => {ccflags => ''} }, + { +- is_sunstudio => 0, +- is_msvc => 1, is_gcc => 0, is_clang => 0, ++ is_sunstudio => undef, ++ is_msvc => 1, is_gcc => undef, is_clang => undef, + compiler_command => 'cl -TP -EHsc', + linker_flags => 'msvcprt.lib', + }, diff --git a/user/perl-extutils-parsexs/APKBUILD b/user/perl-extutils-parsexs/APKBUILD index 8683932c1..c29e5e2ca 100644 --- a/user/perl-extutils-parsexs/APKBUILD +++ b/user/perl-extutils-parsexs/APKBUILD @@ -2,10 +2,10 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=perl-extutils-parsexs _pkgreal=ExtUtils-ParseXS -_author=XSAWYERX +_author=LEONT _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.44 +pkgver=3.51 pkgrel=0 pkgdesc="Perl module for converting XS code into C" url="https://metacpan.org/pod/ExtUtils::ParseXS" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="0a3c155bb5718814c97784c83b4a108fdd72153605f733fafb1a61c1e626f2454584f3baefc5d3a490280226e5a240e4cb95453bae3f609511d96750fcfc7389 ExtUtils-ParseXS-3.44.tar.gz" +sha512sums="f8e3a064577b62ee17c4b55349c2044da7e4075cd6da20f7b2c6b92a8522209b594a0cecd0853744f15c4fc71cb9bc3d23f05511f84d2b15da05897a86d9f660 ExtUtils-ParseXS-3.51.tar.gz" diff --git a/user/perl-feature-compat-class/APKBUILD b/user/perl-feature-compat-class/APKBUILD index 6fdc10484..89c19d141 100644 --- a/user/perl-feature-compat-class/APKBUILD +++ b/user/perl-feature-compat-class/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Feature-Compat-Class _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.05 +pkgver=0.06 pkgrel=0 pkgdesc="Perl module for providing class syntax and related keywords" url="https://metacpan.org/pod/Feature::Compat::Class" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="a8e51655d69f5b087bb86eb1abdbcacea85dc376dafd9d32d8fa971175484b4441c5efedd8a3d1fcc5bb741a9367a871967bdfabaa070d02fd8bbf1123cc7c59 Feature-Compat-Class-0.05.tar.gz" +sha512sums="5b3c933923be62f82b84b5c6ffa5edeaf1e585ba8cf0d166d61eb177df3ec391a709ae1418eea57bac57e7f4be9bdb600998e035cef8b11baaa9e2a55cde07bc Feature-Compat-Class-0.06.tar.gz" diff --git a/user/perl-file-copy-recursive-reduced/APKBUILD b/user/perl-file-copy-recursive-reduced/APKBUILD index f0e8b737e..24c61fa54 100644 --- a/user/perl-file-copy-recursive-reduced/APKBUILD +++ b/user/perl-file-copy-recursive-reduced/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=File-Copy-Recursive-Reduced _author=JKEENAN _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.006 +pkgver=0.007 pkgrel=0 pkgdesc="Recursive copying of files and directories within Perl 5 toolchain" url="https://metacpan.org/pod/File::Copy::Recursive::Reduced" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="7cf888b8c004d9430c87c1cceba25e997cb12974a79c3f4d803b11779abef81f5b686caac4c46a70caadb2eee12a71cb1fb87abfc7d5fec43dc37bbd2ef07694 File-Copy-Recursive-Reduced-0.006.tar.gz" +sha512sums="7b2029acc3cd4cf5775df60b0d716da3868283bbce4bf4717dcd95fad112973ccd4df25ab88312d5a2a4f332399312d412bb2fd81245f843a619eae0ee5be085 File-Copy-Recursive-Reduced-0.007.tar.gz" diff --git a/user/perl-file-find-object/APKBUILD b/user/perl-file-find-object/APKBUILD index 72acc2abc..6bbaf3c06 100644 --- a/user/perl-file-find-object/APKBUILD +++ b/user/perl-file-find-object/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=File-Find-Object _author=SHLOMIF _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.3.7 +pkgver=0.3.8 pkgrel=0 pkgdesc="Object-oriented File::Find replacement for Perl" url="https://metacpan.org/release/File-Find-Object" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="d6bf9835d3fef13bdcf5b2821ac359279b9779c76658505ff487cc0df73e26912999b8630df997ba98e1d15c4f69cc71312c76327bcb9deb72a94d1ffdb7cb2d File-Find-Object-0.3.7.tar.gz" +sha512sums="f3a00f6b8ec22e7a7361ef158a4c631e1c834e19fb672cf429bdcffb3d11b35aff94a07a73b1922a8f47bab90f3dbc64c39da7a8899df9337b062a430481827e File-Find-Object-0.3.8.tar.gz" diff --git a/user/perl-file-mimeinfo/APKBUILD b/user/perl-file-mimeinfo/APKBUILD index 1b94647b5..d06e075b4 100644 --- a/user/perl-file-mimeinfo/APKBUILD +++ b/user/perl-file-mimeinfo/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=File-MimeInfo _author=MICHIELB _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.33 +pkgver=0.34 pkgrel=0 pkgdesc="Determine file types from Perl" url="https://metacpan.org/release/File-MimeInfo" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="5fbba13775079da56928175f48db1c1ab8ac4d7fa3e85bdb5384c4021cab7cf8c363a3d8219cf34318136b1470e32163abae7c37a119416a5e510d8d07848c9d File-MimeInfo-0.33.tar.gz" +sha512sums="5ce15976aa5ed59563ae64339aeefed426e97aa22448005e0dd50b8fee32237faafc59308cdad9d7eea6c3e3b58c41032d1f4fa670bc17d4ad58ca07743d015f File-MimeInfo-0.34.tar.gz" diff --git a/user/perl-games-solitaire-verify/APKBUILD b/user/perl-games-solitaire-verify/APKBUILD index fcd0a4c27..c4536a148 100644 --- a/user/perl-games-solitaire-verify/APKBUILD +++ b/user/perl-games-solitaire-verify/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Games-Solitaire-Verify _author=SHLOMIF _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.2403 +pkgver=0.2500 pkgrel=0 pkgdesc="Verify solutions to solitaire games" url="https://metacpan.org/release/Games-Solitaire-Verify" @@ -33,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="6c246631680dd18cd78e3a6158947e8a39d1125fa4bd9eaf19905a3f1940eff97515fad35e22c69a6270d077ffe9db65ad8ec02682bdc5bd8e7ffa0c718be8eb Games-Solitaire-Verify-0.2403.tar.gz" +sha512sums="4ba898d4c4e159e887b4d52bedf35bf7e763dd754735eb3e8ecd9b3703f8e1bbf0c0987c75a842323e800b3671116afd6f1916a8fcd0f0cf5ea0bf43664e35d7 Games-Solitaire-Verify-0.2500.tar.gz" diff --git a/user/perl-gd/APKBUILD b/user/perl-gd/APKBUILD index ee48bc71b..74d4457f4 100644 --- a/user/perl-gd/APKBUILD +++ b/user/perl-gd/APKBUILD @@ -5,13 +5,14 @@ _pkgreal=GD _author=RURBAN _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.76 +pkgver=2.78 pkgrel=0 pkgdesc="Perl module for GD graphics library" url="https://metacpan.org/release/GD" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" +checkdepends="perl-test-nowarnings" makedepends="perl-dev perl-extutils-pkgconfig freetype-dev libgd-dev libjpeg-turbo-dev libpng-dev libwebp-dev zlib-dev" subpackages="$pkgname-doc" @@ -33,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="31c2d61440a7fef9804aed677ee5568f6c237e678cf5a2b7f48e98326ef7cddbf3624ce3965e6711ef9cec4148881a0cb4352c19b91ead4b78835fafaeefbe4d GD-2.76.tar.gz" +sha512sums="ef3df42c003f105fd1c313ea9e8b8b1e75912b4fdb274e73f2e4f5664a0adb8479a2e62fae5a493e37c36865f9dc37207d2d31e96316eb18a3c5384e07858591 GD-2.78.tar.gz" diff --git a/user/perl-getopt-long-descriptive/APKBUILD b/user/perl-getopt-long-descriptive/APKBUILD index 4f63e1b00..5a42af4b8 100644 --- a/user/perl-getopt-long-descriptive/APKBUILD +++ b/user/perl-getopt-long-descriptive/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Getopt-Long-Descriptive _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.111 +pkgver=0.114 pkgrel=0 pkgdesc="Simpler Perl implementation of Getopt::Long" url="https://metacpan.org/release/Getopt-Long-Descriptive" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="22cff8f92e51f08573e34f24028adbf1c3c1c88570a8d35361234ff13486ca5de20ee2cf8d056971777b9cb0f0c78cc183de2e74915f23eaf9b14fbcbf256531 Getopt-Long-Descriptive-0.111.tar.gz" +sha512sums="f7d640f0ecfc2619036f8df3e5e6a85334a814f05156e7b056cee3add372225898701c7772e7507bcf87174d6c2bf3a699fc3f924e7fdcc8837457598e35ef7a Getopt-Long-Descriptive-0.114.tar.gz" diff --git a/user/perl-graphics-toolkit-color/APKBUILD b/user/perl-graphics-toolkit-color/APKBUILD index 290cf6083..732247bae 100644 --- a/user/perl-graphics-toolkit-color/APKBUILD +++ b/user/perl-graphics-toolkit-color/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Graphics-Toolkit-Color _author=LICHTKIND _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.08 +pkgver=1.71 pkgrel=0 pkgdesc="Color palette creation helper" url="https://metacpan.org/pod/Graphics::Toolkit::Color" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b8f35dda6767343602f69b4a49000987802342567195392d0a342e5cecf7db0d1451e85165a566a766ac046cd574ac0f8518e928b3ca2e78e6d8681819738bf6 Graphics-Toolkit-Color-1.08.tar.gz" +sha512sums="77f694d9b384641792c5a368b7443495f2484eeef673dee1d1b0340a96d6259d87d427bc67934beaf31b1ce58d9346e7a77998b685897ba07fc83f5431ae70e7 Graphics-Toolkit-Color-1.71.tar.gz" diff --git a/user/perl-io-interactive/APKBUILD b/user/perl-io-interactive/APKBUILD index f02414bc6..9306ad747 100644 --- a/user/perl-io-interactive/APKBUILD +++ b/user/perl-io-interactive/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=perl-io-interactive -pkgver=1.023 +pkgver=1.025 pkgrel=0 pkgdesc="Utilities for interactive I/O" url="https://metacpan.org/pod/IO::Interactive" @@ -26,4 +26,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="82899c09adaf3699d5640b78bfbd5201972cf4c47ae90f7c6d6da9fc1f4470abc1bc5898b904c501d567537dc19f781febd7f05d0c06e60f1c193cf33abfb47f IO-Interactive-1.023.tar.gz" +sha512sums="b9aca9d3920ea256e5b2c3e19559e7626ab076b36b38b58eecf087d8a2614b805a0226246bf035eb41b801a0972dfb19e1c99d2f8105bd403db5017e84b6e2dc IO-Interactive-1.025.tar.gz" diff --git a/user/perl-io-tty/APKBUILD b/user/perl-io-tty/APKBUILD index 2869a2f7f..b8e60082a 100644 --- a/user/perl-io-tty/APKBUILD +++ b/user/perl-io-tty/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=IO-Tty _author=TODDR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.17 +pkgver=1.20 pkgrel=0 pkgdesc="Low-level allocate a pseudo-tty" url="https://metacpan.org/pod/IO::Tty" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="a9a53670d579684af1ca0d6e77bd74430c801174c59421139f79a19e76377d40055b74a8b1ef92d8601ca5bda2f911cba99a0bda0c24cf847bacac3df2314d37 IO-Tty-1.17.tar.gz" +sha512sums="a411dcc3da4adf4913ceaca7d97198041c6870ac8b579a1d5c2517d984fab4cc8108962b23ee694da9e0c952f35d695e636ff35589873b95a86c2bf8c1838ee4 IO-Tty-1.20.tar.gz" diff --git a/user/perl-ipc-run/APKBUILD b/user/perl-ipc-run/APKBUILD index c26eb3a91..590b3b4d8 100644 --- a/user/perl-ipc-run/APKBUILD +++ b/user/perl-ipc-run/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=IPC-Run _author=TODDR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=20220807.0 +pkgver=20231003.0 pkgrel=0 pkgdesc="system() and background procs w/ piping, redirs, ptys" url="https://metacpan.org/pod/IPC::Run" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="ddfd0ceb78bd56c8c95a0a293a59d605959ba8d1b161a2c5959ac185c18fffa5cf047c3448d3b83a2733aa1372550f93d74d86eb05d49748f789fa46282694aa IPC-Run-20220807.0.tar.gz" +sha512sums="81b94715e61f2a302ba4cfbd03f6af14ab66d438dfdf58187ccf8b0f7ff562fd343ef560ad48dad8118342dd493530560ac89beca6de2818663d556d18feff90 IPC-Run-20231003.0.tar.gz" diff --git a/user/perl-lib-relative/APKBUILD b/user/perl-lib-relative/APKBUILD index 45df724e9..74582c8b8 100644 --- a/user/perl-lib-relative/APKBUILD +++ b/user/perl-lib-relative/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=lib-relative _author=DBOOK _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.001 +pkgver=1.002 pkgrel=0 pkgdesc="Add paths relative to the current file to Perl @INC" url="https://metacpan.org/release/lib-relative" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="6e4e07d4a0f4d921e6b5cd088b75e855d60cefb0c2b9c83e6b2b0670a4207e5c966295dc3ef09b2590c92f193cc1c5a21c7ba552fc6f18a1037d8e59433eeff8 lib-relative-1.001.tar.gz" +sha512sums="af015fb454636d40c6364aa898d316387481f08bd5b2b0ff0c2acc1646f38f8766c39249179df59d97f3d4211d952c8acf659b9fc087d89606293d36f1998693 lib-relative-1.002.tar.gz" diff --git a/user/perl-log-any-adapter-screen/APKBUILD b/user/perl-log-any-adapter-screen/APKBUILD index 8515dae6f..40a7a5672 100644 --- a/user/perl-log-any-adapter-screen/APKBUILD +++ b/user/perl-log-any-adapter-screen/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Log-Any-Adapter-Screen _author=PERLANCAR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.140 +pkgver=0.141 pkgrel=0 pkgdesc="Perl module for logging to GNU screen" url="https://metacpan.org/pod/Log::Any::Adapter::Screen" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="a7ded27bbc548108169e59964783ba6200c3afd798219bcd9daea47c390128db628c30392eb7eaebb93b5e3b59f51c717599518130b3ba31a1765cca3b4c362c Log-Any-Adapter-Screen-0.140.tar.gz" +sha512sums="825a3b71bf418c3f79723e96fb5db985182cf054fb07517bc4e1e2594efbfff37f94f3ca69e122b818feb6f8b5e6eca8fdb63b7997cf54a9ce099cce5d096471 Log-Any-Adapter-Screen-0.141.tar.gz" diff --git a/user/perl-log-any/APKBUILD b/user/perl-log-any/APKBUILD index 0838eacb2..5281776e8 100644 --- a/user/perl-log-any/APKBUILD +++ b/user/perl-log-any/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Log-Any _author=PREACTION _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.714 +pkgver=1.717 pkgrel=0 pkgdesc="Bring Perl loggers and listeners together" url="https://metacpan.org/release/Log-Any" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="35809f8da7be83b43da505fbccca472c7040fb7e89da0d3422bf0ada3b2391569ec1db738870ac9870ccbb4e5ba2ffcd98c9eac7655b940e08c4afcbf17f5867 Log-Any-1.714.tar.gz" +sha512sums="feabda26eefebd7fe63ba63750b11e00f217778f0fa801adf3b52342400155230b620b3f2b08630e4b472a328a6c13a84294d35c52968f2fc1206b61fee0d20e Log-Any-1.717.tar.gz" diff --git a/user/perl-lwp-protocol-https/APKBUILD b/user/perl-lwp-protocol-https/APKBUILD index 6eff98c47..495af6396 100644 --- a/user/perl-lwp-protocol-https/APKBUILD +++ b/user/perl-lwp-protocol-https/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=LWP-Protocol-https _author=OALDERS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=6.10 +pkgver=6.13 pkgrel=0 pkgdesc="HTTPS support for Perl LWP" url="https://metacpan.org/release/LWP-Protocol-https" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="4d3c89dab6fadcb574c176977ca6debba177ee3f817e87319d9cd81e0a0b09214e271c2e97edc456dad2f4a1ebf8c6266a4ae52c3a93144880a5b32db97e7a31 LWP-Protocol-https-6.10.tar.gz" +sha512sums="d80dd4e6395fd254d3365f159a4a9eb8e184e3a8be650e721b5136f912235d9d06505c39eb7ad393ce8da027d44da3e06ad8635a5bee6a06a4af8176f5c2ca92 LWP-Protocol-https-6.13.tar.gz" diff --git a/user/perl-mime-types/APKBUILD b/user/perl-mime-types/APKBUILD index c85e6e741..4f5f94cd2 100644 --- a/user/perl-mime-types/APKBUILD +++ b/user/perl-mime-types/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=MIME-Types _author=MARKOV _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.24 +pkgver=2.26 pkgrel=0 pkgdesc="Definition of MIME types for Perl" url="https://metacpan.org/release/MIME-Types" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="5f1ba7b461eb18438b7e1bcc49291d0a506d937f0020f2a8b17594e4de626110f8d4b4a767d78b491ae788b6a6ea531d8ce2c2245cc614700ac8fa6d320d2bd7 MIME-Types-2.24.tar.gz" +sha512sums="cde3a8c6cbde16143732cf2ac4d648eff167917970357daf0162370cbba375b2aa546af472a73b2a4b26086919ddcc49bd9da999251946a40aee8abb60af2d75 MIME-Types-2.26.tar.gz" diff --git a/user/perl-moose/APKBUILD b/user/perl-moose/APKBUILD index aebdf7c02..3436200f2 100644 --- a/user/perl-moose/APKBUILD +++ b/user/perl-moose/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Moose _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.2203 +pkgver=2.2207 pkgrel=0 pkgdesc="A postmodern object system for Perl 5" url="https://metacpan.org/release/Moose" @@ -39,4 +39,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c91284cfaa29c6252de25cad5e54d5565d468bc11eab9f02c8469c523441467fc3ad5f68a32847b347652b04bfaaaaffb6d078279c5175d93855552e10cc805a Moose-2.2203.tar.gz" +sha512sums="bc0efe3b9c7fea8ef6bb2976d2ec677250f998b3d8513a7fca59a10291f8ff5f13dd5e1d49d036071d93b5caa19685b704ef3588aa9307cda40ec5ba15b6985a Moose-2.2207.tar.gz" diff --git a/user/perl-moosex-getopt/APKBUILD b/user/perl-moosex-getopt/APKBUILD index 32e3bb6d5..da5c1f753 100644 --- a/user/perl-moosex-getopt/APKBUILD +++ b/user/perl-moosex-getopt/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=MooseX-Getopt _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.75 +pkgver=0.76 pkgrel=0 pkgdesc="Perl Moose role for processing command line arguments" url="https://metacpan.org/release/MooseX-Getopt" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b02a8aad4c1c12fc98bf68d68cd72bcc32c82103d5f4ab79345e09354b32f697876571fb7a15987db5d0fc44af113a8d9e588cb2447b9db4d2ff6da242a8010a MooseX-Getopt-0.75.tar.gz" +sha512sums="96a0bae5d538b4e54a824e2e21e8dedb05e3a30d0de30e85bf3aedb9da45ab5a1859177a562ea838f786e25c50ab63236b27f75077388103af23ef954e1c89f8 MooseX-Getopt-0.76.tar.gz" diff --git a/user/perl-mozilla-ca/APKBUILD b/user/perl-mozilla-ca/APKBUILD index 55323051e..d41c37392 100644 --- a/user/perl-mozilla-ca/APKBUILD +++ b/user/perl-mozilla-ca/APKBUILD @@ -2,10 +2,10 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=perl-mozilla-ca _pkgreal=Mozilla-CA -_author=HAARG +_author=LWP _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=20221114 +pkgver=20231213 pkgrel=0 pkgdesc="Mozilla's CA certificate bundle for Perl" url="https://metacpan.org/release/Mozilla-CA" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c996576cf48c1c0691c5fdde6a029f713dfd4d3f2068754702c8015b90faaf119bd54d673d9ad7cfe0c2f33307b230a7b6282af1dccbcf8a01f1290d5bb9fe81 Mozilla-CA-20221114.tar.gz" +sha512sums="888c0847d4911348a775a25a0cb4609176d521a24e7f4dabe75bad9f286ca1cae9a79e52a4cacab529e306df699937059442cd77e0f560a8e0e731ca25c2e61c Mozilla-CA-20231213.tar.gz" diff --git a/user/perl-object-pad/APKBUILD b/user/perl-object-pad/APKBUILD index 65215a8c0..6bec77d7c 100644 --- a/user/perl-object-pad/APKBUILD +++ b/user/perl-object-pad/APKBUILD @@ -5,15 +5,15 @@ _pkgreal=Object-Pad _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.78 +pkgver=0.808 pkgrel=0 pkgdesc="Simple syntax for lexical field-based objects" url="https://metacpan.org/pod/Object::Pad" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="perl-test-fatal perl-test-refcount" -makedepends="perl-dev perl-module-build perl-xs-parse-keyword perl-xs-parse-sublike" +checkdepends="perl-test2-suite perl-test-fatal perl-test-refcount" +makedepends="perl-dev perl-module-build perl-xs-parse-keyword>=0.39 perl-xs-parse-sublike" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" builddir="$srcdir/$_pkgreal-$pkgver" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="59f1842e795ef501de677209274535d1edb5a84dee42a93f979e8e0a8d6ea3a1a35f5b7d22bc2e208da7a9721669fc9aa26f9683305fe9991b5ad84b11da446e Object-Pad-0.78.tar.gz" +sha512sums="5fbb53ca6c31d123755658987f10098e67691f5e158c4821cbd198d31857ffb8437850762e0930e83102087519ae153248842b872e6361e69712d966f841680c Object-Pad-0.808.tar.gz" diff --git a/user/perl-perl-tidy/APKBUILD b/user/perl-perl-tidy/APKBUILD index a0020f296..53f7f171c 100644 --- a/user/perl-perl-tidy/APKBUILD +++ b/user/perl-perl-tidy/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Perl-Tidy _author=SHANCOCK _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=20230309 +pkgver=20240202 pkgrel=0 pkgdesc="Indent and reformat Perl scripts" url="https://metacpan.org/release/Perl-Tidy" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="5b29b10fe758a59e13126b4b050c2f82c82e925cc99f832c47ba6393014d42b10d963630aa98e590dda5cccfaca4810c8244cbb48ddde975a30781061414b034 Perl-Tidy-20230309.tar.gz" +sha512sums="33d912152285f2ccb304bf7df4f2e055c5f8b3049b9556c7efe5bd2d80123316f9014e8e5f17c9698545394f466f381e306f431450a04e74d767150db43028f5 Perl-Tidy-20240202.tar.gz" diff --git a/user/perl-plack/APKBUILD b/user/perl-plack/APKBUILD index adfef7fc9..4e80e0b0e 100644 --- a/user/perl-plack/APKBUILD +++ b/user/perl-plack/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Plack _author=MIYAGAWA _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.0050 +pkgver=1.0051 pkgrel=0 pkgdesc="Perl PSGI toolkit" url="https://metacpan.org/release/Plack" @@ -37,4 +37,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="1b29c50d943d41f9161579af682f8c58c7eec9185c70aeb2f759020f2b0afca98a8e01513496be600bbc23534066932f2b67569c9da054c8bcc9e6b504a8e4b3 Plack-1.0050.tar.gz" +sha512sums="be4b03f4b2cc6766be4ad06b1405e4513d475676ce8be7b3fd8bcb48cbfeedb7aef67df14a353f49d6b97ecd769f87b0f0787898148c849949f6936486c7ad5b Plack-1.0051.tar.gz" diff --git a/user/perl-pod-parser/APKBUILD b/user/perl-pod-parser/APKBUILD index c84ed5240..b0a6be916 100644 --- a/user/perl-pod-parser/APKBUILD +++ b/user/perl-pod-parser/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Pod-Parser _author=MAREKR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.65 +pkgver=1.67 pkgrel=0 pkgdesc="Perl package for finding and handling POD documents" url="https://metacpan.org/release/Pod-Parser" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="0449ff9fcf8cbb5724d48d27da332a8c281c4412d0aa28464852f1557825070a729df2c620276f141effaeea742a840c8fc391261d8c8165a615cd539bbcce36 Pod-Parser-1.65.tar.gz" +sha512sums="62cfbb9da1f4ccb224fb3e3d3f952f6c1579728ad7dcd7f2ef0b0393dabe8caa06cd5e259a875b58066fe0a519b3db1d26a40ae5aa23d1eff06e20547cac1e33 Pod-Parser-1.67.tar.gz" diff --git a/user/perl-posix-strftime-compiler/APKBUILD b/user/perl-posix-strftime-compiler/APKBUILD index 789352aca..17dac2c8f 100644 --- a/user/perl-posix-strftime-compiler/APKBUILD +++ b/user/perl-posix-strftime-compiler/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=POSIX-strftime-Compiler _author=KAZEBURO _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.44 +pkgver=0.46 pkgrel=0 pkgdesc="Perl strftime compiler" url="https://metacpan.org/release/POSIX-strftime-Compiler" @@ -32,5 +32,5 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="34852966a46f55a65e4ee90af3aec6478456d3a7fc8f8b8e8fc4e704a8361f46abfad5fe0f356eb3432fb2e232e65004818b19f298293cc0172d576cfe34c3e1 POSIX-strftime-Compiler-0.44.tar.gz +sha512sums="cee80a7b2f6b79dbb706898b713a4bb05bc57ecb3ef6c1644bce3682cc35d584c528aced6cd71b926e2fe549c95644ad59ecf780ba064adbb3bc9c54c8d4c459 POSIX-strftime-Compiler-0.46.tar.gz 372ca8d3b8dfe35cbb6f67023341e59d6bca558d6a8bf8f02e79fb1f44c8d42a7c798b82e3e8732ebe7a46588912f6a533018bd4256419cd32a1257f11f5b467 change-timezone-name.patch" diff --git a/user/perl-re-engine-re2/APKBUILD b/user/perl-re-engine-re2/APKBUILD index 15c37ca1b..2544397ef 100644 --- a/user/perl-re-engine-re2/APKBUILD +++ b/user/perl-re-engine-re2/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=re-engine-RE2 _author=DGL _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.17 +pkgver=0.18 pkgrel=0 pkgdesc="RE2-based regex engine for Perl" url="https://metacpan.org/pod/re::engine::RE2" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="cb2a904c38603f1441a6ee6d39e7409221cc429d6ace1d1e3bb6342dee1ee6bb04dd92df3f644ff2832ca323884a8adedd106fadbe098a7731ab8f8635aa62da re-engine-RE2-0.17.tar.gz" +sha512sums="3ecfd9cfc68703e23ba96dfb4b9e61afd8eb2f098c3c089b170efe30015425d891cc353362e7c56418e6e36d25e6dcaad96f52f659310458d696351bb0c77f74 re-engine-RE2-0.18.tar.gz" diff --git a/user/perl-regexp-pattern-license/APKBUILD b/user/perl-regexp-pattern-license/APKBUILD index bacaf03b1..26e70d5fd 100644 --- a/user/perl-regexp-pattern-license/APKBUILD +++ b/user/perl-regexp-pattern-license/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Regexp-Pattern-License _author=JONASS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=3.10.0 +pkgver=3.11.1 pkgrel=0 pkgdesc="Perl module for regex-matching legal licenses" url="https://metacpan.org/pod/Regexp::Pattern::License" @@ -33,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="f09164890e5c8b084d0de2a42662829e6a18759400aad3a969791b7404810df1857d9dc7c7bb443e808cda65682ff3d00f02adfe8f8f8f077359b14a0f7cdd6e Regexp-Pattern-License-v3.10.0.tar.gz" +sha512sums="11c30b9673e4d009ecb871d70345e38ce692b1c53e8614d35f8ce4e7b7edfea65c8f18880929138fc1fab6ce1dee3633bb23c06ca456c5dd81928b093c57609d Regexp-Pattern-License-v3.11.1.tar.gz" diff --git a/user/perl-software-license/APKBUILD b/user/perl-software-license/APKBUILD index ab3e25bec..a7e4797fb 100644 --- a/user/perl-software-license/APKBUILD +++ b/user/perl-software-license/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Software-License _author=LEONT _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.104002 +pkgver=0.104006 pkgrel=0 pkgdesc="Perl module for generating prefilled license text" url="https://metacpan.org/pod/Software::License" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="80303349f1d1febfb61322d106587880e0191500229110eebf1b8fb6653dc212720a29c60d9575bd4bb077b83755592303dc4205df276193d8fa0252f21e01aa Software-License-0.104002.tar.gz" +sha512sums="48fbfc5419a978b645c822d529f94c54a49ba65502165cfcc4ee6a6b48ea59eff981e5f64b9a9109007c389897789a9b9651f980b8b2ebd07180310da2e720bb Software-License-0.104006.tar.gz" diff --git a/user/perl-string-license/APKBUILD b/user/perl-string-license/APKBUILD index c5308d8af..18b6aed3f 100644 --- a/user/perl-string-license/APKBUILD +++ b/user/perl-string-license/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=String-License _author=JONASS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.0.4 +pkgver=0.0.9 pkgrel=0 pkgdesc="Perl module for detecting license statements in a text string" url="https://metacpan.org/pod/String::License" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="edb29907dcab3a762f9b694dc4de82f3f6adabe4fa6cfa5c01e6b844f91e3dc6feb47fb85e845dcd05d1a0e5df32c9739ac4991d44243edc7aeaae4cf2a5314e String-License-v0.0.4.tar.gz" +sha512sums="ec6d448122b8b03cbeadddff9886885522abec68fe68f63036c98aa76993db5844509c2170eecbab59de604fa25e6d391b99cce96d53210fca39d299474ebf7c String-License-v0.0.9.tar.gz" diff --git a/user/perl-string-tagged-terminal/APKBUILD b/user/perl-string-tagged-terminal/APKBUILD index b16bbc736..524b3119a 100644 --- a/user/perl-string-tagged-terminal/APKBUILD +++ b/user/perl-string-tagged-terminal/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=String-Tagged-Terminal _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.06 +pkgver=0.07 pkgrel=0 pkgdesc="String buffers with value tags on extents" url="https://metacpan.org/pod/String::Tagged::Terminal" @@ -33,4 +33,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="d09146bec329fcd0f11e47dce8549a8a22d7ac13a5ad310c2060e8ecd8726687ad4db3a50b5d6cfac3cd580eac9a28d5b678bbe475c0058af44aac95de9c7d7d String-Tagged-Terminal-0.06.tar.gz" +sha512sums="d8120e6be0f5cb688312b196f0af5ca759b7023be0d40cf12a3dfc8bf3f45add452ea1c96d5a126e70706376b0bd8c7a1296b854a056258a1a4e27fcbe698e11 String-Tagged-Terminal-0.07.tar.gz" diff --git a/user/perl-string-tagged/APKBUILD b/user/perl-string-tagged/APKBUILD index f086b157e..04298501f 100644 --- a/user/perl-string-tagged/APKBUILD +++ b/user/perl-string-tagged/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=String-Tagged _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.20 +pkgver=0.22 pkgrel=0 pkgdesc="String buffers with value tags on extents" url="https://metacpan.org/pod/String::Tagged" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="785c07115c6c1ce2a3c4304efac99b5d58cc49f090aa9c41de86e25fdff7ab8e71ae6d9605aad598ba8f72d7bca3f4ec4d14926424d6479be02b99b4d07c69cb String-Tagged-0.20.tar.gz" +sha512sums="09aaeabb0f2c59b970356023fbedd8111cafec8650bcb8af568b5c5f37dc864120581f2364bdd8d278bb7cce6d8630f331416253efd848b0dda57ca92d6920e5 String-Tagged-0.22.tar.gz" diff --git a/user/perl-sub-exporter/APKBUILD b/user/perl-sub-exporter/APKBUILD index 8c73ff587..bd7ddb9f5 100644 --- a/user/perl-sub-exporter/APKBUILD +++ b/user/perl-sub-exporter/APKBUILD @@ -4,7 +4,7 @@ _pkgreal=Sub-Exporter _author=RJBS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.989 +pkgver=0.991 pkgrel=0 pkgdesc="A sophisticated exporter for custom-built routines" url="https://metacpan.org/release/Sub-Exporter" @@ -30,4 +30,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="7c491349bc9704604a268b45eed17db30c49f43f3c67f088d132d7f35c20eb1ddec46eca88b1e966fb48cf9580cb7007cc240f6d3ac9ba21cffbc7437b7dccbb Sub-Exporter-0.989.tar.gz" +sha512sums="7829bbca1eb332156ba33dd0cbde7f57c178ad56cc03e76c1b7d5327c94ce15bb5172894eeef011e12e472071a7d7a07f514a1121535d96ae05ed0ef6734b329 Sub-Exporter-0.991.tar.gz" diff --git a/user/perl-sub-handlesvia/APKBUILD b/user/perl-sub-handlesvia/APKBUILD index 1976d8889..ca1ce7733 100644 --- a/user/perl-sub-handlesvia/APKBUILD +++ b/user/perl-sub-handlesvia/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Sub-HandlesVia _author=TOBYINK _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.046 +pkgver=0.050000 pkgrel=0 pkgdesc="Alternative handles_via implementation for Moo" url="https://metacpan.org/pod/Sub::HandlesVia" @@ -34,4 +34,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8138a8f769a1e980b4cc63fa382aa04804515b08c30d49d1b38de8d222cef6a333e0c5fd02263be29105550e04364155e1ce63364f67bd421711cbe083c1b2f3 Sub-HandlesVia-0.046.tar.gz" +sha512sums="c91d356d0aa461d446157ebf4819350db13060dd0bcd383b06037a7e05fb36935d71348270aa9e72daf6031a79956a5887a14e284554d83e5e88665146c388e2 Sub-HandlesVia-0.050000.tar.gz" diff --git a/user/perl-sub-name/APKBUILD b/user/perl-sub-name/APKBUILD index d06c8dc6c..9a6b3cba7 100644 --- a/user/perl-sub-name/APKBUILD +++ b/user/perl-sub-name/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Sub-Name _author=ETHER _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.26 +pkgver=0.27 pkgrel=0 pkgdesc="Rename a Perl sub" url="https://metacpan.org/release/Sub-Name" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="df032823c340500a0cc5e5f4d88688bbed14344a67a1ded462572aebeb39827563c5f69afbc0af1c5aac483013e7083a8aba2e3e47b805007d006818dadd9b5a Sub-Name-0.26.tar.gz" +sha512sums="766c2b229a222e84c40069f2aba0611f7936a9018c375c66b9ed58c4b3ad074cf102906e23aaf514e6897a8aaeaee1658bc2887d73052b8f67ccdf3cab52f71f Sub-Name-0.27.tar.gz" diff --git a/user/perl-syntax-keyword-match/APKBUILD b/user/perl-syntax-keyword-match/APKBUILD index f876196c1..e6c4db213 100644 --- a/user/perl-syntax-keyword-match/APKBUILD +++ b/user/perl-syntax-keyword-match/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=Syntax-Keyword-Match _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.10 +pkgver=0.13 pkgrel=0 pkgdesc="Perl support for match/case keywords" url="https://metacpan.org/pod/Syntax::Keyword::Match" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="" +checkdepends="perl-test2-suite" makedepends="perl-dev perl-module-build perl-xs-parse-keyword" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="02d46f94d7c79ab5a34c6a0fed8185a9aed7d05bd21a34ab15876d7f532cb3ef0407dfaaaeef5b68438f00de583701dc18931de399c952e5d686da5a3c073895 Syntax-Keyword-Match-0.10.tar.gz" +sha512sums="472a0b25b8f19a09f0a7d51963bb76382a6273e505b4141148353f0375610e77d2d458fc7cf6e1cb02aa127f252f882559b186bc35b441af5fa1dad7e3aa4e25 Syntax-Keyword-Match-0.13.tar.gz" diff --git a/user/perl-syntax-keyword-try/APKBUILD b/user/perl-syntax-keyword-try/APKBUILD index 8385509ea..b85d3d7f4 100644 --- a/user/perl-syntax-keyword-try/APKBUILD +++ b/user/perl-syntax-keyword-try/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=Syntax-Keyword-Try _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.28 +pkgver=0.29 pkgrel=0 pkgdesc="An implementation of try/catch/finally for Perl" url="https://metacpan.org/pod/Syntax::Keyword::Try" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="" +checkdepends="perl-test2-suite" makedepends="perl-dev perl-module-build perl-xs-parse-keyword" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c297480200cc22d0b0e3adc542ef94f82e120f4ab25612f184880f934825297ccbb2c9a4c453393b8f4ea93621b0dbb84ff17db42ee2333709158b007cfe674f Syntax-Keyword-Try-0.28.tar.gz" +sha512sums="269ea66916c39852262bc60b1661e90adf55489f1369a745a3c3ba24dd4335203a46d8bf8ddd39dcdefc4ae3314ce06b1fa7956d0a4bd23bba6fb809adaa1814 Syntax-Keyword-Try-0.29.tar.gz" diff --git a/user/perl-term-table/APKBUILD b/user/perl-term-table/APKBUILD index 11e6bdbd3..594cf9697 100644 --- a/user/perl-term-table/APKBUILD +++ b/user/perl-term-table/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Term-Table _author=EXODIST _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.016 +pkgver=0.018 pkgrel=0 pkgdesc="Perl module for producing pretty tables for terminal applications" url="https://metacpan.org/pod/Term::Table" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="b35700fba336f57e479d818ef74fc746979b3acb081a7cde816b39c5fb65bedd5217257426ba22bdcaf8d73292cd98efd23295144a996f7bd117ada775cdfe5b Term-Table-0.016.tar.gz" +sha512sums="99670976b884482697d667cf5db3cc3ff60e511270eab7e0df0cd922cfcc38297d143f03579df153a62db201db8d9e81e5f8bdaa94015d0b9ee9a5c033470621 Term-Table-0.018.tar.gz" diff --git a/user/perl-test-differences/APKBUILD b/user/perl-test-differences/APKBUILD index 53b13bbf4..726f88e36 100644 --- a/user/perl-test-differences/APKBUILD +++ b/user/perl-test-differences/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Test-Differences _author=DCANTRELL _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.69 +pkgver=0.71 pkgrel=0 pkgdesc="Test strings and data structures and show differences if not ok" url="https://metacpan.org/pod/Test::Differences" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="506859b6d983f6b81366bdaa365b02091d7a1ef1b3a29397b19175e37cde93a3b8e1d8765438630ecfc6ca1755868aefa47dcde0f1f45951f4610362c5d904bd Test-Differences-0.69.tar.gz" +sha512sums="6e6c882b41dd25cbb91d28ec947e669f660df0d8e477a347237a39eba51c74c9e8bcabe8ffccaec7d5912c62cf6ae837e2d2f28551bd9fc110d9503acc86e72e Test-Differences-0.71.tar.gz" diff --git a/user/perl-test-manifest/APKBUILD b/user/perl-test-manifest/APKBUILD index 9ec78713a..03fb567cd 100644 --- a/user/perl-test-manifest/APKBUILD +++ b/user/perl-test-manifest/APKBUILD @@ -4,7 +4,7 @@ _pkgreal=Test-Manifest _author=BDFOY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.023 +pkgver=2.024 pkgrel=0 pkgdesc="Interact with a t/test_manifest file" url="https://metacpan.org/release/Test-Manifest" @@ -30,4 +30,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="7a3b25e5cf468f72ed43e9cec7c79b6f58bf797851019a3c381abf3cca7c2ba3ca9d864339c90eb42bd0c451110f92b6f5af1cf94e033815d0164476053bbf6a Test-Manifest-2.023.tar.gz" +sha512sums="e68b6e262296689b882e1c920b9592cd83f285bba11bbae93c5519c2f19504ecd58de8d6593c39a0b99f4c93fbde3a3236735bb6fa526918ffcf49cc8ccfad5e Test-Manifest-2.024.tar.gz" diff --git a/user/perl-test-output/APKBUILD b/user/perl-test-output/APKBUILD index 20b3902c1..e9aad5f19 100644 --- a/user/perl-test-output/APKBUILD +++ b/user/perl-test-output/APKBUILD @@ -4,7 +4,7 @@ _pkgreal=Test-Output _author=BDFOY _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=1.033 +pkgver=1.034 pkgrel=0 pkgdesc="Utilities to test STDOUT and STDERR messages" url="https://metacpan.org/release/Test-Output" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="cc6e94baa5163e2ca0c23d63a6b505da207ed7f436bf9a1a77234ad898c34ae4d81ac42f17d1b8a73a223fd19ce1d1f66f3eef0fc852bb712f4f925a77f29820 Test-Output-1.033.tar.gz" +sha512sums="f7e6a121dbcaa6644b5128ba27c70894775bcb77e5c4abb3a2546d935cb1a99b3190230b2be76161377d0151665ec97303c48746b224d1b2301803e6082b0283 Test-Output-1.034.tar.gz" diff --git a/user/perl-test2-suite/APKBUILD b/user/perl-test2-suite/APKBUILD index 360cc7ec2..5245a3504 100644 --- a/user/perl-test2-suite/APKBUILD +++ b/user/perl-test2-suite/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Test2-Suite _author=EXODIST _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.000148 +pkgver=0.000159 pkgrel=0 pkgdesc="Collection of Perl modules in the Test2 namespace" url="https://metacpan.org/pod/Test2::Suite" @@ -35,4 +35,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="533206749c2b3ded150c82ca051ac50f6c4fcdccb3c1cecd3dacfc3639e5d2ea3f826e1b2668dddd55ce00e8dcbcb0b00932387934400b38a9302af0acca421e Test2-Suite-0.000148.tar.gz" +sha512sums="ab132e87f0db5dde0ebd95b260236d95120445c89db497e92519335e989d8571481f2497898cd5fae25cb2065db1aa8902a9f2d37cf2163475caca1298629a3f Test2-Suite-0.000159.tar.gz" diff --git a/user/perl-type-tiny/APKBUILD b/user/perl-type-tiny/APKBUILD index 9b51ffa15..a70acda21 100644 --- a/user/perl-type-tiny/APKBUILD +++ b/user/perl-type-tiny/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=Type-Tiny _author=TOBYINK _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.002001 +pkgver=2.004000 pkgrel=0 pkgdesc="Tiny Moo(se) compatible type constraint" url="https://metacpan.org/release/Type-Tiny" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="a0c507e0dfbfdb0416a123fbe65a39603028e5d71dfdd2d66290309e6e4818c4d996dcfddccb898a9cc37dbbe19dafea342b246b28e2539475e30cef276e1a49 Type-Tiny-2.002001.tar.gz" +sha512sums="a28a0fdfe48c8ce7f7313bfa6645094337dfb12d76401d9947a649763379a912f480ff418f0023d1e0c5851ffa347823669192a9eb8081341db7525d84c82220 Type-Tiny-2.004000.tar.gz" diff --git a/user/perl-x11-xcb/APKBUILD b/user/perl-x11-xcb/APKBUILD index 9dc405ab2..37c03c309 100644 --- a/user/perl-x11-xcb/APKBUILD +++ b/user/perl-x11-xcb/APKBUILD @@ -2,10 +2,10 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=perl-x11-xcb _pkgreal=X11-XCB -_author=MSTPLBG +_author=ZHMYLOVE _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.19 +pkgver=0.22 pkgrel=0 pkgdesc="Perl bindings for libxcb" url="https://metacpan.org/pod/X11::XCB" @@ -36,4 +36,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="abd6369b00b9ebd4a333cd52b06b2f137a8b8c13a715a0ab485cf0f80acce601b8b22dfff394514ad8b21d253b5f72920aeee6b9bcf4b0d446b772d4ef60ce71 X11-XCB-0.19.tar.gz" +sha512sums="ac38d98067e49f15ff7e8f3d902208af059ab2b2113f585044488a6eb8dac020a5010b876b41069397f1fdf30717df02752f648390d1923d38a0db4b703a4b35 X11-XCB-0.22.tar.gz" diff --git a/user/perl-xml-parser/APKBUILD b/user/perl-xml-parser/APKBUILD index 257b369a6..eb3ff7056 100644 --- a/user/perl-xml-parser/APKBUILD +++ b/user/perl-xml-parser/APKBUILD @@ -4,7 +4,7 @@ _pkgreal=XML-Parser _author=TODDR _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=2.46 +pkgver=2.47 pkgrel=0 pkgdesc="Perl module for parsing XML documents" url="https://metacpan.org/release/XML-Parser" @@ -30,4 +30,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="c4609495cc5ca34952f61876a690ef76d42eee6689d1bedb8036c9eab918525ec5213f1639c7178c029ee0f8765a2ca5eb0197f6e39b8be6d5dbc3f3c1d0b389 XML-Parser-2.46.tar.gz" +sha512sums="3f9de53341bc85b87c88ad31e04b13f1f95516eec0d7e5fd1c1a3b3e66a91ca3d4de7c649978599219a4d4372f6218764ab5e1805b7155b5ca200006e1b0908f XML-Parser-2.47.tar.gz" diff --git a/user/perl-xs-parse-keyword/APKBUILD b/user/perl-xs-parse-keyword/APKBUILD index b070d17d3..44bd9161a 100644 --- a/user/perl-xs-parse-keyword/APKBUILD +++ b/user/perl-xs-parse-keyword/APKBUILD @@ -5,13 +5,14 @@ _pkgreal=XS-Parse-Keyword _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.33 +pkgver=0.39 pkgrel=0 pkgdesc="XS functions to aid in parsing keywords" url="https://metacpan.org/pod/XS::Parse::Keyword" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" +checkdepends="perl-test2-suite" makedepends="perl-dev perl-extutils-cchecker perl-module-build" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -31,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="30579b36c554de95bbf3b0810f7781e493838b3eda19773598ebf98472cddb07a9ca37077785a16316855d2c0ce993f6d061047739e7c447356e082aeccff2bd XS-Parse-Keyword-0.33.tar.gz" +sha512sums="41ac31707b473d729a7e63d4607caa77fca9da00580b931576361416d78002f56acd04a0fee0c4dd09ffc1796a914f6ae934bdbce8fcc4c9222064c6e419b7ce XS-Parse-Keyword-0.39.tar.gz" diff --git a/user/perl-xs-parse-sublike/APKBUILD b/user/perl-xs-parse-sublike/APKBUILD index 53883465c..a2c66f8f5 100644 --- a/user/perl-xs-parse-sublike/APKBUILD +++ b/user/perl-xs-parse-sublike/APKBUILD @@ -5,14 +5,14 @@ _pkgreal=XS-Parse-Sublike _author=PEVANS _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.16 +pkgver=0.21 pkgrel=0 pkgdesc="XS functions to aid in parsing sub-like syntax" url="https://metacpan.org/pod/XS::Parse::Sublike" arch="all" license="GPL-1.0+ OR Artistic-1.0-Perl" depends="perl" -checkdepends="perl-test-fatal" +checkdepends="perl-test-fatal perl-test2-suite" makedepends="perl-dev perl-extutils-cchecker perl-module-build" subpackages="$pkgname-doc" source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="66615f291b498e132fc3513a18ae7723ad19e7daa5ff1e455d467235d7078d9d546281af38f5aa55a757b1cc8835fbf1e52944f0e580e7f135a574d625ef6613 XS-Parse-Sublike-0.16.tar.gz" +sha512sums="78c94fbfafbd763ea6ee03638710734889d75233abd48537b53bb3c5ceaeda261bfce4a43e3ad91854aa942c382b320fb2fef186ec3a5bb9c66767681033b410 XS-Parse-Sublike-0.21.tar.gz" diff --git a/user/perl-yaml-libyaml/APKBUILD b/user/perl-yaml-libyaml/APKBUILD index 14474e47d..46c66acf1 100644 --- a/user/perl-yaml-libyaml/APKBUILD +++ b/user/perl-yaml-libyaml/APKBUILD @@ -2,10 +2,10 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=perl-yaml-libyaml _pkgreal=YAML-LibYAML -_author=INGY +_author=TINITA _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.86 +pkgver=0.89 pkgrel=0 pkgdesc="Perl YAML Serialization using XS and libyaml" url="https://metacpan.org/pod/YAML::LibYAML" @@ -31,4 +31,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="4f95c5bd9627d129391a237f26096ed30ca32b50340fa2bf3d56b66c4fb87150f8399e6f1328103379269c5577f61cbe7247bf2da06021e3f8efb402106ef257 YAML-LibYAML-0.86.tar.gz" +sha512sums="24697f9625534facf23c22a96af26468c48cc91225af9879baa3039db8158fe0ff740acea527d33651d90e1c8ce24e804b02744812b72aae7b28aa6d88ba68c7 YAML-LibYAML-0.89.tar.gz" diff --git a/user/perl-yaml-pp/APKBUILD b/user/perl-yaml-pp/APKBUILD index 95ff06419..dddd817cb 100644 --- a/user/perl-yaml-pp/APKBUILD +++ b/user/perl-yaml-pp/APKBUILD @@ -5,7 +5,7 @@ _pkgreal=YAML-PP _author=TINITA _au=${_author%%"${_author#??}"} _a=${_author%%"${_author#?}"} -pkgver=0.035 +pkgver=0.38.0 pkgrel=0 pkgdesc="Pure-Perl YAML 1.2 library" url="https://metacpan.org/pod/YAML::PP" @@ -15,8 +15,8 @@ depends="perl" checkdepends="perl-test-deep perl-test-warn" makedepends="" subpackages="$pkgname-doc" -source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-$pkgver.tar.gz" -builddir="$srcdir/$_pkgreal-$pkgver" +source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/$_pkgreal-v$pkgver.tar.gz" +builddir="$srcdir/$_pkgreal-v$pkgver" build() { PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor @@ -32,4 +32,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="8256d86690a683ee2fe2830893bf61837ee16c75ae345ec4115e40792856c5fc98052d4fec822eae6bf43fa27cde0bd3dee05b7583ba0aab6aed5dddf72baa1a YAML-PP-0.035.tar.gz" +sha512sums="2c503e675068d3c2903c3a862651417a1320647469cae74a029bc80e5a67dd7694264711aa00a2ff074b2fd0dd9ea631d5010980fb9166709e82dd9cc366dfa9 YAML-PP-v0.38.0.tar.gz" diff --git a/user/phonon-vlc/APKBUILD b/user/phonon-vlc/APKBUILD index de6f49d36..1eb6fc9b4 100644 --- a/user/phonon-vlc/APKBUILD +++ b/user/phonon-vlc/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=phonon-vlc pkgver=0.11.1 -pkgrel=0 +pkgrel=1 pkgdesc="Phonon backend utilising VLC for media playback" url="https://www.kde.org/" arch="all" diff --git a/user/phonon/APKBUILD b/user/phonon/APKBUILD index e92cc464e..6a371bc68 100644 --- a/user/phonon/APKBUILD +++ b/user/phonon/APKBUILD @@ -38,7 +38,7 @@ package() { designer() { pkgdesc="$pkgdesc (Qt Designer plugin)" - install_if="$pkgname=$pkgver-$pkgrel qt5-qttools" + install_if="$pkgname=$pkgver-r$pkgrel qt5-qttools" mkdir -p "$subpkgdir"/usr/lib/qt5/plugins/ mv "$pkgdir"/usr/lib/qt5/plugins/designer \ "$subpkgdir"/usr/lib/qt5/plugins/ diff --git a/user/pidgin/APKBUILD b/user/pidgin/APKBUILD index 3a5326d1b..9cb65dc8e 100644 --- a/user/pidgin/APKBUILD +++ b/user/pidgin/APKBUILD @@ -1,18 +1,21 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=pidgin pkgver=2.14.8 -pkgrel=0 +pkgrel=1 pkgdesc="Multi-protocol instant messaging client" url="https://pidgin.im/" arch="all" license="GPL-2.0-only" depends="gst-plugins-base" +checkdepends="check-dev" makedepends="gtk+2.0-dev perl-dev libsm-dev startup-notification-dev libxml2-dev libidn-dev gnutls-dev dbus-dev dbus-glib-dev gstreamer-dev cyrus-sasl-dev ncurses-dev nss-dev tcl-dev tk-dev intltool gtkspell-dev gst-plugins-base-dev farstream-dev libgnt-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang finch libpurple" -source="https://downloads.sourceforge.net/pidgin/$pkgname-$pkgver.tar.bz2" +source="https://downloads.sourceforge.net/pidgin/$pkgname-$pkgver.tar.bz2 + pidgin-2.14.8-libpurple_test_fix.patch + " build() { LIBS="-lX11 -ltinfo" ./configure \ @@ -63,4 +66,5 @@ libpurple() { "$subpkgdir"/usr/share/ } -sha512sums="23975501b07d14829edab7b92628703962d7a8f90849b303e2a765ec6e47d1fcbdeff62539811e26682e300a2f94520193369844de3b1c0e87f99721ca0255e6 pidgin-2.14.8.tar.bz2" +sha512sums="23975501b07d14829edab7b92628703962d7a8f90849b303e2a765ec6e47d1fcbdeff62539811e26682e300a2f94520193369844de3b1c0e87f99721ca0255e6 pidgin-2.14.8.tar.bz2 +9b328516173c8c81bc99c3045fc91c1cd99a4b74a26b37b93ba9ec2fbfb7560bcaf0c5b8890a8ee02bbb19052a774f608d9a4061eb9966f70e5b19cd1dc144eb pidgin-2.14.8-libpurple_test_fix.patch" diff --git a/user/pidgin/pidgin-2.14.8-libpurple_test_fix.patch b/user/pidgin/pidgin-2.14.8-libpurple_test_fix.patch new file mode 100644 index 000000000..30caaa92e --- /dev/null +++ b/user/pidgin/pidgin-2.14.8-libpurple_test_fix.patch @@ -0,0 +1,52 @@ +# HG changeset patch +# Node ID e8f8e1558e11 +# Parent 930e4fb71321 +diff --git a/libpurple/tests/test_util.c b/libpurple/tests/test_util.c +--- a/libpurple/tests/test_util.c ++++ b/libpurple/tests/test_util.c +@@ -172,7 +172,7 @@ + fail_unless(1282941722 == purple_str_to_time("2010-08-27.204202", TRUE, NULL, NULL, NULL)); + fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21.3234", TRUE, NULL, NULL, NULL)); + fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21Z", TRUE, NULL, NULL, NULL)); +- fail_unless(1631512800 == purple_str_to_time("09-13-2021", TRUE, NULL, NULL, NULL)); ++ fail_unless(1631491200 == purple_str_to_time("09-13-2021", TRUE, NULL, NULL, NULL)); + + /* For testing local time we use Asia/Kathmandu because it's +05:45 and + * doesn't have DST which means the test should always pass regardless of +@@ -195,9 +195,14 @@ + * localtime. + */ + timestamp = purple_str_to_time("09/13/202115:34:34", TRUE, NULL, NULL, &rest); +- fail_unless(1631470500 == timestamp); ++ fail_unless(1631491200 == timestamp); + assert_string_equal("15:34:34", rest); + ++ timestamp = purple_str_to_time("2010-08-27.134202-0700PDT", FALSE, &tm, &tz_off, &rest); ++ fail_unless(1282941722 == timestamp); ++ fail_unless((-7 * 60 * 60) == tz_off); ++ assert_string_equal("PDT", rest); ++ + /* finally revert the TZ environment variable */ + if(oldtz != NULL) { + g_setenv("TZ", oldtz, TRUE); +diff --git a/libpurple/util.c b/libpurple/util.c +--- a/libpurple/util.c ++++ b/libpurple/util.c +@@ -887,6 +887,17 @@ + t.tm_isdst = -1; /* -1 means dst info is not available */ + } + } ++ } else { ++ /* If we have a time, figure out if we need to adjust our tz offset. */ ++ if(!mktime_with_utc) { ++ if(utc) { ++ mktime_with_utc = TRUE; ++ tzoff = 0; ++ } else { ++ /* Local Time */ ++ t.tm_isdst = -1; /* -1 means dst info is not available */ ++ } ++ } + } + + g_free(hours); diff --git a/user/plasma-desktop/APKBUILD b/user/plasma-desktop/APKBUILD index f7e32488f..4623429b6 100644 --- a/user/plasma-desktop/APKBUILD +++ b/user/plasma-desktop/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox-kde@adelielinux.org> pkgname=plasma-desktop pkgver=5.24.5 -pkgrel=0 +pkgrel=1 pkgdesc="Modern, functional, integrated libre desktop environment" url="https://www.kde.org/plasma-desktop" arch="all" @@ -28,7 +28,9 @@ makedepends="cmake qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtx11extras-dev kirigami2-dev libksysguard-dev qt5-qtquickcontrols2-dev kuserfeedback-dev qqc2-desktop-style-dev" subpackages="$pkgname-doc $pkgname-lang" -source="https://download.kde.org/stable/plasma/$pkgver/plasma-desktop-$pkgver.tar.xz" +source="https://download.kde.org/stable/plasma/$pkgver/plasma-desktop-$pkgver.tar.xz + remove-discover-from-taskmanager.patch + " build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -54,4 +56,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3bb770023b47dcc3c51dbdacfe9cb93adc2f514d8d19f54fed10023d9440bed956ec3beb18d9979cb408ab2e6e960ca383d215fd072ba2df34e4e0b5f6c55270 plasma-desktop-5.24.5.tar.xz" +sha512sums="3bb770023b47dcc3c51dbdacfe9cb93adc2f514d8d19f54fed10023d9440bed956ec3beb18d9979cb408ab2e6e960ca383d215fd072ba2df34e4e0b5f6c55270 plasma-desktop-5.24.5.tar.xz +962139886d2d8a2828ff17576cac42ae3cb72ca709f1d387962da0b0adf5c8cb017f362dadc269867968da68680db5647065bdb9221dd69ff96194af0ce62238 remove-discover-from-taskmanager.patch" diff --git a/user/plasma-desktop/remove-discover-from-taskmanager.patch b/user/plasma-desktop/remove-discover-from-taskmanager.patch new file mode 100644 index 000000000..76e37ac85 --- /dev/null +++ b/user/plasma-desktop/remove-discover-from-taskmanager.patch @@ -0,0 +1,16 @@ +We don't ship Discover right now, and this gives users a broken app icon +by default. + +See-also: https://git.adelielinux.org/adelie/packages/-/issues/1115 + +--- plasma-desktop-5.24.5/applets/taskmanager/package/contents/config/main.xml.old 2022-05-03 05:31:25.000000000 -0500 ++++ plasma-desktop-5.24.5/applets/taskmanager/package/contents/config/main.xml 2023-11-25 06:21:00.002184051 -0600 +@@ -81,7 +81,7 @@ + </entry> + <entry name="launchers" type="StringList"> + <label>The list of launcher tasks on the widget. Usually .desktop file or executable URLs. Special URLs such as preferred://browser that expand to default applications are supported.</label> +- <default>applications:systemsettings.desktop,applications:org.kde.discover.desktop,preferred://filemanager,preferred://browser</default> ++ <default>applications:systemsettings.desktop,preferred://filemanager,preferred://browser</default> + </entry> + <entry name="middleClickAction" type="Enum"> + <label>What to do on middle-mouse click on a task button.</label> diff --git a/user/plasma-meta/APKBUILD b/user/plasma-meta/APKBUILD index 04bf519f2..8526dde71 100644 --- a/user/plasma-meta/APKBUILD +++ b/user/plasma-meta/APKBUILD @@ -2,14 +2,15 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=plasma-meta pkgver=5.24.5 -pkgrel=0 +pkgrel=1 pkgdesc="Metapackage for optional KDE Plasma dependencies" url="https://www.adelielinux.org/" arch="noarch" options="!check" # No tests, it's a metapackage. license="Public-Domain" depends="bluedevil breeze-grub drkonqi plasma-browser-integration plasma-pa - plasma-systemmonitor plasma-thunderbolt plasma-vault systemsettings" + plasma-systemmonitor plasma-thunderbolt plasma-vault systemsettings + kscreen" makedepends="" subpackages="" source="" diff --git a/user/polkit/0001-make-netgroup-support-optional.patch b/user/polkit/0001-make-netgroup-support-optional.patch deleted file mode 100644 index 6387974be..000000000 --- a/user/polkit/0001-make-netgroup-support-optional.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 778bb45e0e0cbabe2b04adf67a500af1dab09768 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> -Date: Wed, 11 Jul 2018 04:54:26 -0500 -Subject: [PATCH] make netgroup support optional - -On at least Linux/musl and Linux/uclibc, netgroup support is not -available. PolKit fails to compile on these systems for that reason. - -This change makes netgroup support conditional on the presence of the -setnetgrent(3) function which is required for the support to work. If -that function is not available on the system, an error will be returned -to the administrator if unix-netgroup: is specified in configuration. - -Fixes bug 50145. - -Closes polkit/polkit#14. - -Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com> ---- - configure.ac | 2 +- - src/polkit/polkitidentity.c | 16 ++++++++++++++++ - src/polkit/polkitunixnetgroup.c | 3 +++ - .../polkitbackendinteractiveauthority.c | 14 ++++++++------ - src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++ - test/polkit/polkitidentitytest.c | 9 ++++++++- - test/polkit/polkitunixnetgrouptest.c | 3 +++ - .../test-polkitbackendjsauthority.c | 2 ++ - 8 files changed, 43 insertions(+), 8 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5cedb4e..87aa0ad 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"], - [AC_MSG_ERROR([Can't find expat library. Please install expat.])]) - AC_SUBST(EXPAT_LIBS) - --AC_CHECK_FUNCS(clearenv fdatasync) -+AC_CHECK_FUNCS(clearenv fdatasync setnetgrent) - - if test "x$GCC" = "xyes"; then - LDFLAGS="-Wl,--as-needed $LDFLAGS" -diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c -index 3aa1f7f..10e9c17 100644 ---- a/src/polkit/polkitidentity.c -+++ b/src/polkit/polkitidentity.c -@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str, - } - else if (g_str_has_prefix (str, "unix-netgroup:")) - { -+#ifndef HAVE_SETNETGRENT -+ g_set_error (error, -+ POLKIT_ERROR, -+ POLKIT_ERROR_FAILED, -+ "Netgroups are not available on this machine ('%s')", -+ str); -+#else - identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1); -+#endif - } - - if (identity == NULL && (error != NULL && *error == NULL)) -@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVariant *variant, - GVariant *v; - const char *name; - -+#ifndef HAVE_SETNETGRENT -+ g_set_error (error, -+ POLKIT_ERROR, -+ POLKIT_ERROR_FAILED, -+ "Netgroups are not available on this machine"); -+ goto out; -+#else - v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error); - if (v == NULL) - { -@@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVariant *variant, - name = g_variant_get_string (v, NULL); - ret = polkit_unix_netgroup_new (name); - g_variant_unref (v); -+#endif - } - else - { -diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c -index 8a2b369..83f8d4a 100644 ---- a/src/polkit/polkitunixnetgroup.c -+++ b/src/polkit/polkitunixnetgroup.c -@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group, - PolkitIdentity * - polkit_unix_netgroup_new (const gchar *name) - { -+#ifndef HAVE_SETNETGRENT -+ g_assert_not_reached(); -+#endif - g_return_val_if_fail (name != NULL, NULL); - return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP, - "name", name, -diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c -index 056d9a8..36c2f3d 100644 ---- a/src/polkitbackend/polkitbackendinteractiveauthority.c -+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c -@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group, - GList *ret; - - ret = NULL; -+#ifdef HAVE_SETNETGRENT - name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); - --#ifdef HAVE_SETNETGRENT_RETURN -+# ifdef HAVE_SETNETGRENT_RETURN - if (setnetgrent (name) == 0) - { - g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); - goto out; - } --#else -+# else - setnetgrent (name); --#endif -+# endif /* HAVE_SETNETGRENT_RETURN */ - - for (;;) - { --#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) -+# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) - const char *hostname, *username, *domainname; --#else -+# else - char *hostname, *username, *domainname; --#endif -+# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */ - PolkitIdentity *user; - GError *error = NULL; - -@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group, - - out: - endnetgrent (); -+#endif /* HAVE_SETNETGRENT */ - return ret; - } - -diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp -index 9b752d1..09b2878 100644 ---- a/src/polkitbackend/polkitbackendjsauthority.cpp -+++ b/src/polkitbackend/polkitbackendjsauthority.cpp -@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, - - JS::CallArgs args = JS::CallArgsFromVp (argc, vp); - -+#ifdef HAVE_SETNETGRENT - JS::RootedString usrstr (authority->priv->cx); - usrstr = args[0].toString(); - user = JS_EncodeStringToUTF8 (cx, usrstr); -@@ -1519,6 +1520,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, - - JS_free (cx, netgroup); - JS_free (cx, user); -+#endif - - ret = true; - -diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c -index e91967b..e829aaa 100644 ---- a/test/polkit/polkitidentitytest.c -+++ b/test/polkit/polkitidentitytest.c -@@ -19,6 +19,7 @@ - * Author: Nikki VonHollen <vonhollen@google.com> - */ - -+#include "config.h" - #include "glib.h" - #include <polkit/polkit.h> - #include <polkit/polkitprivate.h> -@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_test_data [] = { - {"unix-group:root", "unix-group:jane", FALSE}, - {"unix-group:jane", "unix-group:jane", TRUE}, - -+#ifdef HAVE_SETNETGRENT - {"unix-netgroup:foo", "unix-netgroup:foo", TRUE}, - {"unix-netgroup:foo", "unix-netgroup:bar", FALSE}, -+#endif - - {"unix-user:root", "unix-group:root", FALSE}, -+#ifdef HAVE_SETNETGRENT - {"unix-user:jane", "unix-netgroup:foo", FALSE}, -+#endif - - {NULL}, - }; -@@ -181,11 +186,13 @@ main (int argc, char *argv[]) - g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string); - g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string); - -+#ifdef HAVE_SETNETGRENT - g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string); -+ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); -+#endif - - g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant); - g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant); -- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant); - - add_comparison_tests (); - -diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c -index 3701ba1..e3352eb 100644 ---- a/test/polkit/polkitunixnetgrouptest.c -+++ b/test/polkit/polkitunixnetgrouptest.c -@@ -19,6 +19,7 @@ - * Author: Nikki VonHollen <vonhollen@google.com> - */ - -+#include "config.h" - #include "glib.h" - #include <polkit/polkit.h> - #include <string.h> -@@ -69,7 +70,9 @@ int - main (int argc, char *argv[]) - { - g_test_init (&argc, &argv, NULL); -+#ifdef HAVE_SETNETGRENT - g_test_add_func ("/PolkitUnixNetgroup/new", test_new); - g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name); -+#endif - return g_test_run (); - } -diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c -index 71aad23..fdd28f3 100644 ---- a/test/polkitbackend/test-polkitbackendjsauthority.c -+++ b/test/polkitbackend/test-polkitbackendjsauthority.c -@@ -137,12 +137,14 @@ test_get_admin_identities (void) - "unix-group:users" - } - }, -+#ifdef HAVE_SETNETGRENT - { - "net.company.action3", - { - "unix-netgroup:foo" - } - }, -+#endif - }; - guint n; - --- -2.21.0 - diff --git a/user/polkit/APKBUILD b/user/polkit/APKBUILD index 8616b82d4..683571a77 100644 --- a/user/polkit/APKBUILD +++ b/user/polkit/APKBUILD @@ -1,68 +1,47 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=polkit -pkgver=0.116 -pkgrel=1 +pkgver=123 +pkgrel=0 pkgdesc="Toolkit for controlling system-wide privileges" url="https://www.freedesktop.org/wiki/Software/polkit/" arch="all" options="!check suid" # Requires running ConsoleKit and PolKit for JS backend license="LGPL-2.0+" depends="" -makedepends="glib-dev gobject-introspection-dev gtk-doc intltool linux-pam-dev - mozjs-dev autoconf automake libtool elogind-dev" +makedepends="glib-dev gobject-introspection-dev gtk-doc linux-pam-dev meson + duktape-dev elogind-dev" pkgusers="polkitd" pkggroups="polkitd" install="$pkgname.pre-install $pkgname.pre-upgrade" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" -source="https://www.freedesktop.org/software/polkit/releases/polkit-$pkgver.tar.gz - 0001-make-netgroup-support-optional.patch +source="https://gitlab.freedesktop.org/polkit/polkit/-/archive/$pkgver/polkit-$pkgver.tar.bz2 fix-consolekit-db-stat.patch fix-test-fgetpwent.patch - polkit-0.115-elogind.patch " # secfixes: +# 0.123-r0: +# - CVE-2021-4034 # 0.115-r2: # - CVE-2018-19788 -prepare() { - default_prepare - autoreconf -vif -} - build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --libexecdir=/usr/lib/polkit-1 \ - --localstatedir=/var \ - --disable-static \ - --enable-nls \ - --enable-introspection \ - --enable-man-pages \ - --with-pam-include=base-auth \ - --disable-gtk-doc-html \ - --disable-gtk-doc-pdf \ - --enable-libelogind=yes - - make + meson setup . build \ + -Dsession_tracking=libelogind \ + -Dman=true \ + -Dpam_include='base-auth' + meson compile -C build } check() { - make check + meson test -C build } package() { - make DESTDIR="$pkgdir" install + meson install -C build --destdir="$pkgdir" } -sha512sums="b66b01cc2bb4349de70147f41f161f0f6f41e7230b581dfb054058b48969ec57041ab05b51787c749ccfc36aa5f317952d7e7ba337b4f6f6c0a923ed5866c2d5 polkit-0.116.tar.gz -f13a350a040a80b705d28e2ce3fac183409f593dc360879ce1bc9ec85faa7796cf0f4e054098b737fb816369de6c9d598449f6908316484aac99a44a68102ae6 0001-make-netgroup-support-optional.patch -95493ef842b46ce9e724933a5d86083589075fb452435057b8f629643cac7c7eff67a24fd188087987e98057f0130757fad546d0c090767da3d71ebaf8485a24 fix-consolekit-db-stat.patch -966825aded565432f4fda9e54113a773b514ebf7ee7faa83bcb8b97d218ae84a8707d6747bbc3cb8a828638d692fdef34c05038f150ad38e02a29f2c782aba5b fix-test-fgetpwent.patch -06432fa56788699762c6978484640554f91728a1cb40679eb47b8514b3c7aa23aac5b9c26586eb4d7043a0af1b319bbe7f869d24844d9151317299b74a8e8f7f polkit-0.115-elogind.patch" +sha512sums="4306363d3ed7311243de462832199bd10ddda35e36449104daff0895725d8189b07a4c88340f28607846fdf761c23470da2d43288199c46aa816426384124bb6 polkit-123.tar.bz2 +bfefe2398f97138391ed34630e2994670dddaa0b13585e2e7cb101e7d11e3054dd491244ec84116b908d0f126a69032c467d83a0c52b0bb980d9b10290600745 fix-consolekit-db-stat.patch +966825aded565432f4fda9e54113a773b514ebf7ee7faa83bcb8b97d218ae84a8707d6747bbc3cb8a828638d692fdef34c05038f150ad38e02a29f2c782aba5b fix-test-fgetpwent.patch" diff --git a/user/polkit/fix-consolekit-db-stat.patch b/user/polkit/fix-consolekit-db-stat.patch index 3deceb639..d06ce7ae7 100644 --- a/user/polkit/fix-consolekit-db-stat.patch +++ b/user/polkit/fix-consolekit-db-stat.patch @@ -1,6 +1,6 @@ --- polkit-0.105.orig/src/polkitbackend/polkitbackendsessionmonitor.c 2012-04-24 19:05:34.000000000 +0300 +++ polkit-0.105/src/polkitbackend/polkitbackendsessionmonitor.c 2015-08-17 14:50:51.428580856 +0300 -@@ -47,7 +47,7 @@ struct _PolkitBackendSessionMonitor +@@ -48,7 +48,7 @@ struct _PolkitBackendSessionMonitor GKeyFile *database; GFileMonitor *database_monitor; @@ -9,7 +9,7 @@ }; struct _PolkitBackendSessionMonitorClass -@@ -95,7 +95,7 @@ reload_database (PolkitBackendSessionMon +@@ -96,7 +96,7 @@ reload_database (PolkitBackendSessionMon goto out; } @@ -18,7 +18,7 @@ monitor->database = g_key_file_new (); if (!g_key_file_load_from_file (monitor->database, -@@ -131,7 +131,8 @@ ensure_database (PolkitBackendSessionMon +@@ -132,7 +132,8 @@ ensure_database (PolkitBackendSessionMon strerror (errno)); goto out; } diff --git a/user/polkit/polkit-0.115-elogind.patch b/user/polkit/polkit-0.115-elogind.patch deleted file mode 100644 index 93d672015..000000000 --- a/user/polkit/polkit-0.115-elogind.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 08bb656496cd3d6213bbe9473f63f2d4a110da6e Mon Sep 17 00:00:00 2001 -From: Rasmus Thomsen <cogitri@exherbo.org> -Date: Wed, 11 Apr 2018 13:14:14 +0200 -Subject: [PATCH] configure: fix elogind support - -HAVE_LIBSYSTEMD is used to determine which source files to use. -We have to check if either have_libsystemd or have_libelogind is -true, as both of these need the source files which are used when -HAVE_LIBSYSTEMD is true. ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 36df239..da47ecb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -221,7 +221,7 @@ AS_IF([test "x$cross_compiling" != "xyes" ], [ - - AC_SUBST(LIBSYSTEMD_CFLAGS) - AC_SUBST(LIBSYSTEMD_LIBS) --AM_CONDITIONAL(HAVE_LIBSYSTEMD, [test "$have_libsystemd" = "yes"], [Using libsystemd]) -+AM_CONDITIONAL(HAVE_LIBSYSTEMD, [test "$have_libsystemd" = "yes" || test "$have_libelogind" = "yes" ], [Using libsystemd]) - - dnl --------------------------------------------------------------------------- - dnl - systemd unit / service files --- -2.17.0 diff --git a/user/postfix/APKBUILD b/user/postfix/APKBUILD index 4ab9b7ed7..4ec4dfd6a 100644 --- a/user/postfix/APKBUILD +++ b/user/postfix/APKBUILD @@ -1,10 +1,10 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Dan Theisen <djt@hxx.in> pkgname=postfix -pkgver=3.7.3 +pkgver=3.9.0 pkgrel=0 pkgdesc="Mail server (MTA) that is Sendmail outside and Qmail inside" -url="http://www.postfix.org/" +url="https://www.postfix.org/" arch="all" pkgusers="postfix" pkggroups="postfix postdrop" @@ -18,9 +18,8 @@ subpackages="$pkgname-doc $pkgname-ldap $pkgname-lmdb $pkgname-openrc install="$pkgname.pre-install" provider_priority=1 provides="sendmail" -source="http://cdn.postfix.johnriley.me/mirrors/postfix-release/official/$pkgname-$pkgver.tar.gz +source="https://postfix-mirror.horus-it.com/postfix-release/official/$pkgname-$pkgver.tar.gz honour-config-directory.patch - linux-6.patch postfix.initd " @@ -93,7 +92,6 @@ sqlite() { _database "sqlite" "SQLite 3" } -sha512sums="4ceedd1b7b364f47a3becc041cf29a48aea54e38306fd1227c5a7c25894831fb5c37150d99d781d237175e58da21ac53887c97d99bb6b715c4988777596ee890 postfix-3.7.3.tar.gz -63ea7fe461fca1306088e9984acfab6ab3e919dafa2b606d43fbca472969e6ec232800071f939f5a4482c01c6d7b53a86de9e7e893ab94f4cb135d16ff5763cc honour-config-directory.patch -aa9e47208041d652351ce167fe6205116658704189bc2a715a3edb31c0436d46fad909cfe57e1d6d869c933ff0b5237be0956b38a94b395781998c9092305274 linux-6.patch +sha512sums="46faaf529a6d2edc5ea747ee0d73a028f7061a923da0ea4b1e1828d935b15f5782d83f7a8472e7c74b45ea0e96666c871efd352934bead28a88ddd3561ade324 postfix-3.9.0.tar.gz +c79334a2d4989990bf0bc26341332611521d7cd06f1dcacc7a3baef6bf2ddd5f90208f39b26b26a07b134a2398d669a40d5322b4be6c053947fc9a962ddf7111 honour-config-directory.patch 2ad1b053bbb51d4f480dbf5a01252e8e99a82ec14a75ff49336b2b190ea55bc02400542b109fa0cc4ebfe6b42eaabbc45f70f2ea581f1eb9c4189c439b825592 postfix.initd" diff --git a/user/postfix/honour-config-directory.patch b/user/postfix/honour-config-directory.patch index a32c588ee..ad9d7ea3d 100644 --- a/user/postfix/honour-config-directory.patch +++ b/user/postfix/honour-config-directory.patch @@ -1,6 +1,6 @@ --- postfix-3.3.2/postfix-install +++ postfix-3.3.2/postfix-install -@@ -832,7 +832,7 @@ +@@ -846,7 +846,7 @@ # the wrong place when Postfix is being upgraded. case "$mail_version" in diff --git a/user/postfix/linux-6.patch b/user/postfix/linux-6.patch deleted file mode 100644 index 19e73dc34..000000000 --- a/user/postfix/linux-6.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/makedefs 2022-01-23 21:53:41.000000000 +0100 -+++ b/makedefs 2022-09-07 19:07:02.000000000 +0200 -@@ -627,7 +627,8 @@ - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; -- Linux.[345].*) SYSTYPE=LINUX$RELEASE_MAJOR -+ Linux.[3456].*) -+ SYSTYPE=LINUX$RELEASE_MAJOR - case "$CCARGS" in - *-DNO_DB*) ;; - *-DHAS_DB*) ;; ---- a/src/util/sys_defs.h 2021-12-05 19:59:27.000000000 +0100 -+++ b/src/util/sys_defs.h 2022-09-07 19:09:09.000000000 +0200 -@@ -751,7 +751,8 @@ - /* - * LINUX. - */ --#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) -+#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) \ -+ || defined(LINUX6) - #define SUPPORTED - #define UINT32_TYPE unsigned int - #define UINT16_TYPE unsigned short diff --git a/user/py3-distutils-extra/APKBUILD b/user/py3-distutils-extra/APKBUILD index e95d01982..605f1e484 100644 --- a/user/py3-distutils-extra/APKBUILD +++ b/user/py3-distutils-extra/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=py3-distutils-extra -pkgver=2.50 +pkgver=3.0 pkgrel=0 pkgdesc="Python distutils extras for gettext, themed icons, and scrollkeepr docs" url="https://launchpad.net/python-distutils-extra" @@ -24,4 +24,4 @@ package() { python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="f012bf5c02756a9e46657e46af270f619efa415b2c4e78c14d52f36f3fef80bd113fcb61928a35ef681f9aaf36602a7e25157b64384b94934df8a24158ffbd4d python-distutils-extra-2.50.tar.bz2" +sha512sums="b9e40766c31c3417152df021b6a9fdf31eaf022765b85a5ccf1f79653a0b30e2b5ebdc94afe267bd469bbd7a93548bc522be9b650cbcd12aa974abf9e142bec1 python-distutils-extra-3.0.tar.bz2" diff --git a/user/py3-pexpect/APKBUILD b/user/py3-pexpect/APKBUILD index edb3746d6..eb0bbdc4f 100644 --- a/user/py3-pexpect/APKBUILD +++ b/user/py3-pexpect/APKBUILD @@ -4,7 +4,7 @@ pkgname=py3-pexpect _pkgname=${pkgname#*-} _p="${_pkgname#?}" _p="${_pkgname%"$_p"}" -pkgver=4.8.0 +pkgver=4.9.0 pkgrel=0 pkgdesc="Python library for managing console applications" url="https://pexpect.readthedocs.io/" @@ -27,4 +27,4 @@ package() { python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="7447ae2d1e13be422c894a8fd51c5aaa788e37ea7f0c798c88b77afd401fb3631400a637077ccbb83c2e3876b0d0c5e1dbd5fdc9d3739d785b4d5ad7c0192580 pexpect-4.8.0.tar.gz" +sha512sums="0e4b3a6978b94aee221ff23cd7bd771517e0e0f1a1a8b17f77f15bf78edd3130ad093d925b7d1e86fe6ba7eb956205d4c616b4e52b2fcfa1e944d4860dd7b3a0 pexpect-4.9.0.tar.gz" diff --git a/user/py3-pycairo/APKBUILD b/user/py3-pycairo/APKBUILD index 5501d002e..1319e1ce9 100644 --- a/user/py3-pycairo/APKBUILD +++ b/user/py3-pycairo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=py3-pycairo -pkgver=1.23.0 +pkgver=1.26.0 pkgrel=0 pkgdesc="Python bindings for Cairo" url="https://pycairo.readthedocs.io/" @@ -34,4 +34,4 @@ package() { DESTDIR="$pkgdir" ninja -C output install } -sha512sums="fc0cc878cc716a6a2baf89a193facfcd89970c884afd3bb9d7fbecf42894ddd191988a8f0fe79100786509f17fbe4f1990eca33a5299414b2df2539d66de5abf pycairo-1.23.0.tar.gz" +sha512sums="5313f0d408a6e6ce6e70ac92291be5dd8651e01fbf9411d0467061afa21849cde27db273f2a13b4c3c931183f63f75f31fc0f0d3283b8f339ba88e71eab432f1 pycairo-1.26.0.tar.gz" diff --git a/user/py3-pygobject/APKBUILD b/user/py3-pygobject/APKBUILD index 390eaaede..309e024d1 100644 --- a/user/py3-pygobject/APKBUILD +++ b/user/py3-pygobject/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=py3-pygobject -pkgver=3.42.2 +pkgver=3.46.0 pkgrel=0 pkgdesc="Python bindings for GObject libraries" url="https://wiki.gnome.org/Projects/PyGObject" @@ -25,4 +25,4 @@ package() { python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="eb604f839e0702e8aeff0f19665e44c05c56cae02ce892e9ab8a95ddb0d5d0216182d0c9a0059fc8e05990c0d5707f2f7456d8924bbfb95ce1d9a42908ac0119 pygobject-3.42.2.tar.xz" +sha512sums="48293c193ba5aece38d99f45d325d0329ac33e88442bf00848fe818a7c838977b8d2cf50a404c30e8852ccc0b4a44dfda07751d51acc21f740aa2ab6aa3ce661 pygobject-3.46.0.tar.xz" diff --git a/user/qca/APKBUILD b/user/qca/APKBUILD index 537b3b9aa..c142f5f42 100644 --- a/user/qca/APKBUILD +++ b/user/qca/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=qca pkgver=2.2.1 -pkgrel=0 +pkgrel=1 pkgdesc="Qt cryptographic architecture" url="https://userbase.kde.org/QCA" arch="all" @@ -10,7 +10,10 @@ license="LGPL-2.1+" depends="" makedepends="cmake cyrus-sasl-dev qt5-qtbase-dev" subpackages="$pkgname-dev $pkgname-doc" -source="https://download.kde.org/stable/qca/$pkgver/qca-${pkgver}.tar.xz" +source="https://download.kde.org/stable/qca/$pkgver/qca-${pkgver}.tar.xz + gcc11.patch + test.patch + " build() { cmake \ @@ -29,4 +32,6 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3a0e8aa7cf3ea9a7244facaf1d521ebca2753af37636e7bf5f21c57ae880ac9682ae7d6d9fa5ce41b73568ff9538214956b89cd41228c2cb828d9068c2031a9c qca-2.2.1.tar.xz" +sha512sums="3a0e8aa7cf3ea9a7244facaf1d521ebca2753af37636e7bf5f21c57ae880ac9682ae7d6d9fa5ce41b73568ff9538214956b89cd41228c2cb828d9068c2031a9c qca-2.2.1.tar.xz +ff21970831239f17813c96d47ab690cc15afbc6a8da68c9c1f65d90f7314963ead2778b609ea74e3f26df4046a58907e726f51c31227714bb50c182c66a26e58 gcc11.patch +158e75c4b3940cd74b1bbcdffc2c281d771734169cf61e091c78fec40b218fe4f141c2978a33c121b354cb81235a60eecfca070e375d1e54563a354cd98c22e5 test.patch" diff --git a/user/qca/gcc11.patch b/user/qca/gcc11.patch new file mode 100644 index 000000000..4fc43d818 --- /dev/null +++ b/user/qca/gcc11.patch @@ -0,0 +1,26 @@ +From 32275f1a74c161d2fed8c056b2dd9555687a22f2 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid <aacid@kde.org> +Date: Sun, 24 Jan 2021 18:43:39 +0100 +Subject: [PATCH] Move moc include outside the QCA namespace + +It's the right thing to do and also fixes build with gcc 11 +--- + src/qca_default.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/qca_default.cpp b/src/qca_default.cpp +index 7c2a8f89..e31ce3e1 100644 +--- a/src/qca_default.cpp ++++ b/src/qca_default.cpp +@@ -1358,6 +1358,6 @@ QStringList plugin_priorities(Provider *defaultProvider) + return that->shared.plugin_priorities(); + } + +-#include "qca_default.moc" +- + } ++ ++#include "qca_default.moc" +-- +GitLab + diff --git a/user/qca/test.patch b/user/qca/test.patch new file mode 100644 index 000000000..6b9fb12ef --- /dev/null +++ b/user/qca/test.patch @@ -0,0 +1,77 @@ +From b9d914bb3b5b0ecf8568adf1b4610d4da2cde244 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fabian@ritter-vogt.de> +Date: Wed, 15 Sep 2021 10:34:08 +0200 +Subject: [PATCH] Make filewatchunittest much quicker + +Use QSignalSpy::wait to avoid waiting needlessly. +Reduce time to wait for (expected and unexpected) signals to 2s. +--- + .../filewatchunittest/filewatchunittest.cpp | 19 +++++++++---------- + 1 file changed, 9 insertions(+), 10 deletions(-) + +diff --git a/unittest/filewatchunittest/filewatchunittest.cpp b/unittest/filewatchunittest/filewatchunittest.cpp +index d1bc117c..63baa655 100644 +--- a/unittest/filewatchunittest/filewatchunittest.cpp ++++ b/unittest/filewatchunittest/filewatchunittest.cpp +@@ -40,7 +40,7 @@ void FileWatchUnitTest::cleanupTestCase() + + void FileWatchUnitTest::filewatchTest() + { +- QWARN("Unittest will take about 1 minute. Please wait."); ++ QWARN("Unittest will take about 10 seconds. Please wait."); + + QCA::FileWatch watcher; + QCOMPARE( watcher.fileName(), QString() ); +@@ -55,41 +55,40 @@ void FileWatchUnitTest::filewatchTest() + + watcher.setFileName( tempFile->fileName() ); + QCOMPARE( watcher.fileName(), tempFile->fileName() ); +- QTest::qWait(7000); ++ QVERIFY(!spy.wait(2000)); + QCOMPARE( spy.count(), 0 ); + tempFile->close(); +- QTest::qWait(7000); ++ QVERIFY(!spy.wait(2000)); + QCOMPARE( spy.count(), 0 ); + + tempFile->open(); + tempFile->write("foo"); + tempFile->flush(); +- QTest::qWait(7000); ++ QVERIFY(spy.wait(2000)); + QCOMPARE( spy.count(), 1 ); + + tempFile->close(); +- QTest::qWait(7000); +- ++ QVERIFY(!spy.wait(2000)); + QCOMPARE( spy.count(), 1 ); + + tempFile->open(); + tempFile->write("foo"); + tempFile->flush(); +- QTest::qWait(7000); ++ QVERIFY(spy.wait(2000)); + QCOMPARE( spy.count(), 2 ); + + tempFile->write("bar"); + tempFile->flush(); +- QTest::qWait(7000); ++ QVERIFY(spy.wait(2000)); + QCOMPARE( spy.count(), 3 ); + + tempFile->close(); +- QTest::qWait(7000); ++ QVERIFY(!spy.wait(2000)); + + QCOMPARE( spy.count(), 3 ); + + delete tempFile; +- QTest::qWait(7000); ++ QVERIFY(spy.wait(2000)); + QCOMPARE( spy.count(), 4 ); + } + +-- +GitLab + diff --git a/user/qps/APKBUILD b/user/qps/APKBUILD index cf2f39569..6c82561f7 100644 --- a/user/qps/APKBUILD +++ b/user/qps/APKBUILD @@ -1,8 +1,9 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=qps -pkgver=2.7.0 +pkgver=2.8.0 _lxqt_build=0.13.0 +_lxqt=1.4 pkgrel=0 pkgdesc="Qt-based task manager" url="https://lxqt.github.io/" @@ -12,7 +13,7 @@ license="GPL-2.0+" depends="" makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtx11extras-dev qt5-qttools-dev libxrender-dev lxqt-build-tools>=$_lxqt_build - liblxqt-dev kwindowsystem-dev" + liblxqt-dev>=$_lxqt kwindowsystem-dev" subpackages="$pkgname-doc" source="https://github.com/lxqt/qps/releases/download/$pkgver/qps-$pkgver.tar.xz qps-1.10.17-compile-fixes.patch @@ -41,5 +42,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="76285f37869f057fccd895eccf965547c11e49dd8315ef8ac4ea199734aae449be8e7782d41fb8582b0fa60715952857595d4bef7a3afcb47e83f31a168fd3c7 qps-2.7.0.tar.xz +sha512sums="1dc4e0018eec82a70f33604d3f5b58a20892f1d97bb0334596d9ca47bc9d4e51c5acbdc8f72289612ab12a9a180c04b87de5f91a2fc0872791f68d0e6a1a2129 qps-2.8.0.tar.xz 32c154f1d3c9e74dda3eabfd2e3b9e9f3c1d77f808dfacc9dd05c904066832d92d361ca56ef9d784d945fad60cf67d6c909cbb730a0ffed1fea3bf44c3aad5a2 qps-1.10.17-compile-fixes.patch" diff --git a/user/qt-creator/APKBUILD b/user/qt-creator/APKBUILD index 7ef7f7671..57829bbe6 100644 --- a/user/qt-creator/APKBUILD +++ b/user/qt-creator/APKBUILD @@ -2,7 +2,8 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=qt-creator pkgver=4.15.2 -pkgrel=0 +_llvmver=14 +pkgrel=2 pkgdesc="Cross-platform multi-language programming IDE" url="https://doc.qt.io/qtcreator/index.html" arch="all" @@ -10,17 +11,19 @@ options="!check" # No test suite. license="LGPL-2.0 WITH Qt-LGPL-exception-1.1" depends="qt5-qtquickcontrols" makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtserialport-dev - qt5-qtscript-dev qt5-qttools-dev clang-dev llvm14-dev python3 + qt5-qtscript-dev qt5-qttools-dev clang-dev llvm${_llvmver}-dev python3 libexecinfo-dev" subpackages="$pkgname-dev" source="https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/$pkgname-opensource-src-$pkgver.tar.xz llvm13.patch malloc_trim.patch + cstdint.patch " ldpath="/usr/lib/qtcreator" builddir="$srcdir/$pkgname-opensource-src-$pkgver" build() { + export LLVM_CONFIG="$(command -v llvm${_llvmver}-config)" export LLVM_INSTALL_DIR=/usr qmake -r "QMAKE_CFLAGS += $CFLAGS" "QMAKE_CXXFLAGS += $CXXFLAGS" "QMAKE_LFLAGS += $LDFLAGS" "QMAKE_LIBS += -lexecinfo" make @@ -32,4 +35,5 @@ package() { sha512sums="b29d5d97a1faa8d5756069d90c18d6d367e09057b97bd75c774bc2d1e373f9f4dcc24211188259f8d397bb932a65daaacda433bced796fd165654f5c3c621258 qt-creator-opensource-src-4.15.2.tar.xz c38cf1aea69bc52864d5aa4b6fbc01b5e91b1514a616056b270fcccc2744bb418eb93a470462823c05e00e44f44c45d8e26effd8aa72a6817402ddd9a6dd0cc4 llvm13.patch -7fcb9b293daecc4c0f294d372507db9a6282479c4cf45999446193d9f35552db2532d47dedc9c5666a10855e20d0fe655f0ee0408abca8cc8ffbf121a230960f malloc_trim.patch" +7fcb9b293daecc4c0f294d372507db9a6282479c4cf45999446193d9f35552db2532d47dedc9c5666a10855e20d0fe655f0ee0408abca8cc8ffbf121a230960f malloc_trim.patch +7d7a739cf98c1bc4232d9d14334e3c3a319746db931aaad4d441c903351c56869015ce427e2098fbe930d56a2dd433b1869fbbf5a78f91c10a94f5a47a778ea0 cstdint.patch" diff --git a/user/qt-creator/cstdint.patch b/user/qt-creator/cstdint.patch new file mode 100644 index 000000000..39558e90f --- /dev/null +++ b/user/qt-creator/cstdint.patch @@ -0,0 +1,27 @@ +--- qt-creator-opensource-src-4.15.2/src/libs/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h.old 2021-07-12 21:12:54.000000000 -0500 ++++ qt-creator-opensource-src-4.15.2/src/libs/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h 2024-05-30 18:51:05.965117572 -0500 +@@ -9,6 +9,7 @@ + #include <cstring> + #include <algorithm> + #include <sstream> ++#include <cstdint> + #include "os_types.h" + #include "types.h" + #include "background.h" +--- qt-creator-opensource-src-4.15.2/src/libs/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h.old 2021-07-12 21:12:54.000000000 -0500 ++++ qt-creator-opensource-src-4.15.2/src/libs/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h 2024-05-30 18:54:29.873560575 -0500 +@@ -2,6 +2,7 @@ + #define NUM_CVT_H + + #include <string> ++#include <cstdint> + #include "os_types.h" + + namespace litehtml +@@ -16,4 +17,4 @@ + } + } + +-#endif // NUM_CVT_H +\ No newline at end of file ++#endif // NUM_CVT_H diff --git a/user/qt5-qtbase/APKBUILD b/user/qt5-qtbase/APKBUILD index 7cd2f2b3e..1e6e92acf 100644 --- a/user/qt5-qtbase/APKBUILD +++ b/user/qt5-qtbase/APKBUILD @@ -173,7 +173,7 @@ x11() { usr/lib/qt5/plugins/printsupport* \ usr/lib/qt5/plugins/xcbglintegrations - scanelf -Rn "$pkgdir"/usr/ | egrep '(libX|libQt5Gui|libGL)' && return 1 + scanelf -Rn "$pkgdir"/usr/ | grep -E '(libX|libQt5Gui|libGL)' && return 1 return 0 } diff --git a/user/qt5-qtwebkit/APKBUILD b/user/qt5-qtwebkit/APKBUILD index 63e18cb07..d4c677f39 100644 --- a/user/qt5-qtwebkit/APKBUILD +++ b/user/qt5-qtwebkit/APKBUILD @@ -4,7 +4,7 @@ pkgname=qt5-qtwebkit _realname=qtwebkit pkgver=5.212.0_git20200924 _ts=1600955993 -pkgrel=1 +pkgrel=2 pkgdesc="Open source Web browser engine" url="https://github.com/qtwebkit/qtwebkit/wiki" arch="all" @@ -25,6 +25,7 @@ source="https://download.qt.io/snapshots/ci/qtwebkit/${pkgver%.*}/$_ts/src/submo glib-compat.patch icu-68.patch jsc-musl.patch + missing-header.patch ppc-llint.patch ppc-ucontext.patch ppc64-llint.patch @@ -91,6 +92,7 @@ ca77802de1b945c05b6a88d5cc0cbb093a751ef16626d221c8b2ca5cf841f5d42fffe62087df1ce0 9f42f3d64657fb9487d9299ad5931381f9aa91a746a5986dc361def5e9a6e02933054a66132fa99057460ad6de0c19e9b51e07594451cc4f38b19012a69d205c glib-compat.patch 5f0ca182c68c55a6f221e96bf2221784c7126006ea8db3e9eee2b66dbdda18d7d0f9830e8345ac2b0bc6f557af5d2a54a321b06be4a2c845dd1003282b053443 icu-68.patch 9e3638d4d5c6e56510525931b278c8d6e28134917c300837b4eccf1b9298af1e274668318af82091137e99b83da0f78904084b7ee9dd8422b347a0f35e765c31 jsc-musl.patch +ee3d06d3c350980a2a042961b6943d42706599b39270addce3904535811b18a2af8f74842f2d21267ce71250b97c05de600ec416e042f4d1cdbc2701711b5f4a missing-header.patch 4a3a15f8b1e63cade07c589be45afd794b45b34ee98e4d2d3fc2f52662c26c518d400b44c9314e41113cad847b9efd544d2a4c02425c9892ca9729e218ae9306 ppc-llint.patch 48f81c6a2c0f4e9b215dada4c0bebdafc66feb75178a7b1ca661f2bbcddd6b573e7db4dd179f6e4b6345c7ebcf17ce1c6647cc6ce39dbac8ba68f8863a98bdc0 ppc-ucontext.patch db98d710815eb68f1fb025098b04c34b33518750c193e702383ca879e145c52ba4786fa4721f384f01f90231c32be9478d507c1000eb761621751edcd071b966 ppc64-llint.patch" diff --git a/user/qt5-qtwebkit/missing-header.patch b/user/qt5-qtwebkit/missing-header.patch new file mode 100644 index 000000000..da0eed43c --- /dev/null +++ b/user/qt5-qtwebkit/missing-header.patch @@ -0,0 +1,11 @@ +The GCC 13 C++ stdlib doesn't include <stdint.h> any more, which is used for uint32_t. +--- qtwebkit-opensource-src-5.212/Source/ThirdParty/ANGLE/src/common/mathutil.h.old 2020-09-22 06:30:04.000000000 -0500 ++++ qtwebkit-opensource-src-5.212/Source/ThirdParty/ANGLE/src/common/mathutil.h 2024-05-27 14:43:22.625301664 -0500 +@@ -14,6 +14,7 @@ + + #include <limits> + #include <algorithm> ++#include <stdint.h> + #include <string.h> + #include <stdlib.h> + diff --git a/user/qt5ct/APKBUILD b/user/qt5ct/APKBUILD index 55bf5b5d2..9bbec8a55 100644 --- a/user/qt5ct/APKBUILD +++ b/user/qt5ct/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=qt5ct -pkgver=1.2 +pkgver=1.8 pkgrel=0 pkgdesc="GUI utility for configuring Qt5" url="https://sourceforge.net/projects/qt5ct/" @@ -21,4 +21,4 @@ package() { make INSTALL_ROOT="$pkgdir" install } -sha512sums="044582440fc3ed8424970a30d7e1562396f9a1651f2c50adbdcb6ec73b35fb8dd23de419df29b92d21a45fea9af4e562b1294f5bfc329419f831775954f8ed6f qt5ct-1.2.tar.bz2" +sha512sums="5417850fb2bad4faaed59c8af61bec04c1ee7fefe8495286571e257b2f68cd417d36439c66fcfac28bb735c753a4ca4cec327b74e97e5ce8c2d4e36b3e4fba28 qt5ct-1.8.tar.bz2" diff --git a/user/qterminal/APKBUILD b/user/qterminal/APKBUILD index 19880ab07..65d836d03 100644 --- a/user/qterminal/APKBUILD +++ b/user/qterminal/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=qterminal -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt-based terminal for LXQt" @@ -11,7 +11,7 @@ options="!check" # No test suite. license="GPL-2.0+" depends="" makedepends="cmake extra-cmake-modules lxqt-build-tools>=$_lxqt - qtermwidget-dev>=${pkgver%.*}.0 qt5-qttools-dev kwindowsystem-dev" + qtermwidget-dev>=${pkgver%.*} qt5-qttools-dev kwindowsystem-dev" source="https://github.com/lxqt/qterminal/releases/download/$pkgver/qterminal-$pkgver.tar.xz" build() { @@ -37,4 +37,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="f8cf2183da7af7869433b6057e20fba46be5cce30b75bdafb6cc0a5474e39fb1f2f8831f6841ca78f8b367f718ed2ee5a312a75850bc8192a37f20a6c5767a8d qterminal-1.3.0.tar.xz" +sha512sums="95c7fffa0a7a91dae338168748e1a9061eb7d393a083a70c59e3324f78ae8200e1e3bb07aa131564b208068e62fc744cc75e96694d70443559c7205ec9f91121 qterminal-1.4.0.tar.xz" diff --git a/user/qtermwidget/APKBUILD b/user/qtermwidget/APKBUILD index e4ff7a982..02ee0dd80 100644 --- a/user/qtermwidget/APKBUILD +++ b/user/qtermwidget/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=qtermwidget -pkgver=1.3.0 +pkgver=1.4.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Qt-based terminal widget, used in QTerminal" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="f1731f6915bb9d5ea83a434cab169064fe7ac2fcf60c6b35c696e4d945fe11937dd98311916d6272016b059ed7f3fc66a955b91d0b0e7e6499f69627116608ed qtermwidget-1.3.0.tar.xz" +sha512sums="b688290eff52bd77e4a9f342062b52bf7a03a8ba66fc86583875472d0c0b0414d59ea0ad6cde64117cc49061944eacd17950724b23f74bb6ada4995917a094bc qtermwidget-1.4.0.tar.xz" diff --git a/user/qtxdg-tools/APKBUILD b/user/qtxdg-tools/APKBUILD index f65282a46..5e11b6b30 100644 --- a/user/qtxdg-tools/APKBUILD +++ b/user/qtxdg-tools/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=qtxdg-tools -pkgver=3.11.0 +pkgver=3.12.0 _lxqt=0.13.0 pkgrel=0 pkgdesc="Userland utilities for LXQt" @@ -9,7 +9,7 @@ url="https://lxqt-project.org/" arch="all" license="LGPL-2.1+" depends="" -makedepends="cmake lxqt-build-tools>=$_lxqt libqtxdg-dev" +makedepends="cmake lxqt-build-tools>=$_lxqt libqtxdg-dev>=${pkgver%.0}" source="https://github.com/lxqt/qtxdg-tools/releases/download/$pkgver/qtxdg-tools-$pkgver.tar.xz" build() { @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="da88f36130b7c23d1553bce252ddc783ae30ba91cd55fba065702376f6cc9c0353c0ad4bb099ed1b65964bd9d476ae431bfde46df110bccec832d3f57cbaa7f3 qtxdg-tools-3.11.0.tar.xz" +sha512sums="a9b2f76bd732da4c13b6d4c5716be57a67c3197fad214d04d324d3f39500726754deb0fdde42fb2b5f04407932b3ea63a5dfb5e9588144ea801572efa59aecb5 qtxdg-tools-3.12.0.tar.xz" diff --git a/user/quassel/APKBUILD b/user/quassel/APKBUILD index 8cfadbd66..dbea3d65e 100644 --- a/user/quassel/APKBUILD +++ b/user/quassel/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=quassel pkgver=0.14.0 -pkgrel=0 +pkgrel=1 pkgdesc="Modern, cross-platform IRC client" url="https://quassel-irc.org/" arch="all" @@ -14,7 +14,7 @@ makedepends="qt5-qtbase-dev qt5-qtmultimedia-dev libdbusmenu-qt-dev sonnet-dev kwidgetsaddons-dev qca-dev qt5-qttools-dev zlib-dev libexecinfo-dev cmake boost-dev" langdir="/usr/share/quassel/translations" -subpackages="$pkgname-core $pkgname-client $pkgname-lang" +subpackages="$pkgname-core $pkgname-client $pkgname-lang $pkgname-libs" source="https://quassel-irc.org/pub/quassel-$pkgver.tar.bz2" # secfixes: @@ -62,13 +62,38 @@ client() { mkdir -p "$subpkgdir"/usr/share/quassel mv "$pkgdir"/usr/share/quassel/stylesheets \ "$subpkgdir"/usr/share/quassel/ + mv "$pkgdir"/usr/share/quassel/icons \ + "$subpkgdir"/usr/share/quassel/ + + mkdir -p "$subpkgdir"/usr/lib + for component in client qtui uisupport; do + mv "$pkgdir"/usr/lib/libquassel-$component.* \ + "$subpkgdir"/usr/lib/ + done } core() { pkgdesc="Modern, cross-platform IRC daemon (core only)" depends="" + mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/quasselcore "$subpkgdir"/usr/bin/ + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libquassel-core* "$subpkgdir"/usr/lib/ +} + +libs() { + pkgdesc="Modern, cross-platform IRC daemon (libraries)" + depends="" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libquassel-common* "$subpkgdir"/usr/lib/ + + mkdir -p "$subpkgdir"/usr/share/quassel + for component in networks.ini scripts; do + mv "$pkgdir"/usr/share/quassel/$component \ + "$subpkgdir"/usr/share/quassel/ + done } sha512sums="ea6b9723acab5ce73f760692770c1340c03bf277d2c99a2520345bfb6a7bb6fdc64a01dccfd7026341b46ee727821e1bcc2f487be72dfbc155f1de1ad264763f quassel-0.14.0.tar.bz2" diff --git a/user/range-v3/APKBUILD b/user/range-v3/APKBUILD index 3221286be..84c9f8091 100644 --- a/user/range-v3/APKBUILD +++ b/user/range-v3/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=range-v3 -pkgver=0.10.0 +pkgver=0.12.0 pkgrel=0 pkgdesc="Range library for C++" url="http://ericniebler.com/2018/12/05/standard-ranges/" @@ -34,4 +34,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4db089dcbf638eb30fa20dcf6785dd460c5a074a8912984a484592753cfee9f5b9a0e2c56b5bc5921d1b6120877aa2c83ac0a6fe428088ef2854033a635e9723 range-v3-0.10.0.tar.gz" +sha512sums="b8b632b8e0f2a3234ef61813212c237f648cd741e816ca57bd86f82f6459f7d755e2b70361d2aa43847874fb546a31a792ab1c3ba90292818ae7313438dc62d0 range-v3-0.12.0.tar.gz" diff --git a/user/readstat/APKBUILD b/user/readstat/APKBUILD index bb9926267..1ce3b3249 100644 --- a/user/readstat/APKBUILD +++ b/user/readstat/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=readstat -pkgver=1.1.8 +pkgver=1.1.9 pkgrel=0 pkgdesc="Command-line tool for converting stats package files" url=" " @@ -9,7 +9,11 @@ license="MIT" depends="" makedepends="zlib-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-libs" -source="https://github.com/WizardMac/ReadStat/releases/download/v$pkgver/readstat-$pkgver.tar.gz" +source="https://github.com/WizardMac/ReadStat/releases/download/v$pkgver/readstat-$pkgver.tar.gz + use-after-free.patch + buf-overflow.patch + big-endian.patch + " build() { ./configure \ @@ -35,4 +39,7 @@ libs() { default_libs } -sha512sums="0b6278c2f1acae2cb6c509dbf730b121e1d8cd6e53736f060c0b79ba5fbcf56e1c4ac39568d21e90f537a0bae0341d702421eb768d384f8891f6486b7c6c2f1f readstat-1.1.8.tar.gz" +sha512sums="1034d2ca4f45a5b93ed1857b9176965a1584c042bfc2316cc93d0a80f589dc55ad6fe01036a6b9a4db36080b2a9876472f9016ce01e015692430dbeb7e26ece0 readstat-1.1.9.tar.gz +b58b0b2d5da107048c4aedbb6a8a0cd7cd3710ac6e6cd5cb759fd149288da24fb2f52022586154eba42d32441ab5a6ec307f895af2875649bb57a4d0473d9a81 use-after-free.patch +cfcad56dfe51b1454010e6cf15961816de8b60f1d5918638b8f1f208d18713db281eb1d915db4cd79fe11d28c82a1c3c23a1a05a079b4071ba2f61c1d0c74dbc buf-overflow.patch +3aad51258a52c13c45bd94c7e12a9ae38923930f03dbbee650d489ef812999de82e8024ec5e74ca4ad191aa90b2c5d8dd983493121c9b874708b3f32419e1146 big-endian.patch" diff --git a/user/readstat/big-endian.patch b/user/readstat/big-endian.patch new file mode 100644 index 000000000..71f1db133 --- /dev/null +++ b/user/readstat/big-endian.patch @@ -0,0 +1,76 @@ +From 0034c8ee693563cbecae8fa8a24d3e8d5dcc6ab1 Mon Sep 17 00:00:00 2001 +From: Evan Miller <emmiller@gmail.com> +Date: Sat, 4 May 2024 08:50:28 -0400 +Subject: [PATCH] [SAS7BCAT writer] big-endian architecture fix + +Closes #302 +--- + src/sas/readstat_sas7bcat_write.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/sas/readstat_sas7bcat_write.c b/src/sas/readstat_sas7bcat_write.c +index 6544798c..9642fdad 100644 +--- a/src/sas/readstat_sas7bcat_write.c ++++ b/src/sas/readstat_sas7bcat_write.c +@@ -63,7 +63,8 @@ static sas7bcat_block_t *sas7bcat_block_for_label_set(readstat_label_set_t *r_la + + for (j=0; j<r_label_set->value_labels_count; j++) { + readstat_value_label_t *value_label = readstat_get_value_label(r_label_set, j); +- lbp1[2] = 24; // size - 6 ++ int16_t value_entry_len = 24; // size - 6 ++ memcpy(&lbp1[2], &value_entry_len, sizeof(int16_t)); + int32_t index = j; + memcpy(&lbp1[10], &index, sizeof(int32_t)); + if (r_label_set->type == READSTAT_TYPE_STRING) { +@@ -86,7 +87,7 @@ static sas7bcat_block_t *sas7bcat_block_for_label_set(readstat_label_set_t *r_la + memcpy(&lbp2[8], &label_len, sizeof(int16_t)); + memcpy(&lbp2[10], value_label->label, label_len); + +- lbp1 += 30; ++ lbp1 += 6 + value_entry_len; + lbp2 += 8 + 2 + value_label->label_len + 1; + } + +From 29aac3db79a5da20d1d1dcbb54a587c5ba51e7b3 Mon Sep 17 00:00:00 2001 +From: Evan Miller <emmiller@gmail.com> +Date: Sat, 4 May 2024 10:35:27 -0400 +Subject: [PATCH] [SAS7BCAT writer] more big-endian fixes + +--- + src/sas/readstat_sas7bcat_write.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/sas/readstat_sas7bcat_write.c b/src/sas/readstat_sas7bcat_write.c +index 9642fda..c25fec0 100644 +--- a/src/sas/readstat_sas7bcat_write.c ++++ b/src/sas/readstat_sas7bcat_write.c +@@ -46,7 +46,8 @@ static sas7bcat_block_t *sas7bcat_block_for_label_set(readstat_label_set_t *r_la + memcpy(&block->data[38], &count, sizeof(int32_t)); + memcpy(&block->data[42], &count, sizeof(int32_t)); + if (name_len > 8) { +- block->data[2] = (char)0x80; ++ int16_t flags = 0x80; ++ memcpy(&block->data[2], &flags, sizeof(int16_t)); + memcpy(&block->data[8], name, 8); + + memset(&block->data[106], ' ', 32); +@@ -139,16 +140,15 @@ static readstat_error_t sas7bcat_begin_data(void *writer_ctx) { + + // Page 1 + char *xlsr = &page[856]; +- int16_t block_idx, block_off; +- block_idx = 4; +- block_off = 16; ++ int32_t block_idx = 4; ++ int16_t block_off = 16; + for (i=0; i<writer->label_sets_count; i++) { + if (xlsr + 212 > page + hinfo->page_size) + break; + + memcpy(&xlsr[0], "XLSR", 4); + +- memcpy(&xlsr[4], &block_idx, sizeof(int16_t)); ++ memcpy(&xlsr[4], &block_idx, sizeof(int32_t)); + memcpy(&xlsr[8], &block_off, sizeof(int16_t)); + + xlsr[50] = 'O'; diff --git a/user/readstat/buf-overflow.patch b/user/readstat/buf-overflow.patch new file mode 100644 index 000000000..f3766bb24 --- /dev/null +++ b/user/readstat/buf-overflow.patch @@ -0,0 +1,26 @@ +From c7baae72b36acdc24f56ad48d3e859850fdbdc2b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= <csardi.gabor@gmail.com> +Date: Sat, 17 Feb 2024 21:23:14 +0100 +Subject: [PATCH] Fix a buffer overflow (#311) + +It happens if raw_str_used underflows and ends up a very large number, +which is then used as the size of a string. + +Closes #285. +--- + src/spss/readstat_sav_read.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/spss/readstat_sav_read.c b/src/spss/readstat_sav_read.c +index 7f49490..460bf07 100644 +--- a/src/spss/readstat_sav_read.c ++++ b/src/spss/readstat_sav_read.c +@@ -717,7 +717,7 @@ static readstat_error_t sav_process_row(unsigned char *buffer, size_t buffer_len + } + if (++offset == col_info->width) { + if (++segment_offset < var_info->n_segments) { +- raw_str_used--; ++ if (raw_str_used > 0) raw_str_used--; + } + offset = 0; + col++; diff --git a/user/readstat/use-after-free.patch b/user/readstat/use-after-free.patch new file mode 100644 index 000000000..70ea38ffd --- /dev/null +++ b/user/readstat/use-after-free.patch @@ -0,0 +1,37 @@ +From 718d49155e327471ed9bf4a8c157f849f285b46c Mon Sep 17 00:00:00 2001 +From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de> +Date: Wed, 20 Sep 2023 15:18:07 +0200 +Subject: [PATCH] Fix use after free (#298) + +--- + src/bin/readstat.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/bin/readstat.c b/src/bin/readstat.c +index 48b8fdd..e3fbbd1 100644 +--- a/src/bin/readstat.c ++++ b/src/bin/readstat.c +@@ -397,8 +397,6 @@ static int convert_file(const char *input_filename, const char *catalog_filename + module->finish(rs_ctx->module_ctx); + } + +- free(rs_ctx); +- + if (error != READSTAT_OK) { + if (file_exists) { + fprintf(stderr, "Error opening %s: File exists (Use -f to overwrite)\n", output_filename); +@@ -406,9 +404,14 @@ static int convert_file(const char *input_filename, const char *catalog_filename + fprintf(stderr, "Error processing %s: %s\n", rs_ctx->error_filename, readstat_error_message(error)); + unlink(output_filename); + } ++ ++ free(rs_ctx); ++ + return 1; + } + ++ free(rs_ctx); ++ + return 0; + } + diff --git a/user/recode/APKBUILD b/user/recode/APKBUILD index a1bf83b93..743b34184 100644 --- a/user/recode/APKBUILD +++ b/user/recode/APKBUILD @@ -9,7 +9,7 @@ arch="all" options="!check" # Requires unpackaged `cython`. license="GPL-3.0+" depends="" -makedepends="help2man cmd:lex python3" +makedepends="help2man flex python3" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-libs" source="https://github.com/rrthomas/recode/releases/download/v$pkgver/recode-$pkgver.tar.gz" diff --git a/user/redis/APKBUILD b/user/redis/APKBUILD index 0a6f287d8..2d58b308b 100644 --- a/user/redis/APKBUILD +++ b/user/redis/APKBUILD @@ -1,7 +1,7 @@ # Contributor: V.Krishn <vkrishn4@gmail.com> # Maintainer: Alyx Wolcott <alyx@leuhta.com> pkgname=redis -pkgver=6.0.16 +pkgver=7.2.5 pkgrel=0 pkgdesc="Advanced key-value store" url="https://redis.io/" @@ -79,7 +79,7 @@ package() { install } -sha512sums="83bb72448f9943e3d015cb4d961eb2eae21602ef1f90ca52ca8ab7c6918b0ab979db9f61f3981df27b2286894f4864f4588c3a52fa988e30e9419b0967998845 redis-6.0.16.tar.gz +sha512sums="e064a0f380e3a00ab8eb2f10ed7317fd6aa27d64cf00792fab80465036f92d17b166050e71b8a779fdf024528ac736cb54722316811f99951c4e386f4ab2245d redis-7.2.5.tar.gz f768acea3e1868dbf0596085640c83e58d899860d7d647b0965fa858844c494d0a49b229fb417456d83f3e2690e5450950c31e0fa40529df85a9cde38d8981c4 fix-ppc-atomics.patch 856ae98e9e8670801827c3bd793dc14ed2c62c37365f8d04b452d7e1ab97300a0bf18c59b52ea686c2689d53aeed8e29e2c55207d3d4fb1fd8fc7fc820f33157 posix-runtest.patch 91b663f802aea9a473195940d3bf2ce3ca2af4e5b6e61a2d28ebbfe502ef2c764b574b7e87c49e60345d1a5d6b73d12920924c93b26be110c2ce824023347b6f redis.initd diff --git a/user/ripgrep/APKBUILD b/user/ripgrep/APKBUILD index be18ce2e1..5fbb25b33 100644 --- a/user/ripgrep/APKBUILD +++ b/user/ripgrep/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Samuel Holland <samuel@sholland.org> pkgname=ripgrep pkgver=11.0.2 -pkgrel=0 +pkgrel=1 pkgdesc="Recursively searches directories for a regex pattern" url="https://github.com/BurntSushi/ripgrep" arch="all" @@ -124,8 +124,7 @@ check() { package() { export CARGO_HOME="$srcdir/cargo-home" - cargo install --features pcre2 --path . --root="$pkgdir"/usr - rm "$pkgdir"/usr/.crates.toml + cargo install --no-track --features pcre2 --path . --root="$pkgdir"/usr } _zshcomp() { diff --git a/user/ristretto/APKBUILD b/user/ristretto/APKBUILD index f735d44ad..7f535b02d 100644 --- a/user/ristretto/APKBUILD +++ b/user/ristretto/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=ristretto -pkgver=0.13.0 +pkgver=0.13.2 pkgrel=0 pkgdesc="Image viewer for the XFCE desktop environment" url="https://xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a8e25e0fdd2d31a904c616995438b47cf144557f589ed97a551fc5411cd7a3da9edab0c23c955e86c72ed0d10f1efccd61edf0aaf5a82cf601bf3333ea2b332b ristretto-0.13.0.tar.bz2" +sha512sums="ae4eb0159707a793cefe88b681f61e8c2ce41d57a64c7ad33853fc863bb1909b2a48ccf5543d3484f5710e7bf86ecbbd8520fb59eff11368f3a7a7028cd85914 ristretto-0.13.2.tar.bz2" diff --git a/user/rspamd/10-conf-split-workers.patch b/user/rspamd/10-conf-split-workers.patch index 505d2c72e..be8f073e4 100644 --- a/user/rspamd/10-conf-split-workers.patch +++ b/user/rspamd/10-conf-split-workers.patch @@ -36,7 +36,7 @@ upgrading the aport! - -worker "fuzzy" { - bind_socket = "localhost:11335"; -- count = -1; # Disable by default +- count = -1; # Disable by default, see #4677 for details - .include "$CONFDIR/worker-fuzzy.inc" - .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-fuzzy.inc" - .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-fuzzy.inc" diff --git a/user/rspamd/APKBUILD b/user/rspamd/APKBUILD index 2c9699529..a54dba858 100644 --- a/user/rspamd/APKBUILD +++ b/user/rspamd/APKBUILD @@ -5,7 +5,7 @@ # Contributor: Duncan Bellamy <dunk@denkimushi.com> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=rspamd -pkgver=3.2 +pkgver=3.8.4 pkgrel=0 pkgdesc="Fast, free and open-source spam filtering system" url="https://rspamd.com/" @@ -22,6 +22,7 @@ makedepends=" glib-dev icu-dev libevent-dev + libexecinfo-dev libgd-dev libsodium-dev lua5.3 @@ -31,6 +32,7 @@ makedepends=" perl ragel sqlite-dev + zstd-dev " install="$pkgname.pre-install" subpackages=" @@ -55,7 +57,7 @@ build() { if [ "$CBUILD" != "$CHOST" ]; then CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" fi - cmake -B build \ + LDFLAGS="-lexecinfo" cmake -B build \ -DCMAKE_BUILD_TYPE=None \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCONFDIR=/etc/$pkgname \ @@ -67,7 +69,9 @@ build() { -DLUA_LIBRARY=/usr/lib/lua5.3/liblua.so \ -DENABLE_REDIRECTOR=ON \ -DENABLE_URL_INCLUDE=ON \ + -DENABLE_BACKWARD=OFF \ -DENABLE_PCRE2=ON \ + -DSYSTEM_ZSTD=ON \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ "$CMAKE_CROSSOPTS" . @@ -132,7 +136,6 @@ utils() { mkdir -p "$subpkgdir/usr/bin" mv "$pkgdir/usr/bin/${pkgname}-stats" "$subpkgdir/usr/bin/" - mv "$pkgdir/usr/bin/${pkgname}-redirector" "$subpkgdir/usr/bin/" } fuzzy() { @@ -165,8 +168,8 @@ proxy() { mv "$pkgdir/etc/$pkgname"/worker-proxy.* "$subpkgdir/etc/$pkgname/" } -sha512sums="fd3570da24d7f09f48ba6e98c210789b85006c51adaf37336c83a570ef5b9239d4a09491b647464254d3600fbea7c662ec271e9a77ee4108236962490c677a79 rspamd-3.2.tar.gz +sha512sums="dda099dd9a17699d143fc8018b89fbecfa9659eccc26b5fb88bc3f40c47e935993dfc81f1f93bb69880d17af40870e6ea20edbeed7e3f4c12c278f5c12b56a51 rspamd-3.8.4.tar.gz 2efe28575c40d1fba84b189bb872860e744400db80dce2f6330be6c6287fb3f46e6511284729b957488bf40bcb9b0952e26df9934f5f138334bd2766075c45cb rspamd.logrotated 782e1126d32e450a1db0ac822c127b9a763f903093f200bdf603a6a0610a853671b94c89b0bb2d8ebdfb065e0cf62be51c1c7f451e8da34e25f252a276c2b0f3 rspamd.initd a2003ef0c9d64a44480f59302864a2dfedcbe3a0047fcbb655408bc8aae9014b6ad0ddc6b64d4abeeb21bea0f86678afd30589ac8eed83e07ad7f87710e93702 rspamd.confd -a8aefee649bf6630339d1d3f2bb20c25ca70b21a8eaa92951e926d0fd4525f1d4ac4cc7ea66ac2b15323cf02c93c759ddf7181502f0d71b21384ced9d88c008e 10-conf-split-workers.patch" +0321c76b42131943f7b53efeb6bbd1c5b732fdec4f796838568af45d245066518f8b2ccd667d5a370df539ba73dda47e66d4ce0eeb211ef6fc5942e96c2e311b 10-conf-split-workers.patch" diff --git a/user/rttr/APKBUILD b/user/rttr/APKBUILD index 58d0bb293..a4e5385db 100644 --- a/user/rttr/APKBUILD +++ b/user/rttr/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=rttr pkgver=0.9.6 -pkgrel=0 +pkgrel=1 pkgdesc="C++ reflection library" url=" " arch="all" @@ -15,6 +15,11 @@ source="https://github.com/rttrorg/rttr/releases/download/v$pkgver/rttr-$pkgver- dlclose-doesnt-work.patch install-doc.patch permissions.patch + header.patch + clang.patch + no-pessimising-moves.patch + gcc9.patch + show-warnings-not-error-out.patch " build() { @@ -26,7 +31,7 @@ build() { -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=True \ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=class-memaccess -DNDEBUG" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-deprecated-declarations -Wno-pessimizing-move -DNDEBUG" \ ${CMAKE_CROSSOPTS} . make } @@ -43,4 +48,9 @@ sha512sums="7e0d4fa87f83feda0b926d4d0e52aaf0f369f25fe7e23e5ffe86c0bba159e8353cef 559b4d55109b7021082cdd15663075312d80a896325db2b6bba43bf9d3ba17ecc2152aa30617f200be904351c7f8ba188b7e7a6b29a71612b42d48a5a0535aa7 arm64.patch 76efa45715d2a6459ae3cf5a6189de414775eed11a1f6780de563005765139ae6be86e30ead63b5ef8e9a5e84ba77a4ef2b7a75ded7506c6c8d81a696a887ff3 dlclose-doesnt-work.patch 825ca43fb35f6139db13f0b01818b49bb1556a1190ac2941c643e4d438c5b458883fa2ffb64d95625125c251632da7b3d8b703141335df8883b6e186f2e6a349 install-doc.patch -905e4c62093ee3877a8a15a1cbd4bc20499e04916ce869a495cf4ef9f47aa94d56aa5ac861d0ca8b6079f2a3b398f92237dc423e452130f7c40b9a170a8aa625 permissions.patch" +905e4c62093ee3877a8a15a1cbd4bc20499e04916ce869a495cf4ef9f47aa94d56aa5ac861d0ca8b6079f2a3b398f92237dc423e452130f7c40b9a170a8aa625 permissions.patch +75ff5e06f92c94db6b7c04846bfff1dcde22b81831a40ad7533cd93fc9ca300c76ca1266081ac4784bc3b94a8b805db28b841702b10d66232c1110d57c812245 header.patch +3bbdc8feb9b64b4a9f0db138ea0612e3e5a57004fda8b856c30a5f05824009543f396654c6ef3b6e157ce62c7057a239029dd35c749387d9ad91dcc4ac2c00e4 clang.patch +3e7f81db25f0af6a3924e693d30cb5895fbc13dd3eac752d66082ae34c08fc779de086764f63f52170399cb85c5cf87ef182bdc8d8f054fd7f085bc90e779dc8 no-pessimising-moves.patch +2dda29b06484bfad15fefe919bce30ab1b6a6f0b9aec10a09736e1018565151cb675874484b4bb573d27d0742fe5943e002074cfa9f822fc1d3888fd3c8a9dc0 gcc9.patch +f42539edff3b08cf2938a489a9163e3ab81fd43422de1b22a23bae8ef198554f46b5ded4e6f09fb2840fbdd711385563bedcdbb9238569ff7c9484b84eb7bc53 show-warnings-not-error-out.patch" diff --git a/user/rttr/clang.patch b/user/rttr/clang.patch new file mode 100644 index 000000000..9d1a5431b --- /dev/null +++ b/user/rttr/clang.patch @@ -0,0 +1,141 @@ +From 1a357c61e8bc75d6b1a6b8cc88142fbed25a70e9 Mon Sep 17 00:00:00 2001 +From: acki-m <acki-m@users.noreply.github.com> +Date: Fri, 14 Sep 2018 08:50:00 +0200 +Subject: [PATCH] Bugfix clang virtual override warning (#192) + +* fixed missing use of 'override' in classes that use RTTR_ENABLE + +following test case: + +struct s_base +{ +virtual ~s_base() = default; // always use virtual dtor in base class +RTTR_ENABLE() +}; + +struct s_derived : s_base +{ +~s_derived() override = default; +// Clang options require "override" on inherited virtual functions +RTTR_ENABLE(s_base) +}; + +clang warning is: 'get_derived_info' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] + +The fix is to disable the warning for the usage of RTTR_ENABLE only + +* add test case code in unit test for warning of override inconsistency + +* added missing quotes +--- + src/rttr/detail/base/core_prerequisites.h | 21 +++++++++++++++++-- + src/rttr/rttr_enable.h | 2 ++ + .../property/property_class_inheritance.cpp | 4 ++++ + 3 files changed, 25 insertions(+), 2 deletions(-) + +diff --git a/src/rttr/detail/base/core_prerequisites.h b/src/rttr/detail/base/core_prerequisites.h +index d9fc0a22..f60d91c3 100644 +--- a/src/rttr/detail/base/core_prerequisites.h ++++ b/src/rttr/detail/base/core_prerequisites.h +@@ -261,15 +261,21 @@ namespace rttr + # define RTTR_BEGIN_DISABLE_CONDITIONAL_EXPR_WARNING + # define RTTR_END_DISABLE_CONDITIONAL_EXPR_WARNING + #if RTTR_COMP_VER >= 700 +- + #define RTTR_BEGIN_DISABLE_EXCEPT_TYPE_WARNING _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wnoexcept-type\"") + #define RTTR_END_DISABLE_EXCEPT_TYPE_WARNING _Pragma ("GCC diagnostic pop") + #else +- + #define RTTR_BEGIN_DISABLE_EXCEPT_TYPE_WARNING + #define RTTR_END_DISABLE_EXCEPT_TYPE_WARNING ++#endif + ++#if RTTR_COMP_VER >= 510 ++# define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wsuggest-override\"") ++# define RTTR_END_DISABLE_OVERRIDE_WARNING _Pragma ("GCC diagnostic pop") ++# else ++# define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING ++# define RTTR_END_DISABLE_OVERRIDE_WARNING + #endif + + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((constructor)) +@@ -298,6 +304,15 @@ namespace rttr + # define RTTR_END_DISABLE_EXCEPT_TYPE_WARNING + #endif + ++#if defined(__has_warning) && __has_warning("-Winconsistent-missing-override") ++# define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING _Pragma ("clang diagnostic push") \ ++ _Pragma ("clang diagnostic ignored \"-Winconsistent-missing-override\"") ++# define RTTR_END_DISABLE_OVERRIDE_WARNING _Pragma ("clang diagnostic pop") ++#else ++# define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING ++# define RTTR_END_DISABLE_OVERRIDE_WARNING ++#endif ++ + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((__constructor__)) + # define RTTR_DECLARE_PLUGIN_DTOR __attribute__((__destructor__)) + +@@ -315,6 +330,8 @@ namespace rttr + # define RTTR_END_DISABLE_EXCEPT_TYPE_WARNING + # define RTTR_DECLARE_PLUGIN_CTOR + # define RTTR_DECLARE_PLUGIN_DTOR ++# define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING ++# define RTTR_END_DISABLE_OVERRIDE_WARNING + + #else + # pragma message("WARNING: unknown compiler, don't know how to disable deprecated warnings") +diff --git a/src/rttr/rttr_enable.h b/src/rttr/rttr_enable.h +index 1bd2e774..93d0fadd 100644 +--- a/src/rttr/rttr_enable.h ++++ b/src/rttr/rttr_enable.h +@@ -81,10 +81,12 @@ + + #define RTTR_ENABLE(...) \ + public:\ ++RTTR_BEGIN_DISABLE_OVERRIDE_WARNING \ + virtual RTTR_INLINE rttr::type get_type() const { return rttr::detail::get_type_from_instance(this); } \ + virtual RTTR_INLINE void* get_ptr() { return reinterpret_cast<void*>(this); } \ + virtual RTTR_INLINE rttr::detail::derived_info get_derived_info() { return {reinterpret_cast<void*>(this), rttr::detail::get_type_from_instance(this)}; } \ + using base_class_list = TYPE_LIST(__VA_ARGS__); \ ++RTTR_END_DISABLE_OVERRIDE_WARNING \ + private: + + #endif // DOXYGEN +diff --git a/src/unit_tests/property/property_class_inheritance.cpp b/src/unit_tests/property/property_class_inheritance.cpp +index 3618ac5c..e10c795c 100644 +--- a/src/unit_tests/property/property_class_inheritance.cpp ++++ b/src/unit_tests/property/property_class_inheritance.cpp +@@ -56,6 +56,7 @@ struct left : virtual top + { + + left() : _p2(true){} ++ ~left() override = default; + bool _p2; + + RTTR_ENABLE(top) +@@ -67,6 +68,7 @@ struct right : virtual top + { + + right() : _p3(true){} ++ ~right() override = default; + bool _p3; + + RTTR_ENABLE(top) +@@ -77,6 +79,7 @@ struct right : virtual top + struct right_2 + { + virtual ~right_2() {} ++ + right_2() : _p4(true){} + bool _p4; + RTTR_ENABLE() +@@ -87,6 +90,7 @@ struct right_2 + struct bottom : left, right, right_2 + { + bottom() : _p5(23.0){} ++ ~bottom() override = default; + + double _p5; + diff --git a/user/rttr/gcc9.patch b/user/rttr/gcc9.patch new file mode 100644 index 000000000..4e438859e --- /dev/null +++ b/user/rttr/gcc9.patch @@ -0,0 +1,103 @@ +From 7edbd580cfad509a3253c733e70144e36f02ecd4 Mon Sep 17 00:00:00 2001 +From: Axel Menzel <info@axelmenzel.de> +Date: Sun, 8 Aug 2021 12:27:15 +0200 +Subject: [PATCH] add github actions workflow & disable gcc9 warnings + +Additional: disable initializer list warning +--- + .github/workflows/linux.yml | 23 +++++++++++++++++++ + src/rttr/detail/base/core_prerequisites.h | 15 ++++++++++++ + src/rttr/detail/variant/variant_data_policy.h | 3 ++- + 3 files changed, 40 insertions(+), 1 deletion(-) + create mode 100644 .github/workflows/linux.yml + +diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml +new file mode 100644 +index 00000000..c232943e +--- /dev/null ++++ b/.github/workflows/linux.yml +@@ -0,0 +1,23 @@ ++name: Linux ++ ++on: [push] ++env: ++ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) ++ BUILD_TYPE: Release ++ ++jobs: ++ build: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/checkout@v2 ++ - uses: seanmiddleditch/gha-setup-ninja@master ++ ++ - name: Configure CMake ++ run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_EXAMPLES=OFF -G Ninja ++ ++ - name: Build ++ run: cmake --build ${{github.workspace}}/build ++ ++ - name: Test ++ run: cmake --build ${{github.workspace}}/build --target run_tests +diff --git a/src/rttr/detail/base/core_prerequisites.h b/src/rttr/detail/base/core_prerequisites.h +index 6aa29d77..601ddeb9 100644 +--- a/src/rttr/detail/base/core_prerequisites.h ++++ b/src/rttr/detail/base/core_prerequisites.h +@@ -278,6 +278,15 @@ namespace rttr + # define RTTR_END_DISABLE_OVERRIDE_WARNING + #endif + ++#if RTTR_COMP_VER >= 900 ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Winit-list-lifetime\"") ++# define RTTR_END_DISABLE_INIT_LIST_WARNING _Pragma ("GCC diagnostic pop") ++# else ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING ++#endif ++ + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((constructor)) + # define RTTR_DECLARE_PLUGIN_DTOR __attribute__((destructor)) + +@@ -313,6 +322,10 @@ namespace rttr + # define RTTR_END_DISABLE_OVERRIDE_WARNING + #endif + ++ ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING ++ + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((__constructor__)) + # define RTTR_DECLARE_PLUGIN_DTOR __attribute__((__destructor__)) + +@@ -332,6 +345,8 @@ namespace rttr + # define RTTR_DECLARE_PLUGIN_DTOR + # define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING + # define RTTR_END_DISABLE_OVERRIDE_WARNING ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING + + #else + # pragma message("WARNING: unknown compiler, don't know how to disable deprecated warnings") +diff --git a/src/rttr/detail/variant/variant_data_policy.h b/src/rttr/detail/variant/variant_data_policy.h +index 39dbb2f9..8eeaafbe 100644 +--- a/src/rttr/detail/variant/variant_data_policy.h ++++ b/src/rttr/detail/variant/variant_data_policy.h +@@ -434,7 +434,7 @@ struct variant_data_policy_big : variant_data_base_policy<T, variant_data_policy + { + delete &value; + } +- ++RTTR_BEGIN_DISABLE_INIT_LIST_WARNING + static RTTR_INLINE void clone(const T& value, variant_data& dest) + { + reinterpret_cast<T*&>(dest) = new T(value); +@@ -450,6 +450,7 @@ struct variant_data_policy_big : variant_data_base_policy<T, variant_data_policy + { + reinterpret_cast<T*&>(dest) = new T(std::forward<U>(value)); + } ++RTTR_END_DISABLE_INIT_LIST_WARNING + }; + + ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/user/rttr/header.patch b/user/rttr/header.patch new file mode 100644 index 000000000..ee908775b --- /dev/null +++ b/user/rttr/header.patch @@ -0,0 +1,21 @@ +From b16fccf0fbbbf94064bf2a6c7c47f2b910ab31f1 Mon Sep 17 00:00:00 2001 +From: Veawor Liu <veawor@gmail.com> +Date: Tue, 22 Oct 2019 05:04:47 +0800 +Subject: [PATCH] Fixed compiler errors. (#253) + +--- + src/rttr/variant.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/rttr/variant.h b/src/rttr/variant.h +index cec094b0..40978e3b 100644 +--- a/src/rttr/variant.h ++++ b/src/rttr/variant.h +@@ -38,6 +38,7 @@ + #include <cstddef> + #include <cstdint> + #include <algorithm> ++#include <string> + + namespace rttr + { diff --git a/user/rttr/no-pessimising-moves.patch b/user/rttr/no-pessimising-moves.patch new file mode 100644 index 000000000..7ca6655fc --- /dev/null +++ b/user/rttr/no-pessimising-moves.patch @@ -0,0 +1,65 @@ +From ea1e41f02ca1e32a9bbb731fec05708101c0e03f Mon Sep 17 00:00:00 2001 +From: Andrey Davydov <andrey.a.davydov@gmail.com> +Date: Mon, 6 Jan 2020 15:11:47 +0300 +Subject: [PATCH] fix pessimizing moves + +--- + src/rttr/detail/registration/bind_impl.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/rttr/detail/registration/bind_impl.h b/src/rttr/detail/registration/bind_impl.h +index 7bb63278..606398a4 100644 +--- a/src/rttr/detail/registration/bind_impl.h ++++ b/src/rttr/detail/registration/bind_impl.h +@@ -295,7 +295,7 @@ class registration::bind<detail::ctor_func, Class_Type, F, acc_level, Visitor_Li + std::move(get_metadata(std::forward<Args>(args)...)), + std::move(get_default_args<type_list<Acc_Func>, function_type>(std::forward<Args>(args)...)), + std::move(create_param_infos<type_list<F>, function_type>(std::forward<Args>(args)...))); +- return std::move(ctor); ++ return ctor; + } + public: + bind(const std::shared_ptr<detail::registration_executer>& reg_exec, F func) +@@ -397,6 +397,6 @@ class registration::bind<detail::prop, Class_Type, A, acc_level, Visitor_List> : + getter_policy, setter_policy, + Metadata_Count>>(name, type::get<Class_Type>(), acc, std::move(metadata_list)); +- return std::move(prop); ++ return prop; + } + + public: +@@ -491,6 +491,6 @@ class registration::bind<detail::prop, Class_Type, A1, A2, acc_level, Visitor_Li + Metadata_Count>>(name, type::get<Class_Type>(), + getter, setter, std::move(metadata_list)); +- return std::move(prop); ++ return prop; + } + + public: +@@ -583,7 +583,7 @@ class registration::bind<detail::prop_readonly, Class_Type, A, acc_level, Visito + > + >(name, acc, std::move(metadata_list)); + +- return std::move(prop); ++ return prop; + } + + public: +@@ -678,7 +678,7 @@ class registration::bind<detail::meth, Class_Type, F, acc_level, Visitor_List> : + std::move(get_metadata(std::forward<Args>(args)...)), + std::move(get_default_args<type_list<Acc_Func>, function_type>(std::forward<Args>(args)...)), + std::move(create_param_infos<type_list<F>, function_type>(std::forward<Args>(args)...)) ); +- return std::move(meth); ++ return meth; + } + + template<typename Policy, std::size_t Metadata_Count, typename...TArgs, typename...Param_Args> +@@ -791,7 +791,7 @@ class registration::bind<detail::enum_, Class_Type, Enum_Type> : public registra + std::move(get_metadata(std::forward<Args>(args)...))); + + +- return std::move(enum_wrapper); ++ return enum_wrapper; + } + + public: diff --git a/user/rttr/show-warnings-not-error-out.patch b/user/rttr/show-warnings-not-error-out.patch new file mode 100644 index 000000000..11d332048 --- /dev/null +++ b/user/rttr/show-warnings-not-error-out.patch @@ -0,0 +1,16 @@ +diff -ur a/CMake/utility.cmake b/CMake/utility.cmake +--- a/CMake/utility.cmake 2024-06-04 17:45:24.308248159 +0000 ++++ b/CMake/utility.cmake 2024-06-04 17:46:10.476409691 +0000 +@@ -392,10 +392,10 @@ + #################################################################################### + function( set_compiler_warnings target) + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +- set(WARNINGS "-Werror" ++ set(WARNINGS "-Wextra" + "-Wall") + elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- set(WARNINGS "-Werror" ++ set(WARNINGS "-Wextra" + "-Wall") + elseif(MSVC) + set(WARNINGS "/WX" diff --git a/user/rxvt-unicode/APKBUILD b/user/rxvt-unicode/APKBUILD index bae5feaa3..ed074972a 100644 --- a/user/rxvt-unicode/APKBUILD +++ b/user/rxvt-unicode/APKBUILD @@ -4,16 +4,17 @@ # Contributor: Ariadne Conill <ariadne@dereferenced.org> # Maintainer: Max Rees <maxcrees@me.com> pkgname=rxvt-unicode -pkgver=9.22 -pkgrel=4 +pkgver=9.31 +pkgrel=1 pkgdesc="Fork of the rxvt terminal emulator with improved unicode support" url="http://software.schmorp.de/pkg/rxvt-unicode.html" arch="all" options="!check" # No test suite. license="(GPL-2.0+ OR BSD-2-Clause) AND GPL-2.0+ AND GPL-3.0+" depends="$pkgname-terminfo" -makedepends="libx11-dev libxft-dev ncurses fontconfig-dev utmps-dev - gdk-pixbuf-dev libxrender-dev perl-dev startup-notification-dev" +makedepends="libx11-dev libxft-dev ncurses fontconfig-dev libptytty-dev + gdk-pixbuf-dev libxrender-dev perl-dev startup-notification-dev + libxext-dev" subpackages="$pkgname-doc $pkgname-terminfo::noarch" source="http://dist.schmorp.de/$pkgname/Attic/$pkgname-$pkgver.tar.bz2 gentables.patch @@ -21,8 +22,7 @@ source="http://dist.schmorp.de/$pkgname/Attic/$pkgname-$pkgver.tar.bz2 " build() { - export CXXFLAGS="$CXXFLAGS -DWTMPX_FILE=\\\"\"/run/utmps/wtmp\"\\\"" - LIBS="-lutmps -lskarnet" ./configure \ + ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ @@ -63,6 +63,6 @@ terminfo() { mv "$pkgdir"/usr/share/terminfo "$subpkgdir"/usr/share/terminfo } -sha512sums="b39f1b2cbe6dd3fbd2a0ad6a9d391a2b6f49d7c5e67bc65fe44a9c86937f8db379572c67564c6e21ff6e09b447cdfd4e540544e486179e94da0e0db679c04dd9 rxvt-unicode-9.22.tar.bz2 +sha512sums="4d14ecbbb62de1b1c717277f5aae5cfb536e11392f2d4b82c884c1713f437fce8e9dd69a328fa353a55d068d8ee4121a31900f45191acec172d5dc76652b6255 rxvt-unicode-9.31.tar.bz2 a45074b8fe39ffb712bd53b03521a8611fe5887a97ea09c1e85a7086de1042dd0360269803ffe5fcc56425af3c0cc3a55c214b2ef0fcfa2c3a298b4b37d261cb gentables.patch -42314393f7f061f1aa2cf2fedd3d84e96d3104868b0629cefd9e9b313529afde52127a412992e76935fa2de8d4e685d6b5ce42162cb8d1b0365de63d10c11925 kerning.patch" +e4e9a05e006a555a8ee6df66dd8d4e93beb9f4e07fd4a889f53dc7ca8cbb49f3c8be140b51bcb26de62e505f3852877aff25f03c6872752133255bbeda291fb8 kerning.patch" diff --git a/user/rxvt-unicode/kerning.patch b/user/rxvt-unicode/kerning.patch index a29a6f608..6897ba364 100644 --- a/user/rxvt-unicode/kerning.patch +++ b/user/rxvt-unicode/kerning.patch @@ -1,6 +1,6 @@ --- a/src/rxvtfont.C 2008-07-09 12:21:45.000000000 +0400
+++ b/src/rxvtfont.C 2009-10-30 14:32:53.000000000 +0300
-@@ -1195,12 +1195,14 @@
+@@ -1304,12 +1304,14 @@
XGlyphInfo g;
XftTextExtents16 (disp, f, &ch, 1, &g);
diff --git a/user/s6-dns/APKBUILD b/user/s6-dns/APKBUILD index a20b8d74d..fe725f999 100644 --- a/user/s6-dns/APKBUILD +++ b/user/s6-dns/APKBUILD @@ -1,17 +1,18 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-dns -pkgver=2.3.5.5 +pkgver=2.3.7.2 pkgrel=0 pkgdesc="skarnet.org's DNS client libraries and command-line DNS client utilities" url="https://skarnet.org/software/s6-dns/" arch="all" options="!check" license="ISC" -_skalibs_version=2.13 +_skalibs_version=2.14 depends="" -makedepends="skalibs-dev>=$_skalibs_version skalibs-libs-dev>=$_skalibs_version" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" build() { @@ -28,35 +29,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/usr/lib" - mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir/usr/lib/" -} - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/include" "$subpkgdir/usr/lib" - mv "$pkgdir/usr/include" "$subpkgdir/usr/" - mv "$pkgdir"/usr/lib/*.a "$subpkgdir/usr/lib/" -} - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/usr/lib" - mv "$pkgdir"/usr/lib/*.so "$subpkgdir/usr/lib/" -} - -doc() { - default_doc - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="7d7435da8fab3dd8f872c4dd90338fae2b817b4cb1e4715cc86d77b4c1f58e931bdeb1385093f6bd6293951f97f765fb6372af5560042ae84b5bd53ecc2645c2 s6-dns-2.3.5.5.tar.gz" +sha512sums="4dc89e3b8ba22e4e63e8e5a84432ce444865712755c600b4bc62b49dda13c09c372ff2169b0db4790d0f07c392005dda76ed1df5ef8335d2f382d09919b53eae s6-dns-2.3.7.2.tar.gz" diff --git a/user/s6-linux-utils/APKBUILD b/user/s6-linux-utils/APKBUILD index 12e2784ee..d232f09d8 100644 --- a/user/s6-linux-utils/APKBUILD +++ b/user/s6-linux-utils/APKBUILD @@ -1,16 +1,16 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-linux-utils -pkgver=2.6.1.2 -pkgrel=0 +pkgver=2.6.2.0 +pkgrel=1 pkgdesc="skarnet.org's Linux-specific miscellaneous utilities" url="https://skarnet.org/software/s6-linux-utils/" arch="all" options="!check" license="ISC" -_skalibs_version=2.13.1 +_skalibs_version=2.14 depends="" -makedepends="skalibs-dev>=$_skalibs_version skalibs-libs-dev>=$_skalibs_version" +makedepends="skalibs-dev>=$_skalibs_version" subpackages="$pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" @@ -24,14 +24,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="7afb268719410e93c711d20532118d6dcc338ebdf9a12c18ba794e1a23acb9ed264133838e89cc0e26fbed1bfacb0d2eb20efc9dc9bddffa0a74f9bc2c17cdb7 s6-linux-utils-2.6.1.2.tar.gz" +sha512sums="b7bc96ef3aa81bc01c6ca2a82591201be0966d8aa2b71545c963f67dba8441a05631e0ea593f0a693ee04d6d2637754e9543eddbfe70ed9c0529ff49081aa54d s6-linux-utils-2.6.2.0.tar.gz" diff --git a/user/s6-networking/APKBUILD b/user/s6-networking/APKBUILD index 80dea1c31..f99d5a2e8 100644 --- a/user/s6-networking/APKBUILD +++ b/user/s6-networking/APKBUILD @@ -1,17 +1,18 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-networking -pkgver=2.5.1.3 +pkgver=2.7.0.3 pkgrel=0 pkgdesc="skarnet.org's UCSPI TCP and TLS tools, access control tools, and network time management utilities." -url="https://skarnet.org/software/$pkgname/" +url="https://skarnet.org/software/s6-networking/" arch="all" options="!check" # No test suite. license="ISC" -_skalibs_version=2.13 +_skalibs_version=2.14.1 depends="execline" -makedepends="skalibs-dev>=$_skalibs_version skalibs-libs-dev>=$_skalibs_version execline-dev s6-dev s6-libs-dev s6-dns-dev s6-dns-libs-dev bearssl-dev" -subpackages="$pkgname-libs $pkgname-dev $pkgname-libs-dev:libsdev $pkgname-doc" +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev execline-dev s6-dev s6-dns-dev bearssl-dev" +subpackages="$pkgname-dev $pkgname-libs $pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" build() { @@ -29,37 +30,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -libs() { - pkgdesc="$pkgdesc (shared libraries)" - depends="skalibs-libs>=$_skalibs_version" - mkdir -p "$subpkgdir/usr/lib" - mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir/usr/lib/" -} - -dev() { - pkgdesc="$pkgdesc (development files)" - depends="skalibs-dev>=$_skalibs_version" - install_if="dev $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/include" "$subpkgdir/usr/lib" - mv "$pkgdir/usr/include" "$subpkgdir/usr/" - mv "$pkgdir"/usr/lib/*.a "$subpkgdir/usr/lib/" -} - -libsdev() { - pkgdesc="$pkgdesc (development files for dynamic linking)" - depends="$pkgname-dev" - mkdir -p "$subpkgdir/usr/lib" - mv "$pkgdir"/usr/lib/*.so "$subpkgdir/usr/lib/" -} - -doc() { - pkgdesc="$pkgdesc (documentation)" - depends="" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="abc90d374a24507998041fd8dcd5f9c2d91bf94046e3da8d324546471f482b5929d863bd2bc846581da32f6c980ef5c2e5d6780655c757316ef0b67e37c72a19 s6-networking-2.5.1.3.tar.gz" +sha512sums="50d369303bd448d09a3f6431e64fb0f0b13383c92764b499ed881af3a6a8c4f779f1f9d98341943f6fdc8b18d16df444897d3750212df89efd838b6de562eede s6-networking-2.7.0.3.tar.gz" diff --git a/user/s6-portable-utils/APKBUILD b/user/s6-portable-utils/APKBUILD index b2a55f4d0..0a4386fe4 100644 --- a/user/s6-portable-utils/APKBUILD +++ b/user/s6-portable-utils/APKBUILD @@ -1,16 +1,16 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=s6-portable-utils -pkgver=2.3.0.1 -pkgrel=0 +pkgver=2.3.0.3 +pkgrel=1 pkgdesc="skarnet.org's portable miscellaneous utilities" url="https://skarnet.org/software/s6-portable-utils/" arch="all" options="!check" license="ISC" -_skalibs_version=2.13.1 +_skalibs_version=2.14 depends="" -makedepends="skalibs-dev>=$_skalibs_version skalibs-libs-dev>=$_skalibs_version" +makedepends="skalibs-dev>=$_skalibs_version" subpackages="$pkgname-doc" source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz" @@ -24,13 +24,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -doc() { - pkgdesc="$pkgdesc (documentation)" - install_if="docs $pkgname=$pkgver-r$pkgrel" - mkdir -p "$subpkgdir/usr/share/doc" - cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname" -} - -sha512sums="46f4a09d124e44b9b2ac3b8fa8f7b4492207f0a03a052e7b15309aeea175682f7366ff74fbd8a2732952c8f3bbb2fcc69b4bca89609b690e91d167bd25c16b90 s6-portable-utils-2.3.0.1.tar.gz" +sha512sums="f75242ac6c06ffd5bd66b8a35bbdf39938cf3bfa6e79abd214af37e9e4acc732ca1760566862482bc964a5cca05bbce8bd24d7167b02dc66c5f397c85ee0d37f s6-portable-utils-2.3.0.3.tar.gz" diff --git a/user/sane/APKBUILD b/user/sane/APKBUILD index d9f618013..2eade25c0 100644 --- a/user/sane/APKBUILD +++ b/user/sane/APKBUILD @@ -3,16 +3,17 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=sane _pkgname=sane-backends -pkgver=1.0.30 +pkgver=1.3.1 +_hash=83bdbb6c9a115184c2d48f1fdc6847db pkgrel=0 pkgdesc="Scanner access library" url="http://www.sane-project.org/" arch="all" -license="GPL-2.0+ AND GPL-2.0+-with-sane-exception AND Public-Domain" +license="GPL-2.0+ AND Public-Domain" depends="" makedepends="diffutils file libtool libusb-dev v4l-utils-dev net-snmp-dev libpng-dev libjpeg-turbo-dev tiff-dev libgphoto2-dev libieee1284-dev - linux-headers ncurses-dev" + libxml2-dev linux-headers ncurses-dev python3-dev" install="saned.pre-install $pkgname.pre-install" pkgusers="saned" pkggroups="scanner" @@ -37,9 +38,8 @@ done subpackages="$pkgname-doc $pkgname-dev $subpackages $pkgname-utils saned saned-openrc:openrc:noarch $pkgname-udev::noarch $_pkgname::noarch $pkgname-lang" -source="https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-1.0.30.tar.gz +source="https://gitlab.com/sane-project/backends/uploads/$_hash/$_pkgname-$pkgver.tar.gz saned.initd - endian.patch include.patch network.patch pidfile.patch @@ -139,11 +139,10 @@ _backend() { fi } -sha512sums="e9f4ab1f21d5ab0e09b101389c325947824945af968f08b307485f79d4dc4c134b8a1979fb0cf0cfa72435abffe70d0060748a2c2ec46514eb15a0442ee181a5 sane-backends-1.0.30.tar.gz +sha512sums="c6c12bce5242fcdf208f034cc544605cad36fad60316cb51f0e1f6fe23d1566823778c7af4b0fc94ca4154e2cd3e38a9202073e4a4af05f641c3da081722a535 sane-backends-1.3.1.tar.gz 0a06eaa28b345202f2bdf8361e06f843bb7a010b7d8f80132f742672c94249c43f64031cefa161e415e2e2ab3a53b23070fb63854283f9e040f5ff79394ac7d1 saned.initd -c7523b2684726cf35c0b251fe2e1863120284ff6ea3f93b53feb5dfa020c1e383910ecdd1a0c77a2289912ac4fd355cb3c743ea3706dab1bcf0a3412e1d0fbcc endian.patch 1779ff8beb1ba5f9238c25d819a7f0045f7e257c19b511315feb85650e445ca86450a9e1d7ff8650499d3dae808589a6c2e358d5f3f39a3f40ce4999179b86d6 include.patch -dfeaef3c94c3e66b1cfb27348b8e1f3620143fd9a41e3c0b33d9c16f9bc4af2b20e40c83fec385c5765e8c3a812a00508bccdf8f27d571cfc0d8fac9dee41205 network.patch -8f0a1529a5793bc78422419b674963b543527c932476c9ea2d92ea0ad0a286691da306020824c1aaa0b35929f571480d21d7fc464a9f652e15664854c75a4cea pidfile.patch +ef5d572bd29463e0690f6b45ddc609045ba6e40ab7c6bdab065b9480eef38884604650fd390d2a3c46b1f13b228e700392a6f635b4d7372130de6b2106208405 network.patch +30ef4a151e896ad415bab5e6a2963611321ff39d4b91d591d2678a5f73b1cd809f90855f970edec3d944aa0f48fb2902c20184794f941312b849e7ab44967030 pidfile.patch 4de6f60452c0451769f5ce41e41ca4c2867a723e0d2bf22796dc8a266359bdc8a9e9542f4ba2dc42b15bd25b1c83d2c339177796043fdbcbc9d73ad4957f723c check.patch -de2bd02d02e9a2d061d7c5783d3e4e64e9a68e83b15adc122946efff369ad5e382bd918a9585f5fe99ede546f002bb3db0f1b54306f4409fde38b2e26c008162 BTS-304.patch" +9c4877335531415df4aa37d797927765076f2e98d7301e057b24d5e45a696b75e86140eec403a599508c270ff63faf29b07ced6591a647ff48d280edcab70208 BTS-304.patch" diff --git a/user/sane/BTS-304.patch b/user/sane/BTS-304.patch index 64b7dca02..6d36589e9 100644 --- a/user/sane/BTS-304.patch +++ b/user/sane/BTS-304.patch @@ -2,7 +2,7 @@ diff --git a/backend/genesys/image_pixel.cpp b/backend/genesys/image_pixel.cpp index 1b83e127d..1ebba7fe0 100644 --- a/backend/genesys/image_pixel.cpp +++ b/backend/genesys/image_pixel.cpp -@@ -46,6 +46,7 @@ +@@ -23,6 +23,7 @@ #include "image.h" #include <array> @@ -10,7 +10,7 @@ index 1b83e127d..1ebba7fe0 100644 namespace genesys { -@@ -207,7 +208,7 @@ void set_pixel_to_row(std::uint8_t* data, std::size_t x, Pixel pixel, PixelForma +@@ -184,7 +185,7 @@ void set_pixel_to_row(std::uint8_t* data, std::size_t x, Pixel pixel, PixelForma float val = (pixel.r >> 8) * 0.3f; val += (pixel.g >> 8) * 0.59f; val += (pixel.b >> 8) * 0.11f; @@ -19,7 +19,7 @@ index 1b83e127d..1ebba7fe0 100644 return; } case PixelFormat::I16: { -@@ -215,7 +216,7 @@ void set_pixel_to_row(std::uint8_t* data, std::size_t x, Pixel pixel, PixelForma +@@ -192,7 +193,7 @@ void set_pixel_to_row(std::uint8_t* data, std::size_t x, Pixel pixel, PixelForma float val = pixel.r * 0.3f; val += pixel.g * 0.59f; val += pixel.b * 0.11f; diff --git a/user/sane/endian.patch b/user/sane/endian.patch deleted file mode 100644 index f55f01ecc..000000000 --- a/user/sane/endian.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e1934720c687ed8c6125c75ac658f55b4e1513ce Mon Sep 17 00:00:00 2001 -From: Luiz Angelo Daros de Luca <luizluca@gmail.com> -Date: Sun, 2 Feb 2020 21:19:15 -0300 -Subject: [PATCH] genesys: fix bigendian build - -Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> ---- - backend/genesys/low.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/backend/genesys/low.cpp b/backend/genesys/low.cpp -index 1e1b632bf..cbb43b045 100644 ---- a/backend/genesys/low.cpp -+++ b/backend/genesys/low.cpp -@@ -546,7 +546,7 @@ Image read_unshuffled_image_from_scanner(Genesys_Device* dev, const ScanSession& - } - - #ifdef WORDS_BIGENDIAN -- if (depth == 16) { -+ if (session.params.depth == 16) { - dev->pipeline.push_node<ImagePipelineNodeSwap16BitEndian>(); - } - #endif --- -2.24.1 - diff --git a/user/sane/network.patch b/user/sane/network.patch index 845bf9913..a8f53cfce 100644 --- a/user/sane/network.patch +++ b/user/sane/network.patch @@ -1,6 +1,6 @@ --- sane-backends-1.0.30/sanei/sanei_tcp.c 2020-05-17 06:54:18.000000000 -0500 +++ sane-backends-1.0.30/sanei/sanei_tcp.c 2020-06-10 14:10:06.980398975 -0500 -@@ -46,6 +46,7 @@ +@@ -44,6 +44,7 @@ #include <stdlib.h> #include <string.h> #include <limits.h> @@ -8,7 +8,7 @@ #ifndef SSIZE_MAX #define SSIZE_MAX LONG_MAX -@@ -130,6 +131,7 @@ sanei_tcp_read(int fd, u_char * buf, siz +@@ -128,6 +130,7 @@ sanei_tcp_read(int fd, u_char * buf, siz { size_t bytes_recv = 0; ssize_t rc = 1; @@ -16,7 +16,7 @@ if (count > SSIZE_MAX) { errno = EINVAL; -@@ -139,9 +141,21 @@ sanei_tcp_read(int fd, u_char * buf, siz +@@ -137,9 +139,21 @@ sanei_tcp_read(int fd, u_char * buf, siz while (bytes_recv < count && rc > 0) { rc = recv(fd, buf+bytes_recv, count-bytes_recv, 0); diff --git a/user/sane/pidfile.patch b/user/sane/pidfile.patch index 32989f651..579c99939 100644 --- a/user/sane/pidfile.patch +++ b/user/sane/pidfile.patch @@ -1,6 +1,6 @@ --- a/frontend/saned.c +++ b/frontend/saned.c -@@ -229,7 +229,7 @@ +@@ -230,7 +230,7 @@ int numchildren; #define SANED_CONFIG_FILE "saned.conf" diff --git a/user/screengrab/APKBUILD b/user/screengrab/APKBUILD index 5cb1a06b5..5bf829f5b 100644 --- a/user/screengrab/APKBUILD +++ b/user/screengrab/APKBUILD @@ -1,7 +1,8 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=screengrab -pkgver=2.6.0 +pkgver=2.7.0 +_qtxdg=3.12 pkgrel=0 pkgdesc="Cross-platform Qt-based software for taking screenshots" url="https://github.com/lxqt/screengrab" @@ -10,9 +11,10 @@ options="!check" # No test suite. license="GPL-2.0+" depends="" makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qttools-dev - kwindowsystem-dev libqtxdg-dev>=3.7" + kwindowsystem-dev libqtxdg-dev>=$_qtxdg" subpackages="$pkgname-doc" -source="https://github.com/lxqt/screengrab/releases/download/$pkgver/screengrab-$pkgver.tar.xz" +source="https://github.com/lxqt/screengrab/releases/download/$pkgver/screengrab-$pkgver.tar.xz + revert-kwindowsystem-bump.patch" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -37,4 +39,5 @@ package() { make DESTDIR="$pkgdir" -C build install } -sha512sums="622bd9fa4548dbbd2b965f2a38446d6b6002786ff2154f9efe86a4970ac464174d1d7e34b8fdc61761f935c97bf4ac8bb2e8ffd166b859cddd3183bd76380b88 screengrab-2.6.0.tar.xz" +sha512sums="0becd8972408a788b56affc9091cdc9ce1fe79160bba27ae29c5f1bf48ed0b73bafdabf3aeaac1eafe646aeaa4e162c0302b7ba1ee4f07785010e50a7d8131a1 screengrab-2.7.0.tar.xz +6f9d5029ea45f22341861d10acabb6134f314cf7841dab6141995c792d25cb5c6055afae3d50e6032dc1c053445e8e6ea1178851d6bdda72009631b5c76c47df revert-kwindowsystem-bump.patch" diff --git a/user/screengrab/revert-kwindowsystem-bump.patch b/user/screengrab/revert-kwindowsystem-bump.patch new file mode 100644 index 000000000..4ce6967ec --- /dev/null +++ b/user/screengrab/revert-kwindowsystem-bump.patch @@ -0,0 +1,899 @@ +diff '--color=auto' -Nurd screengrab-2.7.0/CMakeLists.txt screengrab-2.7.0.new/CMakeLists.txt +--- screengrab-2.7.0/CMakeLists.txt 2023-11-05 04:30:13.000000000 -0800 ++++ screengrab-2.7.0.new/CMakeLists.txt 2023-11-26 01:15:30.572898382 -0800 +@@ -15,7 +15,7 @@ + option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) + + # Minimum Versions +-set(KF5_MINIMUM_VERSION "5.101.0") ++set(KF5_MINIMUM_VERSION "5.36.0") + set(QT_MINIMUM_VERSION "5.15.0") + set(QTXDG_MINIMUM_VERSION "3.12.0") + +diff '--color=auto' -Nurd screengrab-2.7.0/CMakeLists.txt.orig screengrab-2.7.0.new/CMakeLists.txt.orig +--- screengrab-2.7.0/CMakeLists.txt.orig 1969-12-31 16:00:00.000000000 -0800 ++++ screengrab-2.7.0.new/CMakeLists.txt.orig 2023-11-26 01:13:58.403649484 -0800 +@@ -0,0 +1,224 @@ ++cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) ++# CMP0000: Call the cmake_minimum_required() command at the beginning of the top-level ++# CMakeLists.txt file even before calling the project() command. ++# The cmake_minimum_required(VERSION) command implicitly invokes the cmake_policy(VERSION) ++# command to specify that the current project code is written for the given range of CMake ++# versions. ++project(screengrab) ++ ++include(GNUInstallDirs) ++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") ++ ++# options ++option(SG_DBUS_NOTIFY "Enable D-Bus notifications" ON) ++option(SG_EXT_EDIT "Enable ability to edit screenshots in external editor" ON) ++option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) ++ ++# Minimum Versions ++set(KF5_MINIMUM_VERSION "5.101.0") ++set(QT_MINIMUM_VERSION "5.15.0") ++set(QTXDG_MINIMUM_VERSION "3.12.0") ++ ++find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED) ++find_package(Qt5Network ${QT_MINIMUM_VERSION} REQUIRED) ++find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED) ++find_package(Qt5X11Extras ${QT_MINIMUM_VERSION} REQUIRED) ++find_package(KF5WindowSystem ${KF5_MINIMUM_VERSION} REQUIRED) ++ ++# right now we declare it as required ++find_package(X11 REQUIRED) ++set(HAVE_X11 1) ++ ++find_package( ++ XCB REQUIRED MODULE COMPONENTS ++ XCB ++ SHAPE ++ XFIXES ++) ++ ++find_package( ++ X11_XCB REQUIRED MODULE ++) ++ ++set(CMAKE_AUTOMOC ON) ++set(CMAKE_AUTOUIC ON) ++set(CMAKE_INCLUDE_CURRENT_DIR ON) ++ ++set(SCREENGRAB_VERSION "2.7.0") ++ ++if (DEV_VERSION) ++ set(VERSION "${SCREENGRAB_VERSION}-dev (${DEV_VERSION})") ++else() ++ set(VERSION ${SCREENGRAB_VERSION}) ++endif() ++ ++add_definitions( ++ -DVERSION="${VERSION}" ++ -DQT_NO_FOREACH ++) ++ ++if(NOT CMAKE_BUILD_TYPE) ++ set(CMAKE_BUILD_TYPE Release) ++endif() ++ ++message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) ++message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX}) ++ ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual -Wall -Wextra") ++ ++# Although the names, LXQtTranslateTs and LXQtTranslateDesktop, they don't ++# bring any dependency on lxqt. ++include(LXQtTranslateTs) ++include(LXQtTranslateDesktop) ++include(Qt5TranslationLoader) ++ ++if(SG_EXT_EDIT) ++ add_definitions( -DSG_EXT_EDIT="1") ++ find_package(Qt5Xdg ${QTXDG_MINIMUM_VERSION} REQUIRED) ++endif() ++ ++if(SG_DBUS_NOTIFY) ++ find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED) ++ add_definitions( -DSG_DBUS_NOTIFY="1") ++endif() ++ ++message(STATUS "Editing screenshots in external editor support: " ${SG_EXT_EDIT}) ++message(STATUS "Enable D-Bus notifications: " ${SG_DBUS_NOTIFY}) ++message(STATUS "Use system Qxt Library: " ${SG_USE_SYSTEM_QXT}) ++message(STATUS "Update source translation translations/*.ts files: " ${UPDATE_TRANSLATIONS}) ++ ++# docs ++# CMAKE_INSTALL_FULL_DOCDIR = CMAKE_INSTALL_PREFIX/CMAKE_INSTALL_DATADIR/doc/PROJECT_NAME ++message(STATUS "Documentation directory: " ${CMAKE_INSTALL_FULL_DOCDIR}) ++add_definitions(-DSG_DOCDIR="${CMAKE_INSTALL_FULL_DOCDIR}") ++ ++# app icon path ++add_definitions(-DSG_ICONPATH="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/screengrab.svg") ++ ++include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src") ++add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/common/qkeysequencewidget") ++include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/common/qkeysequencewidget/src") ++ ++if (SG_EXT_EDIT) ++ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/modules/extedit") ++ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/modules/extedit") ++endif() ++ ++set(SCREENGRAB_SRC ++ src/core/main.cpp ++ src/core/singleapp.cpp ++ src/core/core.cpp ++ src/core/config.cpp ++ src/core/regionselect.cpp ++ src/core/shortcutmanager.cpp ++ src/core/modulemanager.cpp ++ src/core/ui/configwidget.cpp ++ src/core/ui/about.cpp ++ src/core/ui/mainwindow.cpp ++) ++ ++if(SG_DBUS_NOTIFY) ++ set(SCREENGRAB_SRC ${SCREENGRAB_SRC} src/core/dbusnotifier.cpp) ++endif() ++ ++if(X11_FOUND) ++ set(SCREENGRAB_SRC ${SCREENGRAB_SRC} src/core/x11utils.cpp) ++endif() ++ ++set(SCREENGRAB_HDR ++ src/core/singleapp.h ++) ++ ++set(SCREENGRAB_UI ++ src/core/ui/configwidget.ui ++ src/core/ui/aboutwidget.ui ++ src/core/ui/mainwindow.ui ++) ++ ++# Qt resource file ++set(SCREENGRAB_QRC screengrab.qrc) ++qt5_add_resources(QRC_SOURCES ${SCREENGRAB_QRC}) ++ ++message(STATUS "Generating localize ...") ++ ++set(SCREENGRAB_CONFIG_FILES ++ screengrab.conf ++) ++ ++set(SCREENGRAB_DESKTOP_FILES_IN ++ screengrab.desktop.in ++) ++ ++lxqt_translate_ts(SCREENGRAB_QMS ++ USE_QT5 TRUE ++ UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS} ++ SOURCES ++ ${SCREENGRAB_SRC} ++ ${SCREENGRAB_UI} ++ INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations" ++) ++ ++lxqt_translate_desktop(SCREENGRAB_DESKTOP_FILES ++ SOURCES ${SCREENGRAB_DESKTOP_FILES_IN} ++ USE_YAML ++) ++ ++qt5_translation_loader(SCREENGRAB_QM_LOADER ++ "${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}/translations" ++ ${PROJECT_NAME} ++) ++ ++# generating executable ++add_executable(screengrab ++ ${SCREENGRAB_SRC} ++ ${SCREENGRAB_UI_H} ++ ${QRC_SOURCES} ++ ${SCREENGRAB_QMS} ++ ${SCREENGRAB_DESKTOP_FILES} ++ ${SCREENGRAB_QM_LOADER} ++) ++ ++if(SG_EXT_EDIT) ++ target_link_libraries(screengrab extedit) ++endif() ++ ++if(SG_DBUS_NOTIFY) ++ target_link_libraries(screengrab Qt5::DBus) ++endif() ++ ++if (X11_XCB_FOUND) ++ add_definitions( -DX11_XCB_FOUND="1") ++ target_link_libraries(screengrab ${X11_XCB_LIBRARIES}) ++endif() ++ ++if (XCB_XCB_FOUND) ++ add_definitions( -DXCB_XCB_FOUND="1") ++ target_link_libraries(screengrab ${XCB_XCB_LIBRARY}) ++endif() ++ ++if (XCB_SHAPE_FOUND) ++ add_definitions( -DXCB_SHAPE_FOUND="1") ++ target_link_libraries(screengrab ${XCB_SHAPE_LIBRARY}) ++endif() ++ ++if (XCB_XFIXES_FOUND) ++ add_definitions( -DXCB_XFOXES_FOUND="1") ++ target_link_libraries(screengrab ${XCB_XFIXES_LIBRARY}) ++endif() ++ ++# Link with Network and X11Extras. See pull#86. TODO: Should be optional when upload module is needed. ++target_link_libraries(screengrab qkeysequencewidget Qt5::Widgets KF5::WindowSystem Qt5::X11Extras Qt5::Network ${X11_LIBRARIES}) ++ ++# installing ++install(TARGETS screengrab RUNTIME DESTINATION bin) ++# install html docs ++install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/docs/html" DESTINATION "${CMAKE_INSTALL_FULL_DOCDIR}") ++# install config files ++install(FILES ${SCREENGRAB_CONFIG_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}) ++# install desktop files ++install(FILES ${SCREENGRAB_DESKTOP_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) ++# install pixmap ++install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/img/screengrab.svg" DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps") ++install(FILES screengrab.metainfo.xml ++ DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo ++) +diff '--color=auto' -Nurd screengrab-2.7.0/src/core/core.cpp screengrab-2.7.0.new/src/core/core.cpp +--- screengrab-2.7.0/src/core/core.cpp 2023-11-05 04:30:13.000000000 -0800 ++++ screengrab-2.7.0.new/src/core/core.cpp 2023-11-26 01:15:31.602889989 -0800 +@@ -32,8 +32,7 @@ + #include <XdgMimeApps> + #include <qt5xdg/XdgDesktopFile> + +-#include <KWindowSystem/KWindowSystem> +-#include <KWindowSystem/KX11Extras> ++#include <KF5/KWindowSystem/KWindowSystem> + #include <xcb/xfixes.h> + + #ifdef X11_XCB_FOUND +@@ -269,15 +268,15 @@ + if (screen == nullptr) + screen = QGuiApplication::screens().at(0); + +- WId wnd = KX11Extras::activeWindow(); ++ WId wnd = KWindowSystem::activeWindow(); + + // this window screenshot will be invalid + // if there's no active window or the active window is ours +- bool invalid(!wnd || !KX11Extras::hasWId(wnd) || (_wnd && _wnd->winId() == wnd)); ++ bool invalid(!wnd || !KWindowSystem::hasWId(wnd) || (_wnd && _wnd->winId() == wnd)); + if (!invalid) + { // or if it isn't on the current desktop + KWindowInfo info(wnd, NET::WMDesktop); +- invalid = info.valid() && !info.isOnDesktop(KX11Extras::currentDesktop()); ++ invalid = info.valid() && !info.isOnDesktop(KWindowSystem::currentDesktop()); + if (!invalid) + { // or if it is a desktop or panel/dock + info = KWindowInfo(wnd, NET::WMWindowType); +diff '--color=auto' -Nurd screengrab-2.7.0/src/core/core.cpp.orig screengrab-2.7.0.new/src/core/core.cpp.orig +--- screengrab-2.7.0/src/core/core.cpp.orig 1969-12-31 16:00:00.000000000 -0800 ++++ screengrab-2.7.0.new/src/core/core.cpp.orig 2023-11-26 01:13:58.413649402 -0800 +@@ -0,0 +1,623 @@ ++/*************************************************************************** ++ * Copyright (C) 2009 - 2013 by Artem 'DOOMer' Galichkin * ++ * doomer3d@gmail.com * ++ * * ++ * This program is free software; you can redistribute it and/or modify * ++ * it under the terms of the GNU General Public License as published by * ++ * the Free Software Foundation; either version 2 of the License, or * ++ * (at your option) any later version. * ++ * * ++ * This program is distributed in the hope that it will be useful, * ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of * ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * ++ * GNU General Public License for more details. * ++ * * ++ * You should have received a copy of the GNU General Public License * ++ * along with this program. If not, see <http://www.gnu.org/licenses/>. * ++ ***************************************************************************/ ++ ++#include <QMutex> ++#include <QWaitCondition> ++#include <QApplication> ++#include <QScreen> ++#include <QChar> ++#include <QBuffer> ++#include <QFile> ++#include <QDir> ++#include <QUuid> ++#include <QMimeDatabase> ++ ++#include <QDebug> ++ ++#include <XdgMimeApps> ++#include <qt5xdg/XdgDesktopFile> ++ ++#include <KWindowSystem/KWindowSystem> ++#include <KWindowSystem/KX11Extras> ++#include <xcb/xfixes.h> ++ ++#ifdef X11_XCB_FOUND ++#include "x11utils.h" ++#endif ++ ++#include "core/core.h" ++ ++#ifdef SG_DBUS_NOTIFY ++#include "dbusnotifier.h" ++#endif ++ ++Core* Core::corePtr = nullptr; ++ ++Core::Core() ++{ ++ qRegisterMetaType<StateNotifyMessage>("StateNotifyMessage"); ++ ++ _conf = Config::instance(); ++ _conf->loadSettings(); ++ _lastSelectedArea = _conf->getLastSelection(); ++ ++ _pixelMap = new QPixmap; ++ _selector = nullptr; ++ _firstScreen = true; ++ ++ _cmdLine.setApplicationDescription(QStringLiteral("ScreenGrab ") + tr("is a crossplatform application for fast creating screenshots of your desktop.")); ++ _cmdLine.addHelpOption(); ++ _cmdLine.addVersionOption(); ++ ++ QCommandLineOption optFullScreen(QStringList() << QStringLiteral("f") << QStringLiteral("fullscreen"), tr("Take a fullscreen screenshot")); ++ _cmdLine.addOption(optFullScreen); ++ _screenTypeOpts.append(optFullScreen); ++ ++ QCommandLineOption optActiveWnd(QStringList() << QStringLiteral("a") << QStringLiteral("active"), tr("Take a screenshot of the active window")); ++ _cmdLine.addOption(optActiveWnd); ++ _screenTypeOpts.append(optActiveWnd); ++ ++ QCommandLineOption optSelectedRect(QStringList() << QStringLiteral("r") << QStringLiteral("region"), tr("Take a screenshot of a selection of the screen")); ++ _cmdLine.addOption(optSelectedRect); ++ _screenTypeOpts.append(optSelectedRect); ++ ++ QCommandLineOption optRunMinimized(QStringList() << QStringLiteral("m") << QStringLiteral("minimized"), tr("Run the application with a hidden main window")); ++ _cmdLine.addOption(optRunMinimized); ++ ++ sleep(250); ++ ++ _wnd = nullptr; ++} ++ ++Core::Core(const Core& ): QObject() ++{ ++} ++ ++Core& Core::operator=(const Core &) ++{ ++ return *this; ++} ++ ++Core* Core::instance() ++{ ++ if (!corePtr) ++ corePtr = new Core; ++ return corePtr; ++} ++ ++Core::~Core() ++{ ++ killTempFile(); ++ delete _pixelMap; ++ _conf->killInstance(); ++} ++ ++void Core::initWindow(const QString& ipcMessage) ++{ ++ if (!_wnd) { ++ _wnd = new MainWindow; ++ _wnd->setConfig(_conf); ++ _wnd->updateModulesActions(_modules.generateModulesActions()); ++ _wnd->updateModulesMenus(_modules.generateModulesMenus()); ++ ++ screenShot(true); // first screenshot ++ ++ _wnd->resize(_conf->getRestoredWndSize()); ++ ++ if (_wnd) { ++ if (runAsMinimized()) ++ { ++ if (_wnd->isTrayed()) ++ _wnd->windowHideShow(); ++ else ++ _wnd->showMinimized(); ++ } else ++ _wnd->show(); ++ } ++ } else { ++ _wnd->showWindow(ipcMessage); ++ screenShot(); ++ } ++} ++ ++void Core::sleep(int msec) ++{ ++ QMutex mutex; ++ mutex.lock(); ++ QWaitCondition pause; ++ pause.wait(&mutex, msec); // def 240 ++ mutex.unlock(); ++} ++ ++void Core::coreQuit() ++{ ++ _conf->setLastSelection(_lastSelectedArea); ++ _conf->saveScreenshotSettings(); ++ ++ if (_wnd) { ++ _conf->setRestoredWndSize(_wnd->width(), _wnd->height()); ++ _conf->saveWndSize(); ++ _wnd->close(); ++ } ++ ++ if (corePtr) ++ { ++ delete corePtr; ++ corePtr = nullptr; ++ } ++ ++ qApp->quit(); ++} ++ ++void Core::setScreen() ++{ ++ _wnd->hideToShot(); ++ ++ // new code experimental ++ if (_conf->getDelay() == 0) ++ QTimer::singleShot(200, this, SLOT(screenShot())); ++ else ++ QTimer::singleShot(1000 * _conf->getDelay(), this, SLOT(screenShot())); ++ ++} ++ ++void Core::getFullScreenPixmap(QScreen* screen) ++{ ++ const auto siblings = screen->virtualSiblings(); ++ if (siblings.size() == 1) ++ *_pixelMap = screen->grabWindow(0); // 0 for the entire screen ++ else ++ { // consider all siblings ++ QPixmap pix = QPixmap(screen->virtualSize()); ++ pix.fill(Qt::transparent); ++ QPainter painter(&pix); ++ for (const auto& sc : siblings) ++ painter.drawPixmap(sc->geometry().topLeft(), sc->grabWindow(0)); ++ *_pixelMap = pix; ++ } ++} ++ ++// get screenshot ++void Core::screenShot(bool first) ++{ ++ killTempFile(); // remove the old temp file if any ++ ++ sleep(400); // delay for hide "fade effect" bug in the KWin with compositing ++ _firstScreen = first; ++ ++ // Update the last saving date, if this is the first screenshot ++ if (_firstScreen) ++ _conf->updateLastSaveDate(); ++ ++ switch(_conf->getDefScreenshotType()) ++ { ++ case Core::FullScreen: ++ { ++ auto screen = QGuiApplication::screenAt(QCursor::pos()); ++ if (screen == nullptr) ++ screen = QGuiApplication::screens().at(0); ++ getFullScreenPixmap(screen); ++ grabCursor(0, 0); ++ ++ checkAutoSave(first); ++ _wnd->updatePixmap(_pixelMap); ++ break; ++ } ++ case Core::Window: ++ { ++ getActiveWindow(); ++ checkAutoSave(first); ++ _wnd->updatePixmap(_pixelMap); ++ break; ++ } ++ case Core::Area: ++ { ++ _selector = new RegionSelect(_conf); ++ connect(_selector, &RegionSelect::processDone, this, &Core::regionGrabbed); ++ break; ++ } ++ case Core::PreviousSelection: ++ { ++ _selector = new RegionSelect(_conf, _lastSelectedArea); ++ connect(_selector, &RegionSelect::processDone, this, &Core::regionGrabbed); ++ break; ++ } ++ default: ++ getFullScreenPixmap(QGuiApplication::primaryScreen()); ++ break; ++ } ++ ++ ++ ++ _wnd->updatePixmap(_pixelMap); ++ _wnd->restoreFromShot(); ++} ++ ++void Core::checkAutoSave(bool first) ++{ ++ if (_conf->getAutoSave()) ++ { ++ // hack ++ if (first) ++ { ++ if (_conf->getAutoSaveFirst()) ++ QTimer::singleShot(600, this, SLOT(autoSave())); ++ } ++ else ++ autoSave(); ++ } ++} ++ ++void Core::getActiveWindow() // called only with window screenshots ++{ ++ auto screen = QGuiApplication::screenAt(QCursor::pos()); ++ if (screen == nullptr) ++ screen = QGuiApplication::screens().at(0); ++ ++ WId wnd = KX11Extras::activeWindow(); ++ ++ // this window screenshot will be invalid ++ // if there's no active window or the active window is ours ++ bool invalid(!wnd || !KX11Extras::hasWId(wnd) || (_wnd && _wnd->winId() == wnd)); ++ if (!invalid) ++ { // or if it isn't on the current desktop ++ KWindowInfo info(wnd, NET::WMDesktop); ++ invalid = info.valid() && !info.isOnDesktop(KX11Extras::currentDesktop()); ++ if (!invalid) ++ { // or if it is a desktop or panel/dock ++ info = KWindowInfo(wnd, NET::WMWindowType); ++ QFlags<NET::WindowTypeMask> flags; ++ flags |= NET::DesktopMask; ++ flags |= NET::DockMask; ++ invalid = info.valid() && NET::typeMatchesMask(info.windowType(NET::AllTypesMask), flags); ++ } ++ } ++ ++ // also invalid if the window is shaded/invisible ++ KWindowInfo info(wnd, NET::XAWMState | NET::WMFrameExtents); ++ if (!invalid && info.mappingState() != NET::Visible) ++ invalid = true; ++ ++ // if this is an invalid screenshot, take a fullscreen shot instead ++ if (invalid) ++ { ++ qWarning() << "Could not take a window screenshot."; ++ *_pixelMap = screen->grabWindow(0); ++ return; ++ } ++ ++ // no decorations option is selected ++ if (_conf->getNoDecoration()) ++ { ++ *_pixelMap = screen->grabWindow(wnd); ++ return; ++ } ++ ++ QRect geometry = info.frameGeometry(); ++ ++ // WARNING: Until now, "KWindowInfo::frameGeometry" does not consider the screens's ++ // device pixel ratio. So, the frame geometry should be transformed. ++ qreal pixelRatio = screen->devicePixelRatio(); ++ geometry.setTopLeft(QPointF(geometry.topLeft() / pixelRatio).toPoint()); ++ geometry.setBottomRight(QPointF(geometry.bottomRight() / pixelRatio).toPoint()); ++ ++ // The offscreen part of the window will appear as a black area in the screenshot. ++ // Until a better method is found, the offscreen area is ignored here. ++ QRect r = screen->virtualGeometry().intersected(geometry); ++ ++ // the window positon should be calculated relative to the screen ++ *_pixelMap = screen->grabWindow(0, ++ r.x() - screen->geometry().x(), ++ r.y() - screen->geometry().y(), ++ r.width(), ++ r.height()); ++ ++ grabCursor(geometry.x(), geometry.y()); ++} ++ ++void Core::grabCursor(int offsetX, int offsetY) ++{ ++#ifdef XCB_XFOXES_FOUND ++ if (_conf->getIncludeCursor()) ++ X11Utils::compositePointer(offsetX, offsetY, _pixelMap); ++#else ++ Q_UNUSED(offsetx); ++ Q_UNUSED(offsety); ++#endif ++ ++ ++} ++ ++void Core::sendSystemNotify(const StateNotifyMessage& /*notify*/) ++{ ++ qDebug() << "Send system notification"; ++} ++ ++QString Core::getSaveFilePath(const QString &format) ++{ ++ QString initPath; ++ ++ do ++ { ++ QDir dir(_conf->getSaveDir()); ++ const QString filePath = dir.filePath(_conf->getSaveFileName()); ++ if (_conf->getDateTimeInFilename()) ++ initPath = filePath + QStringLiteral("-") + getDateTimeFileName() + QStringLiteral(".") + format; ++ else ++ { ++ if (_conf->getScrNum() != 0) ++ initPath = filePath + _conf->getScrNumStr() + QStringLiteral(".") + format; ++ else ++ initPath = filePath + QStringLiteral(".") + format; ++ } ++ } while (checkExsistFile(initPath)); ++ ++ return initPath; ++} ++ ++bool Core::checkExsistFile(const QString &path) ++{ ++ bool exist = QFile::exists(path); ++ ++ if (exist) ++ _conf->increaseScrNum(); ++ ++ return exist; ++} ++ ++QString Core::getDateTimeFileName() ++{ ++ QString currentDateTime = QDateTime::currentDateTime().toString(_conf->getDateTimeTpl()); ++ ++ if (currentDateTime == _conf->getLastSaveDate().toString(_conf->getDateTimeTpl()) && _conf->getScrNum() != 0) ++ currentDateTime += QStringLiteral("-") + _conf->getScrNumStr(); ++ else ++ _conf->resetScrNum(); ++ ++ return currentDateTime; ++} ++ ++Config *Core::config() ++{ ++ return _conf; ++} ++ ++void Core::updatePixmap() ++{ ++ if (QFile::exists(_tempFilename)) ++ { ++ _pixelMap->load(_tempFilename, "png"); ++ _wnd->updatePixmap(_pixelMap); ++ } ++} ++ ++QString Core::getTempFilename(const QString& format) ++{ ++ if (_tempFilename.isEmpty()) ++ { ++ _tempFilename = QUuid::createUuid().toString(); ++ int size = _tempFilename.size() - 2; ++ _tempFilename = _tempFilename.mid(1, size).left(8); ++ _tempFilename = QDir::tempPath() + QDir::separator() ++ + QStringLiteral("screenshot-") + _tempFilename ++ + QStringLiteral(".") + format; ++ } ++ return _tempFilename; ++} ++ ++void Core::killTempFile() ++{ ++ if (QFile::exists(_tempFilename)) ++ QFile::remove(_tempFilename); ++ _tempFilename.clear(); ++} ++ ++bool Core::writeScreen(QString& fileName, QString& format, bool tmpScreen) ++{ ++ // adding extension format ++ if (!fileName.contains(QStringLiteral(".") + format)) ++ fileName.append(QStringLiteral(".") + format); ++ ++ // saving temp file ++ if (tmpScreen) ++ { ++ if (!fileName.isEmpty()) ++ return _pixelMap->save(fileName, format.toLatin1().constData(), _conf->getImageQuality()); ++ else ++ return false; ++ } ++ ++ // writing file ++ bool saved = false; ++ if (!fileName.isEmpty()) ++ { ++ if (format == QLatin1String("jpg")) ++ saved = _pixelMap->save(fileName,format.toLatin1().constData(), _conf->getImageQuality()); ++ else ++ saved = _pixelMap->save(fileName,format.toLatin1().constData(), -1); ++ ++ if (saved) ++ { ++ StateNotifyMessage message(tr("Saved"), tr("Saved to ") + fileName); ++ ++ message.message = message.message + copyFileNameToCliipboard(fileName); ++ _conf->updateLastSaveDate(); ++ sendNotify(message); ++ } ++ else ++ qWarning() << "Error saving file " << fileName; ++ } ++ ++ return saved; ++} ++ ++QString Core::copyFileNameToCliipboard(QString file) ++{ ++ QString retString = QLatin1String(""); ++ switch (_conf->getAutoCopyFilenameOnSaving()) ++ { ++ case Config::nameToClipboardFile: ++ { ++ file = file.section(QLatin1Char('/'), -1); ++ QApplication::clipboard()->setText(file); ++ retString = QChar(QChar::LineSeparator) + tr("Name of saved file is copied to the clipboard"); ++ break; ++ } ++ case Config::nameToClipboardPath: ++ { ++ QApplication::clipboard()->setText(file); ++ retString = QChar(QChar::LineSeparator) + tr("Path to saved file is copied to the clipboard"); ++ break; ++ } ++ default: ++ break; ++ } ++ return retString; ++} ++ ++void Core::sendNotify(const StateNotifyMessage &message) ++{ ++#ifdef SG_DBUS_NOTIFY ++ DBusNotifier *notifier = new DBusNotifier(); ++ notifier->displayNotify(message); ++#else ++ _wnd->showTrayMessage(message.header, message.message); ++#endif ++} ++ ++void Core::copyScreen() ++{ ++ QApplication::clipboard()->setPixmap(*_pixelMap, QClipboard::Clipboard); ++ StateNotifyMessage message(tr("Copied"), tr("Screenshot is copied to clipboard")); ++ sendNotify(message); ++} ++ ++void Core::openInExtViewer() ++{ ++ if (_conf->getEnableExtView()) ++ { ++ QString format = _conf->getSaveFormat(); ++ if (format.isEmpty()) ++ format = QLatin1String("png"); ++ ++ QString tempFileName = getTempFilename(format); ++ writeScreen(tempFileName, format, true); ++ ++ QMimeDatabase db; ++ XdgMimeApps mimeAppsDb; ++ QMimeType mt = db.mimeTypeForFile(tempFileName); ++ auto app = mimeAppsDb.defaultApp(mt.name()); ++ if (app != nullptr) ++ { ++ QString exec; ++ exec = app->expandExecString().first(); ++ delete app; ++ QStringList args; ++ args << tempFileName; ++ ++ QProcess::startDetached(exec, args); ++ } ++ } ++} ++ ++ModuleManager* Core::modules() ++{ ++ return &_modules; ++} ++ ++void Core::addCmdLineOption(const QCommandLineOption& option) ++{ ++ _cmdLine.addOption(option); ++} ++ ++bool Core::checkCmdLineOption(const QCommandLineOption& option) ++{ ++ return _cmdLine.isSet(option); ++} ++ ++bool Core::checkCmdLineOptions(const QStringList &options) ++{ ++ for (int i = 0; i < options.count(); ++i) ++ if (_cmdLine.isSet(options.at(i))) ++ return true; ++ return false; ++} ++ ++void Core::processCmdLineOpts(const QStringList& arguments) ++{ ++ _cmdLine.process(arguments); ++ ++ // Check commandline parameters and set screenshot type ++ for (int i=0; i < _screenTypeOpts.count(); ++i) ++ if (_cmdLine.isSet(_screenTypeOpts.at(i))) ++ _conf->setDefScreenshotType(i); ++ ++ initWindow(); ++} ++ ++bool Core::runAsMinimized() ++{ ++ return (_cmdLine.isSet(QStringLiteral("minimized")) || _cmdLine.isSet(QStringLiteral("m"))); ++} ++ ++void Core::autoSave() ++{ ++ QString format = _conf->getSaveFormat(); ++ QString fileName = getSaveFilePath(format); ++ writeScreen(fileName, format); ++} ++ ++QString Core::getVersionPrintable() ++{ ++ QString str = QStringLiteral("ScreenGrab: ") + qApp->applicationVersion() + QStringLiteral("\n"); ++ str += QStringLiteral("Qt: ") + QString::fromLatin1(qVersion()) + QStringLiteral("\n"); ++ return str; ++} ++ ++QPixmap* Core::getPixmap() ++{ ++ return _pixelMap; ++} ++ ++QByteArray Core::getScreenData() ++{ ++ QByteArray bytes; ++ QBuffer buffer(&bytes); ++ buffer.open(QIODevice::WriteOnly); ++ _pixelMap->save(&buffer, _conf->getSaveFormat().toLatin1().constData()); ++ return bytes; ++} ++ ++void Core::regionGrabbed(bool grabbed) ++{ ++ if (grabbed) ++ { ++ *_pixelMap = _selector->getSelection(); ++ ++ int x = _selector->getSelectionStartPos().x(); ++ int y = _selector->getSelectionStartPos().y(); ++ int w = _pixelMap->rect().width() / _pixelMap->devicePixelRatio(); ++ int h = _pixelMap->rect().height() / _pixelMap->devicePixelRatio(); ++ _lastSelectedArea.setRect(x, y, w, h); ++ ++ checkAutoSave(); ++ } ++ ++ _wnd->updatePixmap(_pixelMap); ++ _selector->deleteLater(); ++} diff --git a/user/seatd/APKBUILD b/user/seatd/APKBUILD index dcf68d61e..07391d172 100644 --- a/user/seatd/APKBUILD +++ b/user/seatd/APKBUILD @@ -1,15 +1,15 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=seatd -pkgver=0.7.0 +pkgver=0.8.0 pkgrel=0 pkgdesc="Seat management daemon and library" url="https://git.sr.ht/~kennylevinsen/seatd" arch="all" license="MIT" depends="" -makedepends="cmake elogind-dev meson ninja" -subpackages="$pkgname-dev" +makedepends="cmake elogind-dev meson scdoc" +subpackages="$pkgname-dev $pkgname-doc" source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kennylevinsen/seatd/archive/$pkgver.tar.gz" build() { @@ -17,23 +17,22 @@ build() { # https://www.openwall.com/lists/musl/2020/01/20/3 export CFLAGS="$CFLAGS -Wno-error=overflow" - meson \ + meson setup \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --buildtype=release \ - . output - ninja -C output + . build + meson compile -C build } check() { -# Add test instructions here. -: + meson test -C build } package() { - DESTDIR="$pkgdir" ninja -C output install + DESTDIR="$pkgdir" meson install -C build } -sha512sums="c81c43994b92672a388bf255edb1fe24d3dba7ece2eb35f9fedc05cc0b8e464e9167ffed037645c4072430fe7b3b8fc80cc99f21fb5100654b5dd23a94742e66 seatd-0.7.0.tar.gz" +sha512sums="93b1e5c170564ce9654e4df9985af95cb505274b36e950998bb1f16803d2d46712140eded2bdd8d5e85aec62070afd9c224184276d79a0ff0813408dfc472db7 seatd-0.8.0.tar.gz" diff --git a/user/smtpd-starttls-proxy/APKBUILD b/user/smtpd-starttls-proxy/APKBUILD index 1e81bd215..d597d3457 100644 --- a/user/smtpd-starttls-proxy/APKBUILD +++ b/user/smtpd-starttls-proxy/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=smtpd-starttls-proxy -pkgver=0.0.1.2 +pkgver=0.0.1.4 pkgrel=0 pkgdesc="An SMTP proxy implementing STARTTLS" url="https://skarnet.org/software/smtpd-starttls-proxy/" @@ -9,8 +9,8 @@ arch="all" options="!check" # No test suite. license="ISC" depends="s6 s6-networking" -makedepends="skalibs-dev>=2.13 s6-dev>=2.11" -subpackages="$pkgname-dev" +makedepends="skalibs-dev>=2.14 s6-dev>=2.12" +subpackages="$pkgname-dev $pkgname-doc" source="https://skarnet.org/software/smtpd-starttls-proxy/smtpd-starttls-proxy-$pkgver.tar.gz" build() { @@ -26,6 +26,8 @@ build() { package() { make DESTDIR="$pkgdir" install + mkdir -p -m 0755 "$pkgdir/usr/share/doc" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" } -sha512sums="fb9dc2b80d40fe15d8c615e3e4d367b81b19e2ce16be69a14d1c59dcc483c7cde270143b1beb28b9e4657665b743ee62c27074e79a5a5759c16507879b9f9dd8 smtpd-starttls-proxy-0.0.1.2.tar.gz" +sha512sums="21dc1ee03d7178283a03f8b59f87b9277c5dd8d878a402b986563c4f54f7276bc0d3d05f569f2ddaf59223a3b57d24d4b80a56269bf73112de599e27d5d8795c smtpd-starttls-proxy-0.0.1.4.tar.gz" diff --git a/user/sonnet/APKBUILD b/user/sonnet/APKBUILD index 89045b27d..5f6d6526d 100644 --- a/user/sonnet/APKBUILD +++ b/user/sonnet/APKBUILD @@ -42,7 +42,7 @@ package() { hunspell() { pkgdesc="$pkdesc (hunspell backend)" - install_if="$pkgname=$pkgver-$pkgrel hunspell" + install_if="$pkgname=$pkgver-r$pkgrel hunspell" mkdir -p "$subpkgdir"/usr/lib/qt5/plugins/kf5/sonnet mv "$pkgdir"/usr/lib/qt5/plugins/kf5/sonnet/sonnet_hunspell.so \ "$subpkgdir"/usr/lib/qt5/plugins/kf5/sonnet/sonnet_hunspell.so diff --git a/user/spack/APKBUILD b/user/spack/APKBUILD index e8b1df9ee..5f696e7a1 100644 --- a/user/spack/APKBUILD +++ b/user/spack/APKBUILD @@ -1,29 +1,42 @@ # Contributor: Zach van Rijn <me@zv.io> # Maintainer: Zach van Rijn <me@zv.io> pkgname=spack -pkgver=0.19.0_p1 -pkgrel=0 +pkgver=0.21.0_p1 +pkgrel=5 pkgdesc="A flexible package manager for supercomputers." url="https://spack.io/" -arch="all !ppc" # see #794 +arch="all" license="Apache-2.0 OR MIT" -options="!dbg !strip" +options="!dbg !strip !fhs" makedepends="python3-dev" -depends="$makedepends" # due to bootstrap design +depends="$makedepends + gcc g++ gfortran + bzip2 file git gnupg gzip libarchive-tools make patch unzip xz + " subpackages="" # https://git.adelielinux.org/adelie/docs/-/wikis/Developer-Resources/Maintaining-Spack source="https://git.adelielinux.org/adelie/$pkgname/-/archive/adelie-v$pkgver/$pkgname-adelie-v$pkgver.tar.bz2 + clingo-explicit-libatomic.patch archspec-fix-cpu-family-detection.patch + openssl-explicit-linux-headers.patch + + default-no-buildcache.patch + default-adelie-upstream-git.patch + + config.yaml " -builddir="$srcdir/$pkgname-adelie-v$pkgver" +install="$pkgname.post-install" +builddir="${srcdir}/${pkgname}-adelie-v${pkgver}" prepare() { default_prepare - sed -i etc/spack/defaults/bootstrap.yaml \ - -e '/github-actions/d' \ - ; + # disable binary bootstrap + sed -i etc/spack/defaults/bootstrap.yaml -e '/github-actions/d'; + + # delete windows files + find bin \( -name '*.ps1' -o -name '*.py' -o -name '*.bat' \) -delete; } check() { @@ -32,25 +45,32 @@ check() { # Spack's new "concretizer". The output from this process # is not kept, however it demonstrates Spack's functionality. export SPACK_DISABLE_LOCAL_CONFIG=true - export SPACK_USER_CONFIG_PATH=$builddir/tmp - export SPACK_USER_CACHE_PATH=$builddir/tmp - bin/spack install zlib + export SPACK_USER_CONFIG_PATH=${builddir}/tmp + export SPACK_USER_CACHE_PATH=${builddir}/tmp + bin/spack --debug install zlib + rm -fr var/spack/cache + rm -fr etc/spack/linux # caches compilers.yaml } package() { - for k in etc lib share var; do - mkdir -p "$pkgdir"/${k}; - cp -r ${k}/spack "$pkgdir"/${k}; + install -m755 -d "${pkgdir}"/opt/spack; + for k in bin etc lib share var; do + mv "${k}" "${pkgdir}"/opt/spack; + done + + for k in LICENSE-APACHE LICENSE-MIT NOTICE; do + install -Dm644 ${k} "${pkgdir}"/usr/share/licenses/${pkgname}/${k}; done - mkdir -p "$pkgdir"/bin - install \ - bin/sbang \ - bin/spack \ - bin/spack-python \ - "$pkgdir"/bin \ - ; + + # lower precedence than /opt/spack/etc/spack/config.yaml + install -D -m644 "${srcdir}"/config.yaml "$pkgdir"/etc/spack/config.yaml; } -sha512sums="bc0dadee54fdbd15b374d6d768ed204ee66e776d9a86ba876b3023bca2875ce1f6ca4cc6fd15334ac0c0ceddab72910317833af277984d941d06d89dc145643d spack-adelie-v0.19.0_p1.tar.bz2 -a6503238d116b74ff9c4ecd08a984df90ce02f95c3e10e907481d99917c73339db1cc49f2b473a37875b92a9a6607cac72057c0a7b3d9a57d44c89ebe0ad3915 archspec-fix-cpu-family-detection.patch" +sha512sums="85ae21de1f6c3d6eb3d3f0edc878820f17bae27236ea89eae0f733fa178eff25da41264960a492a2f34e03bd4f668ba1a2cfc395a814693c23f83b4ac2a80985 spack-adelie-v0.21.0_p1.tar.bz2 +30f6d193971bc6f2941141d0da50d339c459f2b9c6157cc2659a589bd2b546fba35d580cad79dd1bc74bcd9de7db31bc937418598d73b68c69876fee6a1c5c73 clingo-explicit-libatomic.patch +a6503238d116b74ff9c4ecd08a984df90ce02f95c3e10e907481d99917c73339db1cc49f2b473a37875b92a9a6607cac72057c0a7b3d9a57d44c89ebe0ad3915 archspec-fix-cpu-family-detection.patch +8ded405082eec192187fb72896c68200985ee1226b2ef7da19ab43f31138972d5b4000cf997cb6e22664a7c100b52b842df07c44e188f87d4250f698d1885ea6 openssl-explicit-linux-headers.patch +eec3e7dd818c39daea7b8d63b04a6c71d9eb3af32dd899cddc3642152252f4e2eebfd53c3c95365117f9a4826f6f29553f44373948e5c474388021302c8a5ce9 default-no-buildcache.patch +eb09ce82d2c5c63c2cc63b2f82db2888f15ce82100311614f5a73773be2f605337811c4580e0d4eb2f87b730e7ce4afa6dcdc3f3f52321f63a29a2ad533ea5d4 default-adelie-upstream-git.patch +864ae8e73cd80560ed9c4ce03bc6ae8f58b928da348a261617e42b6a680f8cf18f48b120401fe7b4a3f3af260675922044dbd9abbc79b1d2e90f821c00569d5e config.yaml" diff --git a/user/spack/clingo-explicit-libatomic.patch b/user/spack/clingo-explicit-libatomic.patch new file mode 100644 index 000000000..6a1d1a0aa --- /dev/null +++ b/user/spack/clingo-explicit-libatomic.patch @@ -0,0 +1,12 @@ +diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py +index ab5fe9a043..8a31208850 100644 +--- a/var/spack/repos/builtin/packages/clingo/package.py ++++ b/var/spack/repos/builtin/packages/clingo/package.py +@@ -120,6 +120,7 @@ def cmake_args(self): + "-DCLINGO_BUILD_WITH_PYTHON=ON", + "-DPYCLINGO_USER_INSTALL=OFF", + "-DPYCLINGO_USE_INSTALL_PREFIX=ON", ++ "-DCMAKE_CXX_STANDARD_LIBRARIES=-latomic", + self.cmake_py_shared, + ] + if self.spec["cmake"].satisfies("@3.16.0:"): diff --git a/user/spack/config.yaml b/user/spack/config.yaml new file mode 100644 index 000000000..c7ffefb41 --- /dev/null +++ b/user/spack/config.yaml @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------- +# This is the Adélie spack configuration file. +# +# Settings here are versioned with Adélie and are intended to provide +# sensible defaults out of the box. Adélie maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# /opt/spack/etc/spack/config.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/config.yaml +# ------------------------------------------------------------------------- + +config: + + install_tree: + root: $user_cache_path + + source_cache: $user_cache_path/cache diff --git a/user/spack/default-adelie-upstream-git.patch b/user/spack/default-adelie-upstream-git.patch new file mode 100644 index 000000000..cf8e982dd --- /dev/null +++ b/user/spack/default-adelie-upstream-git.patch @@ -0,0 +1,27 @@ +diff --git a/lib/spack/spack/cmd/clone.py b/lib/spack/spack/cmd/clone.py +index ade3c2a739..610ef78ea1 100644 +--- a/lib/spack/spack/cmd/clone.py ++++ b/lib/spack/spack/cmd/clone.py +@@ -12,7 +12,7 @@ + import spack.util.git + from spack.util.executable import ProcessError + +-_SPACK_UPSTREAM = "https://github.com/spack/spack" ++_SPACK_UPSTREAM = "https://git.adelielinux.org/adelie/spack.git" + + description = "create a new installation of spack in another prefix" + section = "admin" +@@ -37,10 +37,10 @@ def get_origin_info(remote): + try: + branch = git("symbolic-ref", "--short", "HEAD", output=str) + except ProcessError: +- branch = "develop" ++ branch = "adelie" + tty.warn("No branch found; using default branch: %s" % branch) +- if remote == "origin" and branch not in ("master", "develop"): +- branch = "develop" ++ if remote == "origin" and branch not in ("master", "develop", "adelie"): ++ branch = "adelie" + tty.warn("Unknown branch found; using default branch: %s" % branch) + try: + origin_url = git( diff --git a/user/spack/default-no-buildcache.patch b/user/spack/default-no-buildcache.patch new file mode 100644 index 000000000..f0cd1bb1f --- /dev/null +++ b/user/spack/default-no-buildcache.patch @@ -0,0 +1,13 @@ +diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py +index 3f9a948a23..bc46e98395 100644 +--- a/lib/spack/spack/cmd/install.py ++++ b/lib/spack/spack/cmd/install.py +@@ -120,7 +120,7 @@ def setup_parser(subparser): + "--use-cache", + action="store_true", + dest="use_cache", +- default=True, ++ default=False, + help="check for pre-built Spack packages in mirrors (default)", + ) + cache_group.add_argument( diff --git a/user/spack/openssl-explicit-linux-headers.patch b/user/spack/openssl-explicit-linux-headers.patch new file mode 100644 index 000000000..763be9df3 --- /dev/null +++ b/user/spack/openssl-explicit-linux-headers.patch @@ -0,0 +1,12 @@ +diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py +index 21b076856a..e73c60a7c1 100644 +--- a/var/spack/repos/builtin/packages/openssl/package.py ++++ b/var/spack/repos/builtin/packages/openssl/package.py +@@ -380,6 +380,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package + depends_on("perl@5.14.0:", type=("build", "test")) + depends_on("ca-certificates-mozilla", type="build", when="certs=mozilla") + depends_on("nasm", when="platform=windows") ++ depends_on("linux-headers", when="platform=linux") + + patch( + "https://github.com/openssl/openssl/commit/f9e578e720bb35228948564192adbe3bc503d5fb.patch?full_index=1", diff --git a/user/spack/spack.post-install b/user/spack/spack.post-install new file mode 100644 index 000000000..e627b96da --- /dev/null +++ b/user/spack/spack.post-install @@ -0,0 +1,28 @@ +#!/bin/sh -e + +cat <<EOF +* +* Welcome to Spack on the Adélie Linux platform, the first +* musl-based distribution for supercomputers. +* +* Please keep in mind that binary mirrors are not currently +* available for this platform, so all packages will need to +* be built from source, including the initial bootstrap. +* +* +* The Spack environment is obtained by sourcing: +* +* $ . /opt/spack/share/spack/setup-env.sh +* +* +* Documentation: +* +* https://spack.readthedocs.io/ +* +* +* Report Adélie-specific Spack issues: +* +* https://git.adelielinux.org/adelie/spack/-/issues +* https://git.adelielinux.org/adelie/packages/-/issues +* +EOF diff --git a/user/spectrwm/APKBUILD b/user/spectrwm/APKBUILD index 76125ebfb..efff1a025 100644 --- a/user/spectrwm/APKBUILD +++ b/user/spectrwm/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=spectrwm -pkgver=3.4.1 +pkgver=3.5.1 _pkgver=$(printf '%s' "$pkgver" | tr . _) pkgrel=0 pkgdesc="Small dynamic tiling window manager" @@ -32,4 +32,4 @@ package() { done } -sha512sums="94d468833124b51fa12b29b173126f10f27dd551d599459e4bea589721b3df6f1f0af0ea67326ed3ad462e1203d3bbcb82032ff83abfa0943ec45afd29dedaa6 spectrwm-3.4.1.tar.gz" +sha512sums="9a5b9bee6debd395b6b5f706d12dbb80a848e4f5f02405a54cf9a47b2bcceb407bf14fce64a9cc4ff9205ed7e688adeefb0280289b73a0cf9927b44cfaec02fa spectrwm-3.5.1.tar.gz" diff --git a/user/spice-gtk/APKBUILD b/user/spice-gtk/APKBUILD index e8a558036..dae9a0eca 100644 --- a/user/spice-gtk/APKBUILD +++ b/user/spice-gtk/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Max Rees <maxcrees@me.com> pkgname=spice-gtk -pkgver=0.38 -pkgrel=1 +pkgver=0.42 +pkgrel=0 pkgdesc="A GTK+ widget for SPICE clients" url="https://www.spice-space.org/" arch="all" @@ -19,9 +19,7 @@ makedepends="$depends_dev acl-dev bash cyrus-sasl-dev eudev-dev zlib-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang spicy spice-glib:glib" -source="https://www.spice-space.org/download/gtk/$pkgname-$pkgver.tar.xz - macro.patch - " +source="https://www.spice-space.org/download/gtk/$pkgname-$pkgver.tar.xz" build() { # Note: pulseaudio support is disabled because it's deprecated. @@ -30,14 +28,12 @@ build() { # USB redirection is disabled until there is reasonable belief # that it is endian safe. # https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/120 - meson \ + meson setup \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --localstatedir=/var \ --buildtype=release \ - -Dcelt051=disabled \ - -Dpulse=disabled \ -Dusbredir=disabled \ -Dcoroutine=gthread \ . output @@ -68,5 +64,4 @@ glib() { "$subpkgdir"/usr/lib/girepository-1.0/ } -sha512sums="27b44ac9f0cee2737ce03bb3f47c62fc0ee2402c291c49fc56cffc4ccb63e2cab001a68ba865a6375d82cb38444408d59c68469783ee4279fa818d8682e902f3 spice-gtk-0.38.tar.xz -9bae6a1866c977d6b7e032e0fe1f8ce07ccfd8777e982453629d9dce284a6f02c68ab8b073865e3c36340e22dd2f83fbda4cabd3a5bc8a274b3a0bbf9c031ccd macro.patch" +sha512sums="fd567e35f6d4ebfe6ef004f358dca4c41254336f55f7dd26cf67b62b2acb4866907186bd0526b7cb52b0c24020cdc8809251127498a8d357555bb0c5d3b8f137 spice-gtk-0.42.tar.xz" diff --git a/user/spice-protocol/APKBUILD b/user/spice-protocol/APKBUILD index d7782af72..a73fe219d 100644 --- a/user/spice-protocol/APKBUILD +++ b/user/spice-protocol/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=spice-protocol -pkgver=0.14.2 +pkgver=0.14.4 pkgrel=0 pkgdesc="Spice protocol header files" url="https://www.spice-space.org/" @@ -14,7 +14,7 @@ subpackages="" source="https://www.spice-space.org/download/releases/$pkgname-$pkgver.tar.xz" build() { - meson -Dprefix=/usr -Ddatadir=lib build + meson setup -Dprefix=/usr -Ddatadir=lib build ninja -C build } @@ -26,4 +26,4 @@ package() { DESTDIR="$pkgdir" ninja -C build install } -sha512sums="181015f0f56d679ebfdbd6dbed37b50b1c0be550a714e8faf70624631d9a246fe68454eb44a1bae1765e1739f2d7469ab767c44f49776751826a4919ec88160e spice-protocol-0.14.2.tar.xz" +sha512sums="c55677fd6da37303487f8245388cbd555715c736e15bca4a305c4374feafc655b74e549ea401949d72e17b2e6ad76f16c5add3963008a18a1fefedd4b4a001c1 spice-protocol-0.14.4.tar.xz" diff --git a/user/squashfs-tools/APKBUILD b/user/squashfs-tools/APKBUILD index e33b06b16..be6eddb44 100644 --- a/user/squashfs-tools/APKBUILD +++ b/user/squashfs-tools/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=squashfs-tools -pkgver=4.4 +pkgver=4.6.1 pkgrel=0 pkgdesc="Tools for SquashFS, a highly compressed read-only filesystem" -url="http://squashfs.sourceforge.net" +url="https://squashfs.sourceforge.net" arch="all" options="!check" # No test suite. license="GPL-2.0+" @@ -12,7 +12,6 @@ makedepends="attr-dev lz4-dev lzo-dev xz-dev zlib-dev" source="https://downloads.sourceforge.net/squashfs/squashfs$pkgver.tar.gz fix-compat.patch " -builddir="$srcdir/squashfs$pkgver/$pkgname" # secfixes: # 4.3-r5: @@ -21,13 +20,13 @@ builddir="$srcdir/squashfs$pkgver/$pkgname" # - CVE-2015-4646 build() { - make XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 + make XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 -C squashfs-tools } package() { - mkdir -p "$pkgdir"/sbin - cp -a mksquashfs unsquashfs "$pkgdir"/sbin + mkdir -p "$pkgdir"/usr/sbin + cp -a squashfs-tools/mksquashfs squashfs-tools/unsquashfs "$pkgdir"/usr/sbin } -sha512sums="e7119f82cea0eda8dffcbf15c9ee511ad457e004bfc0c5a5685e84785e49cf34f3c053036449af6bba0012cef48426f65958c97b9958d58f1b31175cb0bbbe24 squashfs4.4.tar.gz -12f5739aa32b9e15ba3d22e5953034f17867a8837475f13bde5bbc378dbded0483cde42c0cdfc5d33ab3723b9de752c71b5ba8f4301ca7b59aa4054d669c262d fix-compat.patch" +sha512sums="10e8a4b1e2327e062aef4f85860e76ebcd7a29e4c19e152ff7edec4a38316982b5bcfde4ab69da6bcb931258d264c2b6cb40cb5f635f9e6f6eba1ed5976267cb squashfs4.6.1.tar.gz +7572f2fab6357525bc607a8db92b0c1f5fc7d482e935c3ee1828543a3de474162b71b8441f77ee1656873def8593d99158b14c55ec44799f22eed2978aa19147 fix-compat.patch" diff --git a/user/squashfs-tools/fix-compat.patch b/user/squashfs-tools/fix-compat.patch index e93b6b827..adc7e420d 100644 --- a/user/squashfs-tools/fix-compat.patch +++ b/user/squashfs-tools/fix-compat.patch @@ -1,6 +1,6 @@ ---- squashfs-tools/action.c -+++ squashfs-tools/action.c -@@ -2236,6 +2236,9 @@ +--- a/squashfs-tools/action.c ++++ b/squashfs-tools/action.c +@@ -2562,6 +2562,9 @@ return 1; } @@ -10,21 +10,21 @@ TEST_FN(name, ACTION_ALL_LNK, \ return fnmatch(atom->argv[0], action_data->name, ---- squashfs-tools/mksquashfs.c -+++ squashfs-tools/mksquashfs.c -@@ -4665,6 +4665,9 @@ - return paths; +--- a/squashfs-tools/mksquashfs.c ++++ b/squashfs-tools/mksquashfs.c +@@ -4557,6 +4557,9 @@ + return source; } +#ifndef FNM_EXTMATCH +#define FNM_EXTMATCH 0 +#endif - int excluded_match(char *name, struct pathname *path, struct pathnames **new) - { ---- squashfs-tools/unsquashfs.c -+++ squashfs-tools/unsquashfs.c -@@ -1457,6 +1457,9 @@ + static struct dir_info *add_source(struct dir_info *sdir, char *source, + char *subpath, char *file, char **prefix, +--- a/squashfs-tools/unsquashfs.c ++++ b/squashfs-tools/unsquashfs.c +@@ -1450,6 +1450,9 @@ free(paths); } @@ -32,5 +32,5 @@ +#define FNM_EXTMATCH 0 +#endif - int matches(struct pathnames *paths, char *name, struct pathnames **new) - { + struct pathname *add_path(struct pathname *paths, int type, char *target, + char *alltarget) diff --git a/user/strongswan/APKBUILD b/user/strongswan/APKBUILD index e5e4c27fd..0679774e1 100644 --- a/user/strongswan/APKBUILD +++ b/user/strongswan/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=strongswan -pkgver=5.9.8 +pkgver=5.9.13 pkgrel=0 pkgdesc="IPsec-based VPN solution focused on security and ease of use, supporting IKEv1/IKEv2 and MOBIKE" url="https://www.strongswan.org/" @@ -12,6 +12,7 @@ pkggroups="ipsec" license="GPL-2.0 AND RSA-MD5 AND RSA-PKCS11 AND DES" depends="iproute2" depends_dev="" +checkdepends="libexecinfo-dev" makedepends="$depends_dev linux-headers python3 sqlite-dev openssl-dev curl-dev gmp-dev libcap-dev" subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc" @@ -23,6 +24,10 @@ source="https://download.strongswan.org/$pkgname-$pkgver.tar.bz2 " # secfixes: +# 5.9.12-r0: +# - CVE-2023-41913 +# 5.9.11-r0: +# - CVE-2023-26463 # 5.9.8-r0: # - CVE-2022-40617 # 5.9.5-r0: @@ -93,6 +98,6 @@ package() { install -m755 -D "$srcdir/charon.initd" "$pkgdir/etc/init.d/charon" } -sha512sums="16d3afc80704f896f3f97addf452b4bb29fc1911c54e980f76ac48bdbe2340ce3bd4e79024848cb7961bbe9ad5458d93389343878ca042af658d51b11219666b strongswan-5.9.8.tar.bz2 +sha512sums="a929c1fb2a5e7d3064f6cd0be76703198406dad981f4b345311a004c18aa3c12adcb49eb33705fe4c3c31daf556cef5906d8753f5d9fbff5a27b732f93d8f19f strongswan-5.9.13.tar.bz2 8b61e3ffbb39b837733e602ec329e626dc519bf7308d3d4192b497d18f38176789d23ef5afec51f8463ee1ddaf4d74546b965c03184132e217cbc27017e886c9 strongswan.initd 7182bed917585bce9749b4495ad64d3052d2999dbb505c34d568acd6df7b151232ec10c8efe12f0a07d0555ddfe01aad4e3b767b08f17a55ffcbedc57dc9d934 charon.initd" diff --git a/user/supertux/APKBUILD b/user/supertux/APKBUILD index f1518855d..035119725 100644 --- a/user/supertux/APKBUILD +++ b/user/supertux/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=supertux pkgver=0.6.3 -pkgrel=0 +pkgrel=1 pkgdesc="Platform game featuring Tux the Penugin" url="https://www.supertux.org/" arch="all" @@ -15,6 +15,7 @@ subpackages="$pkgname-doc" source="https://github.com/SuperTux/supertux/releases/download/v$pkgver/SuperTux-v$pkgver-Source.tar.gz find-sdl2.patch cmake32.patch + zip-header.patch " builddir="$srcdir"/SuperTux-v$pkgver-Source @@ -43,4 +44,5 @@ package() { sha512sums="c6540bab1b3befbd975756031c4587e5569d9613d9539dc829c728b574d1a4da92816d6a7e68947b32963cc13d9b8b52312701c199138640e9f89e5885433798 SuperTux-v0.6.3-Source.tar.gz 9e229d837d8006d618320ef3f7465ef88f8903853ed1ef3e291373d25f8542010f7dad6c1c5859e857db48e1447337ddbed0619228f5eac6aba916b69567fd94 find-sdl2.patch -c0e6cdd52e07e04ef67edc8b7f3d3c37dd2ffd35381b704b43512a01bbd0a5a35fbeae7ec225be8e4643dbcaac3eae427d7ea5217dc1e676f2991ee46f5bf513 cmake32.patch" +c0e6cdd52e07e04ef67edc8b7f3d3c37dd2ffd35381b704b43512a01bbd0a5a35fbeae7ec225be8e4643dbcaac3eae427d7ea5217dc1e676f2991ee46f5bf513 cmake32.patch +038a00697db1533154d1664a58516827d1574c3b79712c72e3bbb92b23943a9ac3a198e20705a7ca470eb34be605d5765ef2a4ebc53694e28543b609a2f2444b zip-header.patch" diff --git a/user/supertux/zip-header.patch b/user/supertux/zip-header.patch new file mode 100644 index 000000000..b02e74d0e --- /dev/null +++ b/user/supertux/zip-header.patch @@ -0,0 +1,30 @@ +From 81809dd5e6f611b1d64d952f6d96310bcc9c5fca Mon Sep 17 00:00:00 2001 +From: Semphris <semphris@protonmail.com> +Date: Fri, 17 Jun 2022 12:36:26 -0400 +Subject: [PATCH] Fix problem with GCC 11 and Partio's ZIP manager (missing + #include <memory>) + +Closes #2219 on GitHub. Same fix, but puts the include closer to the copyright header. +--- + external/partio_zip/zip_manager.hpp | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/external/partio_zip/zip_manager.hpp b/external/partio_zip/zip_manager.hpp +index 666884dda53..245303c76be 100644 +--- a/external/partio_zip/zip_manager.hpp ++++ b/external/partio_zip/zip_manager.hpp +@@ -1,8 +1,12 @@ + // SOURCE: https://github.com/wdas/partio/blob/main/src/lib/io/ZIP.h ++// NOTE: This file was edited for purposes of compatibility with SuperTux. + +-/* ++// This include has been added to fix a problem with GCC 11+ (and maybe 10) ++#include <memory> ++ ++// ============================================================================= + +-NOTE: This file was edited for purposes of compatibility with SuperTux. ++/* + + PARTIO SOFTWARE + Copyright 2010 Disney Enterprises, Inc. All rights reserved diff --git a/user/swig/APKBUILD b/user/swig/APKBUILD index 20ec308c1..294e1c429 100644 --- a/user/swig/APKBUILD +++ b/user/swig/APKBUILD @@ -1,18 +1,16 @@ # Maintainer: Zach van Rijn <me@zv.io> pkgname=swig -pkgver=4.0.2 -pkgrel=2 +pkgver=4.2.1 +pkgrel=0 pkgdesc="Tool for integrating C and C++ code with other languages" -url="http://www.swig.org/" +url="https://www.swig.org/" arch="all" license="GPL-3.0+ AND MIT" depends="" checkdepends="boost-dev diffutils" -makedepends="pcre-dev perl-dev python3-dev zlib-dev" +makedepends="pcre2-dev perl-dev python3-dev zlib-dev" subpackages="$pkgname-doc" -source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz - fix-overload-simple-cast-test.patch - " +source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz" build() { ./configure \ @@ -34,5 +32,4 @@ package() { install -D -m644 LICENSE-UNIVERSITIES "$pkgdir"/usr/share/licenses/$pkgname/LICENSE-UNIVERSITIES } -sha512sums="05e7da70ce6d9a733b96c0bcfa3c1b82765bd859f48c74759bbf4bb1467acb1809caa310cba5e2b3280cd704fca249eaa0624821dffae1d2a75097c7f55d14ed swig-4.0.2.tar.gz -3de6484d920d8ecf042102d40af3a375ecb1ead3c4e0bc45ae63633e5fd652f52e1938108f747514a654a19d93a783afe2968b141be56957f438162263d62d8a fix-overload-simple-cast-test.patch" +sha512sums="019dee5a46d57e1030eef47cd5d007ccaadbdcd4e53cd30d7c795f0118ecf4406a78185534502c81c5f6d7bac0713256e7e19b20b5a2d14e2c552219edbaf5cf swig-4.2.1.tar.gz" diff --git a/user/swig/fix-overload-simple-cast-test.patch b/user/swig/fix-overload-simple-cast-test.patch deleted file mode 100644 index a3c8cff26..000000000 --- a/user/swig/fix-overload-simple-cast-test.patch +++ /dev/null @@ -1,23 +0,0 @@ -From a2850397ba3eec5d4c58304cf8277ca535919760 Mon Sep 17 00:00:00 2001 -From: Julien Schueller <schueller@phimeca.com> -Date: Thu, 5 Aug 2021 14:05:10 +0200 -Subject: [PATCH] [Python] Fix overload_simple_cast test with 3.10 - -Closes #2044 ---- - Examples/test-suite/python/python_overload_simple_cast_runme.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Examples/test-suite/python/python_overload_simple_cast_runme.py b/Examples/test-suite/python/python_overload_simple_cast_runme.py -index fc398ab29b9..7a0174af8a2 100644 ---- a/Examples/test-suite/python/python_overload_simple_cast_runme.py -+++ b/Examples/test-suite/python/python_overload_simple_cast_runme.py -@@ -9,6 +9,8 @@ def __init__(self, x): - def __int__(self): - return self.x - -+ def __index__(self): -+ return self.x - - class Ad: - diff --git a/user/terminus-font/APKBUILD b/user/terminus-font/APKBUILD index 078f3a11a..6e76721f8 100644 --- a/user/terminus-font/APKBUILD +++ b/user/terminus-font/APKBUILD @@ -1,7 +1,8 @@ # Contributor: Max Rees <maxcrees@me.com> # Maintainer: Max Rees <maxcrees@me.com> pkgname=terminus-font -pkgver=4.48 +pkgver=4.49.1 +_pkgver=${pkgver%.*} pkgrel=0 pkgdesc="Monospace bitmap font (for X11 and console)" url="http://terminus-font.sourceforge.net/" # No HTTPS @@ -10,7 +11,7 @@ options="!check" # Fonts have no test suite license="OFL-1.1" depends="" makedepends="bdftopcf python3" -source="https://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz +source="https://downloads.sourceforge.net/project/$pkgname/$pkgname-$_pkgver/$pkgname-$pkgver.tar.gz 75-yes-terminus.conf" build() { @@ -33,5 +34,5 @@ package() { ln -s /etc/fonts/conf.avail/75-yes-terminus.conf . } -sha512sums="5f45f7d0e7396f02158f4751aaafb3f0a3fb68dbe3e5501f86a5138c6d52f5106053e38c368d560e5979e29250074dbde5165702b8905a564d029663a2219af4 terminus-font-4.48.tar.gz +sha512sums="2e3a99960c459a453b5879bebbebeb653f0a22060177bf75c67bbeb7d32cfe1acce9e74a88fdc42e299b6dc402e0708552487abd26e80e985c7d6059b0d445a8 terminus-font-4.49.1.tar.gz ac7bdf367bbff1e5735b5bd65fc1bc06b55bcb72aaafeb08c7d8e969aabad863474b1104faa42ead7d838433c80cfc50f05578dad03c8081cd82cfda0af86a83 75-yes-terminus.conf" diff --git a/user/the_silver_searcher/APKBUILD b/user/the_silver_searcher/APKBUILD index e906445e6..7c504dc9e 100644 --- a/user/the_silver_searcher/APKBUILD +++ b/user/the_silver_searcher/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=the_silver_searcher pkgver=2.2.0 -pkgrel=0 +pkgrel=1 pkgdesc="Tool for very fast searching of text in documents and code" url="https://geoff.greer.fm/ag/" arch="all" @@ -12,8 +12,11 @@ depends="" checkdepends="cram" makedepends="pcre-dev xz-dev zlib-dev" subpackages="$pkgname-doc" -source="https://geoff.greer.fm/ag/releases/the_silver_searcher-$pkgver.tar.gz" -builddir="$srcdir/the_silver_searcher-$pkgver" +source="https://geoff.greer.fm/ag/releases/the_silver_searcher-$pkgver.tar.gz + pipe-symlink.patch + pattern-fix.patch + no-common.patch + " build() { ./configure \ @@ -34,4 +37,7 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="89d4e4f7f34c0d57aa880e7c3466f0373b961744a89ad30541e89e2d614322ab46c8044ec458406a117f74b0fea14cd3063fa4e0624a96526aa23eaccd6f1141 the_silver_searcher-2.2.0.tar.gz" +sha512sums="89d4e4f7f34c0d57aa880e7c3466f0373b961744a89ad30541e89e2d614322ab46c8044ec458406a117f74b0fea14cd3063fa4e0624a96526aa23eaccd6f1141 the_silver_searcher-2.2.0.tar.gz +4c7af6c22cb01d09070d642c2e1ace969ddbfc60750dba7ffa2f38cb960b68c01ffaa0edbbafe11cbc30805bd8f845bae1ea7863b181e55fc4263b4fe0b95fb4 pipe-symlink.patch +8cce44cc3d1b9732fa616ad34ccca3292dddbc45280c64434aaae5ce5bb14cb9847fb4ff584b3042215d3adef6460c6f74a64f6eabe583fa440d89fc74b39feb pattern-fix.patch +b7d0c96bfd8a9984b0082fac2530826cd3fb5f98ca957c03d628ed7f908f5e27108a18c00813fcb498ec12aa47b82fffc1d48b9d0ffaa5dd36960d7063c09a9e no-common.patch" diff --git a/user/the_silver_searcher/no-common.patch b/user/the_silver_searcher/no-common.patch new file mode 100644 index 000000000..50f1fa6a9 --- /dev/null +++ b/user/the_silver_searcher/no-common.patch @@ -0,0 +1,207 @@ +From 21eaa1c4160b868b0c5bbf59da17974429f30055 Mon Sep 17 00:00:00 2001 +From: Shlomi Fish <shlomif@shlomifish.org> +Date: Wed, 15 Apr 2020 20:23:52 +0300 +Subject: [PATCH] Fix multiple global symbols definitions. + +See the use of extern here: + +* https://www.geeksforgeeks.org/understanding-extern-keyword-in-c/ + +* https://en.wikipedia.org/wiki/External_variable + +* +https://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c +--- + src/ignore.c | 2 ++ + src/ignore.h | 2 +- + src/log.c | 1 + + src/log.h | 2 +- + src/options.c | 2 ++ + src/options.h | 2 +- + src/search.c | 13 +++++++++++++ + src/search.h | 20 ++++++++++---------- + src/util.c | 2 ++ + src/util.h | 4 ++-- + 10 files changed, 35 insertions(+), 15 deletions(-) + +diff --git a/src/ignore.c b/src/ignore.c +index 7ae83f3ee..88036eff4 100644 +--- a/src/ignore.c ++++ b/src/ignore.c +@@ -20,6 +20,8 @@ + const int fnmatch_flags = FNM_PATHNAME; + #endif + ++ignores *root_ignores; ++ + /* TODO: build a huge-ass list of files we want to ignore by default (build cache stuff, pyc files, etc) */ + + const char *evil_hardcoded_ignore_files[] = { +diff --git a/src/ignore.h b/src/ignore.h +index 20d5a6af8..8db0f3772 100644 +--- a/src/ignore.h ++++ b/src/ignore.h +@@ -29,7 +29,7 @@ struct ignores { + }; + typedef struct ignores ignores; + +-ignores *root_ignores; ++extern ignores *root_ignores; + + extern const char *evil_hardcoded_ignore_files[]; + extern const char *ignore_pattern_files[]; +diff --git a/src/log.c b/src/log.c +index 1481b6d02..f6f4e9a83 100644 +--- a/src/log.c ++++ b/src/log.c +@@ -4,6 +4,7 @@ + #include "log.h" + #include "util.h" + ++pthread_mutex_t print_mtx = PTHREAD_MUTEX_INITIALIZER; + static enum log_level log_threshold = LOG_LEVEL_ERR; + + void set_log_level(enum log_level threshold) { +diff --git a/src/log.h b/src/log.h +index 85847ee7b..318622c3c 100644 +--- a/src/log.h ++++ b/src/log.h +@@ -9,7 +9,7 @@ + #include <pthread.h> + #endif + +-pthread_mutex_t print_mtx; ++extern pthread_mutex_t print_mtx; + + enum log_level { + LOG_LEVEL_DEBUG = 10, +diff --git a/src/options.c b/src/options.c +index 4abf4dcd3..699530138 100644 +--- a/src/options.c ++++ b/src/options.c +@@ -20,6 +20,8 @@ const char *color_line_number = "\033[1;33m"; /* bold yellow */ + const char *color_match = "\033[30;43m"; /* black with yellow background */ + const char *color_path = "\033[1;32m"; /* bold green */ + ++cli_options opts; ++ + /* TODO: try to obey out_fd? */ + void usage(void) { + printf("\n"); +diff --git a/src/options.h b/src/options.h +index aae930936..0d852167e 100644 +--- a/src/options.h ++++ b/src/options.h +@@ -91,7 +91,7 @@ typedef struct { + } cli_options; + + /* global options. parse_options gives it sane values, everything else reads from it */ +-cli_options opts; ++extern cli_options opts; + + typedef struct option option_t; + +diff --git a/src/search.c b/src/search.c +index 0f4ae2113..0dad3c072 100644 +--- a/src/search.c ++++ b/src/search.c +@@ -2,6 +2,19 @@ + #include "print.h" + #include "scandir.h" + ++size_t alpha_skip_lookup[256]; ++size_t *find_skip_lookup; ++uint8_t h_table[H_SIZE] __attribute__((aligned(64))); ++ ++work_queue_t *work_queue = NULL; ++work_queue_t *work_queue_tail = NULL; ++int done_adding_files = 0; ++pthread_cond_t files_ready = PTHREAD_COND_INITIALIZER; ++pthread_mutex_t stats_mtx = PTHREAD_MUTEX_INITIALIZER; ++pthread_mutex_t work_queue_mtx = PTHREAD_MUTEX_INITIALIZER; ++ ++symdir_t *symhash = NULL; ++ + void search_buf(const char *buf, const size_t buf_len, + const char *dir_full_path) { + int binary = -1; /* 1 = yes, 0 = no, -1 = don't know */ +diff --git a/src/search.h b/src/search.h +index 6bac42038..00aa018dd 100644 +--- a/src/search.h ++++ b/src/search.h +@@ -31,9 +31,9 @@ + #include "uthash.h" + #include "util.h" + +-size_t alpha_skip_lookup[256]; +-size_t *find_skip_lookup; +-uint8_t h_table[H_SIZE] __attribute__((aligned(64))); ++extern size_t alpha_skip_lookup[256]; ++extern size_t *find_skip_lookup; ++extern uint8_t h_table[H_SIZE] __attribute__((aligned(64))); + + struct work_queue_t { + char *path; +@@ -41,12 +41,12 @@ struct work_queue_t { + }; + typedef struct work_queue_t work_queue_t; + +-work_queue_t *work_queue; +-work_queue_t *work_queue_tail; +-int done_adding_files; +-pthread_cond_t files_ready; +-pthread_mutex_t stats_mtx; +-pthread_mutex_t work_queue_mtx; ++extern work_queue_t *work_queue; ++extern work_queue_t *work_queue_tail; ++extern int done_adding_files; ++extern pthread_cond_t files_ready; ++extern pthread_mutex_t stats_mtx; ++extern pthread_mutex_t work_queue_mtx; + + + /* For symlink loop detection */ +@@ -64,7 +64,7 @@ typedef struct { + UT_hash_handle hh; + } symdir_t; + +-symdir_t *symhash; ++extern symdir_t *symhash; + + ssize_t search_buf(const char *buf, const size_t buf_len, + const char *dir_full_path); +diff --git a/src/util.c b/src/util.c +index 3949477b2..90ffb6f1d 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -21,6 +21,8 @@ + } \ + return ptr; + ++FILE *out_fd = NULL; ++ag_stats stats; + void *ag_malloc(size_t size) { + void *ptr = malloc(size); + CHECK_AND_RETURN(ptr) +diff --git a/src/util.h b/src/util.h +index 0c9b9b112..338b05f45 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -12,7 +12,7 @@ + #include "log.h" + #include "options.h" + +-FILE *out_fd; ++extern FILE *out_fd; + + #ifndef TRUE + #define TRUE 1 +@@ -51,7 +51,7 @@ typedef struct { + } ag_stats; + + +-ag_stats stats; ++extern ag_stats stats; + + /* Union to translate between chars and words without violating strict aliasing */ + typedef union { diff --git a/user/the_silver_searcher/pattern-fix.patch b/user/the_silver_searcher/pattern-fix.patch new file mode 100644 index 000000000..6489e2c7c --- /dev/null +++ b/user/the_silver_searcher/pattern-fix.patch @@ -0,0 +1,78 @@ +From 755c6e5c06fc38903fa0d66be68a9c8ffa525c1b Mon Sep 17 00:00:00 2001 +From: Evan Moses <evan@emoses.org> +Date: Thu, 9 Jan 2020 17:34:44 -0800 +Subject: [PATCH] Fix ignore patterns in subdirectories with leading slashes + +Currenetly if you have an ignore file in a subdirectory "sub" with a pattern +like + /ignorethis +The directory sub/ignorethis will be ignored if you run ag from +within sub, but it won't be ignored if you run it from sub's parent. +that is + + $ ag needle + +will search files in sub/ignorethis, but + + $ cd sub + $ ag needle + +Will not. This is a bug +--- + src/ignore.c | 8 ++++++-- + tests/ignore_slash_in_subdir.t | 19 +++++++++++++++++++ + 2 files changed, 25 insertions(+), 2 deletions(-) + create mode 100644 tests/ignore_slash_in_subdir.t + +diff --git a/src/ignore.c b/src/ignore.c +index fa4188919..1d1c07b13 100644 +--- a/src/ignore.c ++++ b/src/ignore.c +@@ -206,6 +206,7 @@ static int ackmate_dir_match(const char *dir_name) { + /* This is the hottest code in Ag. 10-15% of all execution time is spent here */ + static int path_ignore_search(const ignores *ig, const char *path, const char *filename) { + char *temp; ++ int temp_start_pos; + size_t i; + int match_pos; + +@@ -216,9 +217,12 @@ static int path_ignore_search(const ignores *ig, const char *path, const char *f + } + + ag_asprintf(&temp, "%s/%s", path[0] == '.' ? path + 1 : path, filename); ++ //ig->abs_path has its leading slash stripped, so we have to strip the leading slash ++ //of temp as well ++ temp_start_pos = (temp[0] == '/') ? 1 : 0; + +- if (strncmp(temp, ig->abs_path, ig->abs_path_len) == 0) { +- char *slash_filename = temp + ig->abs_path_len; ++ if (strncmp(temp+temp_start_pos, ig->abs_path, ig->abs_path_len) == 0) { ++ char *slash_filename = temp + temp_start_pos + ig->abs_path_len; + if (slash_filename[0] == '/') { + slash_filename++; + } +diff --git a/tests/ignore_slash_in_subdir.t b/tests/ignore_slash_in_subdir.t +new file mode 100644 +index 000000000..167d6ffb4 +--- /dev/null ++++ b/tests/ignore_slash_in_subdir.t +@@ -0,0 +1,19 @@ ++Setup: ++ ++ $ . $TESTDIR/setup.sh ++ $ mkdir -p subdir/ignoredir ++ $ mkdir ignoredir ++ $ printf 'match1\n' > subdir/ignoredir/file1.txt ++ $ printf 'match1\n' > ignoredir/file1.txt ++ $ printf '/ignoredir\n' > subdir/.ignore ++ ++Ignore file in subdir/ignoredir, but not in ignoredir: ++ ++ $ ag match ++ ignoredir/file1.txt:1:match1 ++ ++From subdir, ignore file in subdir/ignoredir: ++ ++ $ cd subdir ++ $ ag match ++ [1] diff --git a/user/the_silver_searcher/pipe-symlink.patch b/user/the_silver_searcher/pipe-symlink.patch new file mode 100644 index 000000000..ee47f9439 --- /dev/null +++ b/user/the_silver_searcher/pipe-symlink.patch @@ -0,0 +1,26 @@ +From 095c3f091e23fda1d9d00bd42c38cf81bba1c14f Mon Sep 17 00:00:00 2001 +From: Jacob Wahlgren <jacob@dstsrc.net> +Date: Wed, 28 Nov 2018 23:35:52 +0100 +Subject: [PATCH] Skip symlinks to named pipes + +The d_type field contains the type as lstat would put it, but when +checking for a named pipe we need the stat behavior. + +Fixes https://github.com/ggreer/the_silver_searcher/issues/1272 +--- + src/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util.c b/src/util.c +index cb23914d3..3949477b2 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -516,7 +516,7 @@ int is_symlink(const char *path, const struct dirent *d) { + + int is_named_pipe(const char *path, const struct dirent *d) { + #ifdef HAVE_DIRENT_DTYPE +- if (d->d_type != DT_UNKNOWN) { ++ if (d->d_type != DT_UNKNOWN && d->d_type != DT_LNK) { + return d->d_type == DT_FIFO || d->d_type == DT_SOCK; + } + #endif diff --git a/user/thunar-archive-plugin/APKBUILD b/user/thunar-archive-plugin/APKBUILD index a37c7d803..233cc8b57 100644 --- a/user/thunar-archive-plugin/APKBUILD +++ b/user/thunar-archive-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=thunar-archive-plugin -pkgver=0.5.0 +pkgver=0.5.2 pkgrel=0 pkgdesc="Archive management support for Thunar" url="https://www.xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5a606f5102689e5e0fa051b25cae6f66248491aeab2c6402fd158151f9cbfab54ff4b61c36eab89fdf323b65065d955bdedd6760f32a5493179e92492ee1df37 thunar-archive-plugin-0.5.0.tar.bz2" +sha512sums="f334b960c623bc6c5736ba38d0e965b4e8d4f22fe857a66301c36c255701a702f839d6f63f67b37bc665066d75d787ea8159d4eed7561a2ecd98340bdcb65bc0 thunar-archive-plugin-0.5.2.tar.bz2" diff --git a/user/thunar/APKBUILD b/user/thunar/APKBUILD index 1ea5240c7..2de35a251 100644 --- a/user/thunar/APKBUILD +++ b/user/thunar/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=thunar -pkgver=4.18.7 +pkgver=4.18.10 pkgrel=0 pkgdesc="File manager for the XFCE desktop environment" url="https://xfce.org" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="bbe567bad7c020489c3895109daf14edceef4d6301ac430f36c3036017a5d66d706aecd85471b9e41d25b7cbcfd86fefc4c14f904d4b38d19fb7ecea081f6eb9 thunar-4.18.7.tar.bz2" +sha512sums="f6b76db2cc69e4f14d46afb3ba602ba88d37b1d9e76e76dcf18949839ac1108c191bdd0158922a732805cfcb85780bbf6c998aedac02b502c8e1d8fcf4cfab32 thunar-4.18.10.tar.bz2" diff --git a/user/thunderbird/APKBUILD b/user/thunderbird/APKBUILD index 78ee2c13e..9dc8d646b 100644 --- a/user/thunderbird/APKBUILD +++ b/user/thunderbird/APKBUILD @@ -1,10 +1,11 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=thunderbird pkgver=91.13.0 -pkgrel=2 +pkgrel=3 +_llvmver=14 pkgdesc="Email client from Mozilla" url="https://www.thunderbird.net/" -arch="all !ppc !armv7" # #837, #1015 +arch="all !ppc" # #837 options="!check" # Tests disabled license="MPL-2.0" depends="" @@ -12,7 +13,7 @@ depends="" # system-libs # actual deps makedepends=" - autoconf2.13 cargo cbindgen clang llvm14-dev node ncurses-dev + autoconf2.13 cargo cbindgen clang llvm${_llvmver}-dev node ncurses-dev perl python3 rust cmd:which alsa-lib-dev bzip2-dev icu-dev libevent-dev libffi-dev libpng-dev @@ -28,6 +29,7 @@ source="https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thun bad-google-code.patch BTS-1074.patch + disable-arm-flac.patch fix-mutex-build.patch fix-seccomp-bpf.patch gcc89074.patch @@ -44,6 +46,7 @@ source="https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thun stackwalk-x86-ppc.patch triplet-vendor-support.patch webrender.patch + gcc13.patch thunderbird.desktop " @@ -81,36 +84,39 @@ ldpath="$_mozappdir" prepare() { default_prepare cp "$srcdir"/mozconfig "$builddir"/mozconfig - echo "ac_add_options --enable-optimize=\"$CFLAGS\"" >> "$builddir"/mozconfig echo "ac_add_options --host=\"$CHOST\"" >> "$builddir"/mozconfig echo "ac_add_options --target=\"$CTARGET\"" >> "$builddir"/mozconfig echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$JOBS\"" >> "$builddir"/mozconfig + # arch-specific configuration case "$CARCH" in - pmmx|x86*) + pmmx|x86*|arm*) echo "ac_add_options --disable-elf-hack" >> "$builddir"/mozconfig ;; s390x) echo "ac_add_options --disable-startupcache" >> "$builddir"/mozconfig ;; esac + + # 32-bit memory ceiling, #1012, #1057 + case "${CARCH}" in + pmmx|x86|ppc|i528|m68k|mips32*|arm*) + echo "ac_add_options --disable-debug-symbols" >> "$builddir"/mozconfig + echo "ac_add_options --enable-strip" >> "$builddir"/mozconfig + CFLAGS="${CFLAGS} -g0"; + ;; + esac + + echo "ac_add_options --enable-optimize=\"$CFLAGS\"" >> "$builddir"/mozconfig } build() { + export PATH="/usr/lib/llvm${_llvmver}/bin:${PATH}" #1230 export SHELL=/bin/sh export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export USE_SHORT_LIBNAME=1 export MACH_USE_SYSTEM_PYTHON=1 - # gcc 6 - export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2" - - case "${CARCH}" in - armv7) - # 32-bit memory ceiling, #1012 - LDFLAGS="${LDFLAGS} -Wl,--strip-debug"; - ;; - esac # set rpath so linker finds the libs export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}" @@ -152,6 +158,7 @@ sha512sums="e73d3db4333ad659ec1ab249bd261e8c28301c125d0c39b473c83f8fccace6d4916a afc87cdd19500f8b6b0bedabe98339cca9e6af86edb45e673c6ee0a49bdb3a48b1816f6f5f8790cab86cca428ab7f142cbeb6462079fe293f5f13563a7761896 mozconfig ace7492f4fb0523c7340fdc09c831906f74fddad93822aff367135538dacd3f56288b907f5a04f53f94c76e722ba0bab73e28d83ec12d3e672554712e6b08613 bad-google-code.patch df76bae9deaaae98afa9e1e853de5d41a4f84db65057bfe70de3ae172515bdef58a5f9ee0b2303493dc67e9a6aad54af4c9931166de1144737a5867f24b51a4f BTS-1074.patch +b44c55fb38b856791dd6966c5af24b657c0516d4f747fc0595eb470f58aa4b6e28c4304892589c6f9d623daba2e0fadc338303da409c4542a98d369339438ebe disable-arm-flac.patch c0b2bf43206c2a5154e560ef30189a1062ae856861b39f52ce69002390ff9972d43e387bfd2bf8d2ab3cac621987bc042c8c0a8b4cf90ae05717ca7705271880 fix-mutex-build.patch 70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch 6eb7fb134760f5d232710c56f18f14de4f533e41e269531edd01f5650f6d641513e34a8d2294af5ad6fd184736f674c734efb4cc003636a75e14a8fdba2fe3b0 gcc89074.patch @@ -168,4 +175,5 @@ c9c5610b99e73a1eedd3510e73921cba84f8c6d0c58fc7fe5b4a7ec261bd5fe530560856fba46d6b 452b47b825294779f98ed46bc1065dad76b79ff453521ef049934a120f349c84a1c863b16af1828fe053059823da9690ec917c055ae02dcc5c80c54cad732448 stackwalk-x86-ppc.patch 8c6160975f181ea0ab257134672e696d895b99c7bb00a260deedb38e3374510e848bf943197e0ab7f684a18496a898175159845b0e7325183c37748183418053 triplet-vendor-support.patch b7c1ac21cd03b7cdc887e005ed970cf13ff95643c7651decf1e6d42094cda6a0464dc2ba3cded3827f6d0f3682c2c9b081a7667f386133aa6e3072d0464e72e8 webrender.patch +bb57b3ed998543f9a2edcc379a0c5e2d7e855a0d6f538547f18cdfce56f6c91a3c26a8b1505824628fdd394f0f75a8e98c7fb559ef79eac803d4028e5e9827e5 gcc13.patch 95a2b1deb4f6c90750fdd2bfe8ca0a7879a5b267965091705a6beb0a0a4b1ccad75d11df7b9885543ca4232ff704e975c6946f4c11804cb71c471e06f9576001 thunderbird.desktop" diff --git a/user/thunderbird/disable-arm-flac.patch b/user/thunderbird/disable-arm-flac.patch new file mode 100644 index 000000000..dff387361 --- /dev/null +++ b/user/thunderbird/disable-arm-flac.patch @@ -0,0 +1,15 @@ +32-bit ARM assembler is mostly for Android32 accel anyway. + +It doesn't link properly on musl (TEXTRELs). + +--- thunderbird-91.13.0/toolkit/moz.configure.old 2023-10-09 10:40:18.231733637 +0000 ++++ thunderbird-91.13.0/toolkit/moz.configure 2023-10-10 02:22:34.743712070 +0000 +@@ -1894,7 +1894,7 @@ + flac_only = True + elif target.cpu == "x86_64": + flags = ["-D__x86_64__", "-DPIC", "-DELF", "-Pconfig_unix64.asm"] +- elif target.cpu in ("x86", "arm", "aarch64"): ++ elif target.cpu in ("x86", "aarch64"): + flac_only = True + else: + enable = False diff --git a/user/thunderbird/gcc13.patch b/user/thunderbird/gcc13.patch new file mode 100644 index 000000000..1c4f085e0 --- /dev/null +++ b/user/thunderbird/gcc13.patch @@ -0,0 +1,10 @@ +--- firefox-91.13.0/gfx/2d/Rect.h.old 2022-08-15 13:04:38.000000000 -0500 ++++ firefox-91.13.0/gfx/2d/Rect.h 2024-05-28 20:50:50.230975904 -0500 +@@ -15,6 +15,7 @@ + #include "mozilla/Maybe.h" + + #include <cmath> ++#include <cstdint> + + namespace mozilla { + diff --git a/user/tigervnc/0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch b/user/tigervnc/0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch deleted file mode 100644 index 1c608048c..000000000 --- a/user/tigervnc/0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 065a471d16636c3fba5da8aed86ffa30dcfd489b Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> -Date: Wed, 20 Mar 2019 13:22:51 -0500 -Subject: [PATCH 1/2] CSecurityTLS: Use size_t as argument for new -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Using an 'int' is invalid, and produces the following output under GCC 8.3.0: - -tigervnc-1.9.0/common/rfb/CSecurityTLS.cxx: In member function ‘void rfb::CSecurityTLS::checkSession()’: -tigervnc-1.9.0/common/rfb/CSecurityTLS.cxx:384:11: error: specified bound range [18446744071562067968, 18446744073709551615] exceeds ‘INT_MAX’ [-Werror=format-truncation=] - snprintf(certinfo, len, "This certificate has been signed by an unknown " - ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - "authority:\n\n%s\n\nDo you want to save it and " - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - "continue? ", info.data); - ~~~~~~~~~~~~~~~~~~~~~~~~ -tigervnc-1.9.0/common/rfb/CSecurityTLS.cxx:380:26: error: argument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=] - certinfo = new char[len]; - ^ -In file included from /usr/include/c++/8.3.0/ext/new_allocator.h:33, - from /usr/include/c++/8.3.0/powerpc64-foxkit-linux-musl/bits/c++allocator.h:33, - from /usr/include/c++/8.3.0/bits/allocator.h:46, - from /usr/include/c++/8.3.0/bits/stl_tree.h:64, - from /usr/include/c++/8.3.0/set:60, - from tigervnc-1.9.0/common/rfb/ConnParams.h:26, - from tigervnc-1.9.0/common/rfb/SMsgHandler.h:28, - from tigervnc-1.9.0/common/rfb/SConnection.h:29, - from tigervnc-1.9.0/common/rfb/SSecurity.h:47, - from tigervnc-1.9.0/common/rfb/SSecurityStack.h:23, - from tigervnc-1.9.0/common/rfb/SSecurityVeNCrypt.h:32, - from tigervnc-1.9.0/common/rfb/CSecurityTLS.h:34, - from tigervnc-1.9.0/common/rfb/CSecurityTLS.cxx:36: -/usr/include/c++/8.3.0/new:122:7: note: in a call to allocation function ‘void* operator new [](std::size_t)’ declared here - void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) - ^~~~~~~~ ---- - common/rfb/CSecurityTLS.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx -index c6d1e310..235df45d 100644 ---- a/common/rfb/CSecurityTLS.cxx -+++ b/common/rfb/CSecurityTLS.cxx -@@ -383,7 +383,7 @@ void CSecurityTLS::checkSession() - size_t out_size = 0; - char *out_buf = NULL; - char *certinfo = NULL; -- int len = 0; -+ size_t len = 0; - - vlog.debug("certificate issuer unknown"); - -@@ -403,7 +403,7 @@ void CSecurityTLS::checkSession() - "authority:\n\n%s\n\nDo you want to save it and " - "continue? ", info.data); - -- for (int i = 0; i < len - 1; i++) -+ for (size_t i = 0; i < len - 1; i++) - if (certinfo[i] == ',' && certinfo[i + 1] == ' ') - certinfo[i] = '\n'; - --- -2.19.2 - diff --git a/user/tigervnc/APKBUILD b/user/tigervnc/APKBUILD index 7e088b1eb..cc4406240 100644 --- a/user/tigervnc/APKBUILD +++ b/user/tigervnc/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=tigervnc -pkgver=1.10.1 +pkgver=1.13.1 pkgrel=0 pkgdesc="High-performance, platform-neutral VNC remote desktop application" url="https://tigervnc.org/" @@ -11,12 +11,9 @@ license="GPL-2.0" depends="" makedepends="cmake fltk-dev fontconfig-dev gnutls-dev intltool libjpeg-turbo-dev libx11-dev libxcursor-dev libxfixes-dev libxft-dev - libxrender-dev libxtst-dev linux-pam-dev zlib-dev" + libxrender-dev libxtst-dev linux-pam-dev pixman-dev zlib-dev" subpackages="$pkgname-lang $pkgname-doc" -source="tigervnc-$pkgver.tar.gz::https://github.com/TigerVNC/tigervnc/archive/v$pkgver.tar.gz - use-intltool.patch - 0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch - " +source="tigervnc-$pkgver.tar.gz::https://github.com/TigerVNC/tigervnc/archive/v$pkgver.tar.gz" build() { if [ "$CBUILD" != "$CHOST" ]; then @@ -37,6 +34,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3486ff772d39217feb8c075860cae58e1021bdb8095443d8b5c383929cc6c622b57ea61c31d06ff0bd48c7e6889db4b6a99d0742bdd60edf323fb2a3ad328705 tigervnc-1.10.1.tar.gz -5c1cee98b7ba41c7cf121480fdfe16d5ef17c9562ff2ba3ea4e74235161fc63e2e3ed63e788c0aa999610b660b394c1269d6fdcc9716c5563651fd67d723f619 use-intltool.patch -f95328f6b669e6608b9971de3db25d5eb26a733fbe32f13291c309ed57eacba6c86461a516c3b8cdc12ff7482ee0249a45189864d473d52df81df0a3541d95b9 0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch" +sha512sums="9190dbcd3b57ba52286c158c0675104d68463d7e3ea8e23493514b64451ddb511f3daf0f177339bc231155daea376d9c8dc58216663e10aa12f67468f4559da5 tigervnc-1.13.1.tar.gz" diff --git a/user/tigervnc/use-intltool.patch b/user/tigervnc/use-intltool.patch deleted file mode 100644 index 930bf21eb..000000000 --- a/user/tigervnc/use-intltool.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- tigervnc-1.9.0/vncviewer/CMakeLists.txt.old 2018-07-16 14:08:55.000000000 +0000 -+++ tigervnc-1.9.0/vncviewer/CMakeLists.txt 2018-07-25 05:43:25.670000000 +0000 -@@ -66,14 +66,7 @@ - - configure_file(vncviewer.desktop.in.in vncviewer.desktop.in) - find_program(INTLTOOL_MERGE_EXECUTABLE intltool-merge) -- if("${GETTEXT_VERSION_STRING}" VERSION_GREATER 0.18.99) -- add_custom_command(OUTPUT vncviewer.desktop -- COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -- --desktop --template vncviewer.desktop.in -- -d ${CMAKE_SOURCE_DIR}/po -o vncviewer.desktop -- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in -- ) -- elseif(INTLTOOL_MERGE_EXECUTABLE) -+ if(INTLTOOL_MERGE_EXECUTABLE) - add_custom_command(OUTPUT vncviewer.desktop - COMMAND sed -e 's/^Name/_Name/' - -e 's/^GenericName/_GenericName/' -@@ -84,6 +77,13 @@ - vncviewer.desktop.intl vncviewer.desktop - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in - ) -+ elseif("${GETTEXT_VERSION_STRING}" VERSION_GREATER 0.18.99) -+ add_custom_command(OUTPUT vncviewer.desktop -+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -+ --desktop --template vncviewer.desktop.in -+ -d ${CMAKE_SOURCE_DIR}/po -o vncviewer.desktop -+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in -+ ) - else() - add_custom_command(OUTPUT vncviewer.desktop - COMMAND cp vncviewer.desktop.in vncviewer.desktop diff --git a/user/tipidee/APKBUILD b/user/tipidee/APKBUILD new file mode 100644 index 000000000..473818fd7 --- /dev/null +++ b/user/tipidee/APKBUILD @@ -0,0 +1,89 @@ +# Contributor: Laurent Bercot <ska-adelie@skarnet.org> +# Maintainer: Laurent Bercot <ska-adelie@skarnet.org> +pkgname=tipidee +pkgver=0.0.5.0 +pkgrel=0 +pkgdesc="The skarnet.org web server" +url="https://skarnet.org/software/tipidee/" +arch="all" +options="!check" # No test suite. +license="ISC" +_skalibs_version=2.14.1.1 +depends="execline s6 s6-networking" +depends_dev="skalibs-dev>=$_skalibs_version" +makedepends="$depends_dev" +subpackages="tipidee-dev tipidee-libs tipidee-doc tipidee-openrc" +source=" + https://skarnet.org/software/tipidee/tipidee-$pkgver.tar.gz + httpd.run + httpsd.run + logger.run + tipidee.conf + tipidee.confd + tipidee.initd + " +install=" + tipidee.pre-install + tipidee.post-install + tipidee.post-deinstall + " +pkggroups="tipidee" +pkgusers="tipideelog tipideed" + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --enable-shared \ + --enable-static \ + --disable-allstatic \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib \ + --libexecdir="/usr/lib/$pkgname" \ + --with-dynlib=/lib + make +} + +_makeservicedir() { + name="http${1}d-${2}" + fn="$pkgdir/var/lib/tipidee/services/$name" + mkdir -p "$fn/log" + echo 3 > "$fn/log/notification-fd" + sed -e "s/@S@/${1}/g; s/@V@/${2}/g;" "$srcdir/logger.run" > "$fn/log/run" + chmod 0755 "$fn/log/run" + echo 3 > "$fn/notification-fd" + sed -e "s/@V@/${2}/g;" "$srcdir/http${1}d.run" > "$fn/run" + chmod 0755 "$fn/run" + fn="$pkgdir/var/log/$name" + mkdir -p "$fn" + chown tipideelog:tipidee "$fn" + chmod 02700 "$fn" +} + +package() { + mkdir -p "$pkgdir/usr/share/doc" "$pkgdir/var/lib/tipidee/docroot" + make DESTDIR="$pkgdir" install + for i in '' s ; do for j in 4 6 ; do + _makeservicedir "$i" "$j" + done ; done + install -m 0644 -D "$srcdir/tipidee.conf" "$pkgdir/etc/tipidee.conf" + install -m 0644 -D "$srcdir/tipidee.confd" "$pkgdir/etc/conf.d/tipidee" + install -m 0755 -D "$srcdir/tipidee.initd" "$pkgdir/etc/init.d/tipidee" + cp -a "$builddir/doc" "$pkgdir/usr/share/doc/$pkgname" +} + +dev() { + default_dev + + # default_dev please stop being stupid + mv "$subpkgdir/usr/bin/tipidee-config" "$pkgdir/usr/bin/tipidee-config" +} + +sha512sums="861d5509a00d3943e9a483d191d92df91be1aead519b16d1fac96740357670ff9f32cf0ff2b8dd08d0cac059732c59233632379562a508ab3705fd68103f370c tipidee-0.0.5.0.tar.gz +0de0d6bd39adfd6e65694335e9cf06cec7625032e6af5cf5e54ced5c009707ca4e27b2dbdff8b7825575fbef7cd98ac0333e07b1924f24fda23019c92c08023f httpd.run +65cdbfb5a6485aed0203ed910af124b202994d5253cb365ed25432f0c906471dd30f96eb862b6f25004c6ec8ec4cb38a5b49cde717e7a00d7c9d7fd07025f225 httpsd.run +b5af306fe7040f966b13da84bfb0c4b528683c03205519d08fe429ee826ffad27c9ddb32be8c8bf8b42ce7964ef15572e3c66a96494aed833ee951c769f81bd2 logger.run +bb2681a3000133724bb8fd4918bc3209ea676c2e4f96ad8b298d8e7302aeebd6876341ea205f2d808f34e4c9b5c138bba032694c6069c17026b0ddf23702f9ba tipidee.conf +7a999200ad21b2b0737ce82136bc8e055d7ab4a865b7727e6dc8df0eaeea6ace11eb5756b64231ce7938d11b5ec218944173ea1df3db059d033bf3f848c9a608 tipidee.confd +5001d079b1ca7920d163cc2d58a5855e2740e72ed85df25414b4719c52133bd0f2f9e69c63c57f31645159189fc046c7d213048fc1cbd0f640336e43874e4482 tipidee.initd" diff --git a/user/tipidee/httpd.run b/user/tipidee/httpd.run new file mode 100644 index 000000000..356ad9952 --- /dev/null +++ b/user/tipidee/httpd.run @@ -0,0 +1,19 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/tipidee +unexport HTTP +unexport HTTPS +multisubstitute +{ + importas -ui TIPIDEED_IPv@V@ TIPIDEED_IPv@V@ + importas -ui TIPIDEED_ROOT TIPIDEED_ROOT + importas -u -D1000 TIPIDEED_CONCURRENCY TIPIDEED_CONCURRENCY + importas -u -D10 TIPIDEED_LOCAL_CONCURRENCY TIPIDEED_LOCAL_CONCURRENCY +} +s6-envuidgid tipideed +cd ${TIPIDEED_ROOT} +s6-tcpserver -1 -U -c ${TIPIDEED_CONCURRENCY} -C ${TIPIDEED_LOCAL_CONCURRENCY} -- ${TIPIDEED_IPv@V@} 80 +tipideed diff --git a/user/tipidee/httpsd.run b/user/tipidee/httpsd.run new file mode 100644 index 000000000..9d710158a --- /dev/null +++ b/user/tipidee/httpsd.run @@ -0,0 +1,23 @@ +#!/bin/execlineb -S1 + +fdmove -c 2 1 +emptyenv -p +fdmove 1 3 +envfile /etc/conf.d/tipidee +unexport HTTP +unexport HTTPS +multisubstitute +{ + importas -ui TIPIDEED_IPv@V@ TIPIDEED_IPv@V@ + importas -ui TIPIDEED_ROOT TIPIDEED_ROOT + importas -ui KEYFILE KEYFILE + importas -ui CERTFILE CERTFILE + importas -u -D1000 TIPIDEED_CONCURRENCY TIPIDEED_CONCURRENCY + importas -u -D10 TIPIDEED_LOCAL_CONCURRENCY TIPIDEED_LOCAL_CONCURRENCY +} +s6-envuidgid tipideed +export TLS_UID 65534 +export TLS_GID 65534 +cd ${TIPIDEED_ROOT} +s6-tlsserver -1 -U -K 5000 -c ${TIPIDEED_CONCURRENCY} -C ${TIPIDEED_LOCAL_CONCURRENCY} -- ${TIPIDEED_IPv@V@} 443 +tipideed diff --git a/user/tipidee/logger.run b/user/tipidee/logger.run new file mode 100644 index 000000000..3f1785703 --- /dev/null +++ b/user/tipidee/logger.run @@ -0,0 +1,5 @@ +#!/bin/execlineb -S1 + +s6-setuidgid tipideelog +exec -c +s6-log -d3 -- t s1000000 /var/log/http@S@d-@V@ diff --git a/user/tipidee/tipidee.conf b/user/tipidee/tipidee.conf new file mode 100644 index 000000000..40bba13f9 --- /dev/null +++ b/user/tipidee/tipidee.conf @@ -0,0 +1,18 @@ +# This is where the behaviour of the tipidee web server is +# configured. +# See https://skarnet.org/software/tipidee/tipidee.conf.html +# for the full documentation of the syntax. + +# The defaults work well, but here are some example directives that +# you can uncomment if you find them applicable to your setup. + +# global read_timeout 60000 +# global write_timeout 60000 +# global cgi_timeout 5000 +# index-file index.html index.cgi +# log start ip hostname request resource answer answer_size +# custom-header always Strict-Transport-Security max-age=63072000; includeSubDomains; preload +# +# domain example.com +# nph-prefix nph- +# cgi /cgi-bin/ diff --git a/user/tipidee/tipidee.confd b/user/tipidee/tipidee.confd new file mode 100644 index 000000000..d47fb589f --- /dev/null +++ b/user/tipidee/tipidee.confd @@ -0,0 +1,33 @@ +# Configuration for the tipidee web server. + +# The IPs you want the tipidee server to listen on. +# Comment to disable. +TIPIDEED_IPv4=0.0.0.0 +TIPIDEED_IPv6=:: + +# Serve plaintext HTTP? true or false +HTTP=true + +# Serve HTTPS? true or false +HTTPS=false + +# If HTTPS is true, KEYFILE should point to +# your private key, and CERTFILE should point to your certificate. +# KEYFILE= +# CERTFILE= + +# Total authorized concurrent connections. Don't go above 5000 or so. +TIPIDEED_CONCURRENCY=1000 + +# Authorized concurrent connections *per IP*. +TIPIDEED_LOCAL_CONCURRENCY=10 + +# The server root. Make sure this directory exists, is readable by +# the tipideed user, and does *not* belong to the tipideed user. +# The documents need to be stored under subdirectories of TIPIDEED_ROOT, +# one subdirectory per virtual domain you're serving. +TIPIDEED_ROOT=/var/lib/tipidee/docroot + +# Also check the /etc/tipidee.conf file for detailed configuration of +# logging, document attributes, etc. +# Run tipidee-config after editing /etc/tipidee.conf. diff --git a/user/tipidee/tipidee.initd b/user/tipidee/tipidee.initd new file mode 100644 index 000000000..f196bcd23 --- /dev/null +++ b/user/tipidee/tipidee.initd @@ -0,0 +1,64 @@ +#!/sbin/openrc-run + +description="Start/stop the tipidee services" + +depend() +{ + after net + after localmount +} + +_get_services() +{ + list= + if "$HTTP" ; then + if test -n "$TIPIDEED_IPv4" ; then + list="httpd-4" + fi + if test -n "$TIPIDEED_IPv6" ; then + list="$list httpd-6" + fi + fi + if "$HTTPS" ; then + if test -n "$TIPIDEED_IPV4" ; then + list="httpsd-4" + fi + if test -n "$TIPIDEED_IPV6" ; then + list="$list httpsd-6" + fi + fi + echo $list +} + +stop() +{ + ebegin "Stopping the tipidee services" + for i in `_get_services` ; do + s6-svunlink /run/service "$i" + done + eend $? +} + +start() +{ + ebegin "Starting the tipidee services" + for i in `_get_services` ; do + s6-svlink -t10000 /run/service "/var/lib/tipidee/services/$i" + done + eend $? +} + +status() +{ + for i in `_get_services` ; do + echo -n "${i}: " + s6-svstat "/run/service/${i}" + done +} + +restart() +{ + for i in `_get_services` ; do + s6-svc -rwR "/run/service/$i" + done +} diff --git a/user/tipidee/tipidee.post-deinstall b/user/tipidee/tipidee.post-deinstall new file mode 100644 index 000000000..9912c9503 --- /dev/null +++ b/user/tipidee/tipidee.post-deinstall @@ -0,0 +1,3 @@ +#!/bin/execlineb -P + +rm -f /etc/tipidee.conf.cdb diff --git a/user/tipidee/tipidee.post-install b/user/tipidee/tipidee.post-install new file mode 100644 index 000000000..425ab5aaa --- /dev/null +++ b/user/tipidee/tipidee.post-install @@ -0,0 +1,3 @@ +#!/bin/execlineb -P + +tipidee-config diff --git a/user/tipidee/tipidee.pre-install b/user/tipidee/tipidee.pre-install new file mode 100644 index 000000000..e92fd1d0a --- /dev/null +++ b/user/tipidee/tipidee.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +groupadd -r -- tipidee 2>/dev/null +useradd -r -d / -M -N -s /sbin/nologin -g tipidee -c tipideelog -- tipideelog 2>/dev/null +useradd -r -d / -M -N -s /sbin/nologin -g tipidee -c tipideed -- tipideed 2>/dev/null + +exit 0 diff --git a/user/ttf-sudo/APKBUILD b/user/ttf-sudo/APKBUILD index 11a1da2f1..142aa4449 100644 --- a/user/ttf-sudo/APKBUILD +++ b/user/ttf-sudo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=ttf-sudo -pkgver=0.50 +pkgver=1.0 pkgrel=0 pkgdesc="Monospaced font family for programming and console users" url="https://www.kutilek.de/sudo-font/" @@ -20,4 +20,4 @@ package() { done } -sha512sums="d48020d5261f9b968ad2fc92f88ce4b1482e3b752b33b50452875951b09cd7472d520b60380321af49404de7986b06d6e653017a07e6a8687792f333a96e8532 ttf-sudo-0.50.tar.gz" +sha512sums="428f190ed48e60534c805deca2f8ada90b703eeb688154c4784f29604656734a21aa6fd02f4f91f45a668fb601df2bfe221bb4015d2d6efd8875c7373adb31cd ttf-sudo-1.0.tar.gz" diff --git a/user/ttf-terminus/APKBUILD b/user/ttf-terminus/APKBUILD index 3d5c60d64..6b6ea19dc 100644 --- a/user/ttf-terminus/APKBUILD +++ b/user/ttf-terminus/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=ttf-terminus -pkgver=4.49.2 +pkgver=4.49.3 pkgrel=0 pkgdesc="TrueType variant of Terminus Font" url="https://files.ax86.net/terminus-ttf/" @@ -20,4 +20,4 @@ package() { done } -sha512sums="a50a34bf2745cb66480b5e15385f68a6499e8bbedc033554b36bf70ad31da7e2975fcff1e02a4e07867d62d63850b9712b51575a0309680b143cfb33a668ca46 terminus-ttf-4.49.2.zip" +sha512sums="32a5e5d9fc3d068447afb5b38a6183fcc012d17bccad37116a8f508d4b1bf5a5b3d1a71cff0d750cba83fd2622c3917402358236562886456692928c62f6307f terminus-ttf-4.49.3.zip" diff --git a/user/tumbler/APKBUILD b/user/tumbler/APKBUILD index 75ee90415..45b49ae6f 100644 --- a/user/tumbler/APKBUILD +++ b/user/tumbler/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=tumbler -pkgver=4.18.1 +pkgver=4.18.2 pkgrel=0 pkgdesc="Thumbnail generation service for the XFCE desktop environment" url="https://xfce.org" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5b781e4a53b5a1f210ee9d373d4a1e26864d6c6afe64e056267c7ffb5e4ac77f56e0fe2c4e5cefccb1910041af0ee2828a2f62b4ab86a689eca9a5b30ab6048d tumbler-4.18.1.tar.bz2" +sha512sums="043e4e7058d1bf0eb4f037924161387042111c7a1bfbf78f8417d0b6463d6b7e72506741f395ca14d6150e2cc0b79d97b2ee3270a30e0d18a0161f639627e255 tumbler-4.18.2.tar.bz2" diff --git a/user/unicode-data/APKBUILD b/user/unicode-data/APKBUILD index 5d1d73727..a1a6d1deb 100644 --- a/user/unicode-data/APKBUILD +++ b/user/unicode-data/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=unicode-data -pkgver=15.0.0 +pkgver=15.1.0 pkgrel=0 pkgdesc="Unicode data files" url="https://unicode.org" @@ -10,28 +10,26 @@ options="!check" # no testsuite license="Unicode-TOU" depends="" makedepends="" -source="https://unicode.org/Public/$pkgver/ucd/Blocks.txt - https://unicode.org/Public/$pkgver/ucd/DerivedAge.txt - https://unicode.org/Public/$pkgver/ucd/NamesList.txt - https://unicode.org/Public/$pkgver/ucd/Scripts.txt - https://unicode.org/Public/$pkgver/ucd/UnicodeData.txt - https://unicode.org/Public/$pkgver/ucd/Unihan.zip +source="Blocks-$pkgver.txt::https://unicode.org/Public/$pkgver/ucd/Blocks.txt + DerivedAge-$pkgver.txt::https://unicode.org/Public/$pkgver/ucd/DerivedAge.txt + NamesList-$pkgver.txt::https://unicode.org/Public/$pkgver/ucd/NamesList.txt + Scripts-$pkgver.txt::https://unicode.org/Public/$pkgver/ucd/Scripts.txt + UnicodeData-$pkgver.txt::https://unicode.org/Public/$pkgver/ucd/UnicodeData.txt + Unihan-$pkgver.zip::https://unicode.org/Public/$pkgver/ucd/Unihan.zip " package() { mkdir -p "$pkgdir"/usr/share/unicode/$pkgver - install -m644 -t "$pkgdir"/usr/share/unicode/$pkgver \ - "$srcdir"/Blocks.txt \ - "$srcdir"/DerivedAge.txt \ - "$srcdir"/NamesList.txt \ - "$srcdir"/Scripts.txt \ - "$srcdir"/UnicodeData.txt \ - "$srcdir"/Unihan.zip + + for i in Blocks DerivedAge NamesList Scripts UnicodeData; do + install -m644 "$srcdir"/$i-$pkgver.txt "$pkgdir"/usr/share/unicode/$pkgver/$i.txt + done + install -m644 "$srcdir"/Unihan-$pkgver.zip "$pkgdir"/usr/share/unicode/$pkgver/Unihan.zip } -sha512sums="bafbb2013da4fff8b080fe6b93960a9819dbb6e03dadddf6988d00bfa7c3e6ddf5de3519ccc564d0fec8355ef6bb30ea6a44fe080103c252736708e49013d9d1 Blocks.txt -e556994af1e540fc94ce3d3c77dfbb9142ec5bb83667c0217012ad4610419fbde8555a06dc3cb94003a8e7329613b832f09c4b91e8b731a85b9ff15a6099764a DerivedAge.txt -ae575c3c5c99872481009a03cd26aa323a0e45f93d58230a94893b8cf2e9168ebe15337d6f76d56111c1c30e159623bbbedd00143696f6b951e9203659169da0 NamesList.txt -256416d72cb4049b7ed81fa063aa900f114d23cae4ae77354fb471c4a7841e44b4e954b9ff8ef8f29191895f24c26fc752ebc421ba0525baf33d1378e28fc32e Scripts.txt -80b36faff3233f66cd0db0879daf500f224b6f31937b5fea74e227c7fad43601a7ac429e4ea485c3590482ce9ffa486e96633111657e7a97e85bf14e8d1a3a9e UnicodeData.txt -d9cf39adebe83ed0fd8d473cf057b8aa8b2362019d9f7ee7afc041501b1bbbe4d13050350ac40ce4a020cd1d64d52548fe262c3b2893934a032e1de8075e964c Unihan.zip" +sha512sums="39e0f655d9f744272c55a17f7525f11c156bf989c662ba62a6faa31eecefbaa01da2665da4a9d500e74a811351a97467ad43397f8d61ac5521bf1c691d11249b Blocks-15.1.0.txt +274289df082585af82c6b5423c35699439d4cac7000a728a8402d26a3ebe4795f4574ba8ce92cf45ec4f0acb24228b45f8d5626ad96de2cb447d5806420ef3e1 DerivedAge-15.1.0.txt +83b91f9d3b30b1e03f9e23303b16a5a31c404e1c52468337e73153025cc79c5ffe7ecd104425dbb030519295ec8522ae87e68aec937c6b99e7b63cdcc4fd8f64 NamesList-15.1.0.txt +aa211fdae622d2600c5e1b76a018395ea588553e1f2809d327c0f7fd481c3b851d46affeb89b62ea8f762af792fe116c4be8afba56600687dfa82269e6a5a87c Scripts-15.1.0.txt +e10cc48161b177428244762c641ff96200da64a91026f6a6230fbf84ada3db8e7c9db4f56bbb5118f18f862e0172bd95de6db5e77bc97453ca927c4be50ab17f UnicodeData-15.1.0.txt +fc1a32fc68b3e1d2d358fca91c2cd6c1103557405e91ff558585f18a2e9b1ee6f8af89e7ee922ff36cade67a5cf4f5b4042ba97d350af7b92b18f161eef5ec78 Unihan-15.1.0.zip" diff --git a/user/uptimed/APKBUILD b/user/uptimed/APKBUILD index 321fc2edc..fb2aa98fb 100644 --- a/user/uptimed/APKBUILD +++ b/user/uptimed/APKBUILD @@ -2,7 +2,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=uptimed -pkgver=0.4.3 +pkgver=0.4.6 pkgrel=0 pkgdesc="System uptime record daemon" arch="all" @@ -35,5 +35,5 @@ package() { "$pkgdir"/etc/init.d/uptimed } -sha512sums="f9485224dfe7173bab135a87b047d749f9b61d3c29d50523126b585ae77e68837680fdb725a08fd7cad39f0b35b2da7a6923b8540700881f9638286ab5082260 uptimed-0.4.3.tar.gz +sha512sums="035caba32182a807312b587b3cb3b6322027b7c8f3e69a3f0b52ea4f44ecfc40505fe58b6a1b56a87a967f1f8b1fbc075414a04b60717577e32972feadb9bc2d uptimed-0.4.6.tar.gz 0884e9f5ace5a69b8eea4401c7f3b84f0a434f0ceb2b920919e83f318eb9e54182932de174cf1666ddddbab84c146781f3dd78571e80cc274963a72bf4f53a6b uptimed.init" diff --git a/user/v4l-utils/APKBUILD b/user/v4l-utils/APKBUILD index 2c6857f78..53a153fbc 100644 --- a/user/v4l-utils/APKBUILD +++ b/user/v4l-utils/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Leonardo Arena <rnalrd@alpinelinux.org> # Maintainer: pkgname=v4l-utils -pkgver=1.18.0 +pkgver=1.26.1 pkgrel=0 pkgdesc="Userspace tools and conversion library for Video 4 Linux" url="https://www.linuxtv.org/wiki/index.php/V4l-utils" @@ -9,47 +9,29 @@ arch="all" license="LGPL-2.0+" depends="" makedepends="qt5-qtbase-dev libjpeg-turbo-dev argp-standalone linux-headers - eudev-dev alsa-lib-dev" + eudev-dev alsa-lib-dev meson" subpackages="$pkgname-dev $pkgname-doc qv4l2 $pkgname-libs ir_keytable" -source="https://www.linuxtv.org/downloads/v4l-utils/$pkgname-$pkgver.tar.bz2 - qv4l2.svg - qv4l2.desktop - getsubopt.patch - time64.patch - types.patch - " +source="https://www.linuxtv.org/downloads/v4l-utils/$pkgname-$pkgver.tar.xz" build() { - export CFLAGS="$CFLAGS -D__off_t=off_t" - LIBS="-largp -lintl" ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --localstatedir=/var \ - --disable-libdvbv5 \ - --disable-static - make + meson setup -Dlibdvbv5=disabled -Dprefix=/usr build + meson compile -C build } check() { - make check + meson test -C build } package() { - make -j1 DESTDIR="$pkgdir" install - install -Dm644 "$srcdir"/qv4l2.desktop \ - "$pkgdir"/usr/share/applications/qv4l2.desktop - install -Dm644 "$srcdir"/qv4l2.svg \ - "$pkgdir"/usr/share/icons/hicolor/scalable/apps/qv4l2.svg + DESTDIR="$pkgdir" meson install -C build } qv4l2() { pkgdesc="Qt V4L2 test control and streaming test application" + install_if="qt5-qtbase-x11 v4l-utils" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/qv4l2 "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/qvidcap "$subpkgdir"/usr/bin/ mv "$pkgdir"/usr/share "$subpkgdir"/usr/ } @@ -62,23 +44,17 @@ libs() { ir_keytable() { pkgdesc="Alter keymaps of Remote Controller devices" - mkdir -p "$subpkgdir"/lib/udev/rc_keymaps \ - "$subpkgdir"/lib/udev/rules.d \ + mkdir -p "$subpkgdir"/lib/udev \ "$subpkgdir"/usr/bin \ "$subpkgdir"/etc - mv "$pkgdir"/lib/udev/rc_keymaps/* \ - "$subpkgdir"/lib/udev/rc_keymaps - mv "$pkgdir"/lib/udev/rules.d/* \ - "$subpkgdir"/lib/udev/rules.d + mv "$pkgdir"/lib/udev/rc_keymaps \ + "$subpkgdir"/lib/udev/ + mv "$pkgdir"/lib/udev/rules.d \ + "$subpkgdir"/lib/udev/ mv "$pkgdir"/usr/bin/ir-keytable \ "$subpkgdir"/usr/bin mv "$pkgdir"/etc/rc_maps.cfg \ "$subpkgdir"/etc } -sha512sums="749c804671f039d907bf782cba5d1c23fff48066f3b6d4a0249fb9b65c493ee3945b544ee2a306dda79973da04f0301278ee88775f798aba590e5d0f15226d49 v4l-utils-1.18.0.tar.bz2 -bc18280046c15b19984103f7c2bb44a0aea79715803c64f0c64bc932499c09022c956914c3b15ae59499adc09f6fbff5378be45707fe851250f495a26b63d682 qv4l2.svg -6f74aa524b3de420eeb8de788ff3f717020732a3f1f6530caee50e63aae7eddbe5f551ffc50065c9f5d6078c13bace089948ecdcacf01f8b82c1a44960e06315 qv4l2.desktop -a09554deebd7597355c688e52180e0f4030842ccb26a144d1ac8a426836374237725d7b6b555027ca72e10c11e37bd596c7d69d87ee2f6b6d951daf4e50137f8 getsubopt.patch -16154d57ea0b2e231217894495ef4ecf55d45e97c936034d4bbb0dab88f2d3e8779073302fbba759bd60e124a2cefe2b83675952cd50c413d957c81c9b0b8b53 time64.patch -ee1228cc06e399923953e5121a683347a7fe881c80c55faae0adf6ed836251da1b2c4d1561454daa6f42220c1171f827ca3e2b72cdac31b379495f23ff6c56bb types.patch" +sha512sums="a3b12b311977afec410db8b430696e923a24e04f003a5891cc77ddeb667d0b98666a06d31a439c95ce57d9e9c9c2593c5e9dd9e7cf2be002adb95db5b8f00ac8 v4l-utils-1.26.1.tar.xz" diff --git a/user/v4l-utils/getsubopt.patch b/user/v4l-utils/getsubopt.patch deleted file mode 100644 index 6ad142ae0..000000000 --- a/user/v4l-utils/getsubopt.patch +++ /dev/null @@ -1,35 +0,0 @@ -POSIX says that behavior when subopts list is empty is undefined. -musl libs will set value to NULL which leads to crash. - -Simply avoid getsubopt, since we cannot rely on it. - -diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp -index 3ea6cd3..291fb3e 100644 ---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp -+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp -@@ -782,15 +782,17 @@ static bool parse_subset(char *optarg) - - static bool parse_next_subopt(char **subs, char **value) - { -- static char *const subopts[] = { -- NULL -- }; -- int opt = getsubopt(subs, subopts, value); -+ char *p = *subs; -+ *value = *subs; - -- if (opt < 0 || *value) -- return false; -- fprintf(stderr, "Missing suboption value\n"); -- return true; -+ while (*p && *p != ',') -+ p++; -+ -+ if (*p) -+ *p++ = '\0'; -+ -+ *subs = p; -+ return false; - } - - void common_cmd(const std::string &media_bus_info, int ch, char *optarg) diff --git a/user/v4l-utils/qv4l2.desktop b/user/v4l-utils/qv4l2.desktop deleted file mode 100644 index 55e369c7c..000000000 --- a/user/v4l-utils/qv4l2.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=QT V4L2 test Utility -Name[pt]=Utilitário de teste V4L2 -Comment=Allow testing Video4Linux devices -Comment[pt]=Permite testar dispositivos Video4Linux -Exec=qv4l2 -Icon=qv4l2 -Terminal=false -Type=Application -Categories=Application;AudioVideo; - diff --git a/user/v4l-utils/qv4l2.svg b/user/v4l-utils/qv4l2.svg deleted file mode 100644 index 3d4f375cc..000000000 --- a/user/v4l-utils/qv4l2.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:version="0.47 r22583" version="1.1" id="svg2839" height="297mm" width="210mm" sodipodi:docname="Novo documento 3"> - <defs id="defs2841"> - <linearGradient id="linearGradient2963"> - <stop style="stop-color: rgb(255, 236, 187); stop-opacity: 1;" offset="0" id="stop2965"/> - <stop id="stop2971" offset="1" style="stop-color: rgb(0, 0, 0); stop-opacity: 0.498039;"/> - </linearGradient> - <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective2847"/> - <inkscape:perspective id="perspective2935" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d"/> - <linearGradient inkscape:collect="always" xlink:href="#linearGradient2963" id="linearGradient2969" x1="-719.14288" y1="494.69958" x2="-324.21902" y2="968.98529" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0512, 0, 0, 1.05137, 651.058, -25.2444)"/> - <inkscape:perspective id="perspective2992" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_z="1 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 0.5 : 1" sodipodi:type="inkscape:persp3d"/> - </defs> - <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.7" inkscape:cx="376.9721" inkscape:cy="468.42546" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1513" inkscape:window-height="1044" inkscape:window-x="1941" inkscape:window-y="0" inkscape:window-maximized="0"/> - <metadata id="metadata2844"> - <rdf:RDF> - <cc:Work rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> - <dc:title/> - </cc:Work> - </rdf:RDF> - </metadata> - <g inkscape:label="Camada 1" inkscape:groupmode="layer" id="layer1"> - <rect style="fill: rgb(173, 160, 127); fill-opacity: 1;" id="rect2959" width="498.57132" height="402.52496" x="101.42867" y="345.21906" ry="15.848869"/> - <rect style="fill: rgb(214, 207, 189); fill-opacity: 1; fill-rule: evenodd; stroke: rgb(0, 0, 0); stroke-width: 1.09651px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;" id="rect2955" width="366.37466" height="268.80539" x="172.03215" y="409.8259" ry="24.860613"/> - <path style="fill: url("#linearGradient2969") rgb(0, 0, 0); fill-opacity: 1;" d="m 111.92284,745.80915 c -1.7443,-0.70488 -4.61634,-3.11878 -6.38231,-5.3642 l -3.21086,-4.08259 0,-189.14299 c 0,-136.34795 0.46823,-190.05871 1.67748,-192.42365 0.92263,-1.80438 3.11889,-4.44845 4.8806,-5.87571 3.00442,-2.43405 17.98923,-2.5971 241.57759,-2.62843 l 238.37448,-0.0334 4.90427,4.38251 4.90429,4.3825 0.39257,189.41161 c 0.43575,210.24489 1.09242,196.30432 -9.4544,200.71175 -4.34407,1.81535 -40.20923,2.12038 -239.80015,2.0394 -129.08065,-0.0523 -236.11926,-0.67193 -237.86356,-1.37681 z m 413.94314,-69.49552 c 4.39946,-2.22093 7.85143,-5.43895 10.06966,-9.38725 l 3.37535,-6.00784 -0.36571,-118.16973 c -0.36124,-116.72035 -0.4037,-118.22058 -3.46195,-122.31682 -4.69144,-6.28374 -10.15101,-9.79936 -17.39001,-11.19809 -8.54594,-1.65125 -316.90144,-1.65125 -325.4474,0 -7.68,1.48394 -13.16379,5.20817 -17.88452,12.146 l -3.40519,5.00442 0.40173,119.03503 c 0.39878,118.15286 0.42505,119.06645 3.54637,123.27494 1.72955,2.33195 5.7842,5.74954 9.01033,7.59462 l 5.8657,3.35471 164.49565,0.0248 164.49566,0.0246 6.69433,-3.3794 z" id="path2961"/> - <rect style="fill: rgb(25, 20, 8); fill-opacity: 1;" id="rect2980" width="63.072273" height="39.050926" x="499.38467" y="744.74005" ry="0"/> - <rect style="fill: rgb(25, 20, 8); fill-opacity: 1;" id="rect2980-1" width="63.072273" height="39.050926" x="130.56888" y="744.74005" ry="0"/> - </g> -</svg>
\ No newline at end of file diff --git a/user/v4l-utils/time64.patch b/user/v4l-utils/time64.patch deleted file mode 100644 index 42092a773..000000000 --- a/user/v4l-utils/time64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- v4l-utils-1.18.0/utils/keytable/keytable.c.old 2019-09-22 09:22:54.000000000 +0000 -+++ v4l-utils-1.18.0/utils/keytable/keytable.c 2020-01-20 02:38:23.659004998 +0000 -@@ -1533,7 +1533,7 @@ - - for (i = 0; i < rd / sizeof(struct input_event); i++) { - printf(_("%ld.%06ld: event type %s(0x%02x)"), -- ev[i].time.tv_sec, ev[i].time.tv_usec, -+ ev[i].input_event_sec, ev[i].input_event_usec, - get_event_name(events_type, ev[i].type), ev[i].type); - - switch (ev[i].type) { diff --git a/user/v4l-utils/types.patch b/user/v4l-utils/types.patch deleted file mode 100644 index 56eb991a3..000000000 --- a/user/v4l-utils/types.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- v4l-utils-1.18.0/utils/keytable/keymap.h.old 2019-09-22 09:22:54.000000000 +0000 -+++ v4l-utils-1.18.0/utils/keytable/keymap.h 2019-10-05 03:45:16.795852895 +0000 -@@ -2,6 +2,10 @@ - #ifndef __KEYMAP_H - #define __KEYMAP_H - -+#include <stdint.h> -+typedef uint32_t u_int32_t; -+typedef int error_t; -+ - struct keymap { - struct keymap *next; - char *name; ---- v4l-utils-1.18.0/utils/ir-ctl/keymap.h.old 2019-09-22 09:22:54.000000000 +0000 -+++ v4l-utils-1.18.0/utils/ir-ctl/keymap.h 2019-10-05 03:44:27.651163483 +0000 -@@ -2,6 +2,10 @@ - #ifndef __KEYMAP_H - #define __KEYMAP_H - -+#include <stdint.h> -+typedef uint32_t u_int32_t; -+typedef int error_t; -+ - struct keymap { - struct keymap *next; - char *name; diff --git a/user/vlc/APKBUILD b/user/vlc/APKBUILD index fc075d51c..769cda61e 100644 --- a/user/vlc/APKBUILD +++ b/user/vlc/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Leonardo Arena <rnalrd@alpinelinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=vlc -pkgver=3.0.17.3 +pkgver=3.0.20 pkgrel=0 pkgdesc="Multi-platform MPEG, VCD/DVD, and DivX player" triggers="vlc-libs.trigger=/usr/lib/vlc/plugins" @@ -79,6 +79,7 @@ build() { arm*) _arch_opts="--enable-omxil --enable-omxil-vout --enable-rpi-omxil" ;; aarch64) _arch_opts="--enable-neon" ;; ppc64*) _arch_opts="--enable-altivec" ;; + ppc) _arch_opts="--disable-altivec" ;; x86* | pmmx) _arch_opts="--disable-mmx --disable-sse" ;; esac @@ -171,6 +172,7 @@ pulse() { qt() { pkgdesc="Qt frontend for VLC" depends="vlc=$pkgver-r$pkgrel" + install_if="vlc=$pkgver-r$pkgrel qt5-qtbase-x11" cd "$pkgdir" # scan for elf files that directly or indirectly depends on # libQt* libraries @@ -205,7 +207,7 @@ libs() { default_libs } -sha512sums="99095b39ed600c3a89ebc0d377a2fc2522b3623a56b0f6de2df50a3c6e0148c67c28c0f2d8dec28bbdf5c62cf29b3579429a79ed00440570643778a9871022b6 vlc-3.0.17.3.tar.xz +sha512sums="02e58fb52dd75bf483ac4b298aecf86463b13d4782173d164adba6e4552d9262ff5e2ee1cbe1bce2c8a809801b79f328c6a8c475d34ae62aefaea02ae5ade406 vlc-3.0.20.tar.xz 22d80df599b8b65a5439cefbb7140af8e9530f326d54945da3769af65f37518b99ec2cc8647aafd2763324a0698280915afe043cc87e5720c4694881ed35bffa check-headless.patch e214b407235cb3afb8bec93f20c9b42957b57e6fd3960679d3d4235e77762e03e64d03c01f00ef63d589e7c85aaad02ce6abbeeccd66b1867bc92451a5b5e9b0 disable-sub-autodetect-fuzzy-1-test.patch e063c727d952465bbea33f669db49190427521dc8e2291e9a5cbb0f5e8e879bd3ba76855e44bd4630948e30c4329d27bd928f95de20fe1050d5e839778a4d012 endian-fix.patch diff --git a/user/volume_key/APKBUILD b/user/volume_key/APKBUILD index d6d22c271..69da50792 100644 --- a/user/volume_key/APKBUILD +++ b/user/volume_key/APKBUILD @@ -21,13 +21,15 @@ prepare() { } build() { - ./configure \ + PYTHON3=python3.11 ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ - --localstatedir=/var + --localstatedir=/var \ + --with-python=no \ + --with-python3 make } diff --git a/user/vte/APKBUILD b/user/vte/APKBUILD index a5539de34..dd9f87785 100644 --- a/user/vte/APKBUILD +++ b/user/vte/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=vte pkgver=0.62.0 -pkgrel=0 +pkgrel=1 pkgdesc="Virtual terminal emulator library for Gnome" url="https://www.gnome.org" arch="all" @@ -12,6 +12,7 @@ makedepends="gnutls-dev gtk+3.0-dev gnutls-dev gobject-introspection-dev subpackages="$pkgname-dev $pkgname-lang" source="https://download.gnome.org/sources/vte/${pkgver%.*}/vte-$pkgver.tar.xz exitcode.patch + gcc-volatile.patch " build() { @@ -28,4 +29,5 @@ package() { } sha512sums="8942809d20ff845142dce8cf48b4eb6f9e4f333dc2647cceb0538112d5e10096ff836f24da1f0c34cc4bbee4f6c585c3feab33934c257887a82d6c67bce11402 vte-0.62.0.tar.xz -4987254439a136f66a7b7be1300f5efbf85db74bdb64fdd8d0c9a555173a172b4fd519174f932e73d58a2618ef37273e82fe681bb129891f2792a414025f6c61 exitcode.patch" +4987254439a136f66a7b7be1300f5efbf85db74bdb64fdd8d0c9a555173a172b4fd519174f932e73d58a2618ef37273e82fe681bb129891f2792a414025f6c61 exitcode.patch +8d45f85a451868ec49fc263e60a1ab943ecea172ec32091ac9e2b85f0e9c7091423313eb4bbe037eac2b75086cd8c9d307bd0c37d58d4051742d9e2c579340a4 gcc-volatile.patch" diff --git a/user/vte/gcc-volatile.patch b/user/vte/gcc-volatile.patch new file mode 100644 index 000000000..924d4e16b --- /dev/null +++ b/user/vte/gcc-volatile.patch @@ -0,0 +1,45 @@ +From 89e9230dc1a27b89cca16de32e903918a27b8e42 Mon Sep 17 00:00:00 2001 +From: Christian Persch <chpe@src.gnome.org> +Date: Mon, 16 Nov 2020 20:27:48 +0100 +Subject: [PATCH] lib: Drop wrong use of volatile + +--- + src/vtetypebuiltins.cc.template | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/vtetypebuiltins.cc.template b/src/vtetypebuiltins.cc.template +index dade41de7..3a50d4011 100644 +--- a/src/vtetypebuiltins.cc.template ++++ b/src/vtetypebuiltins.cc.template +@@ -11,9 +11,9 @@ + GType + @enum_name@_get_type (void) + { +- static volatile gsize g_define_type_id__volatile = 0; ++ static gsize g_define_type_id = 0; + +- if (g_once_init_enter (&g_define_type_id__volatile)) { ++ if (g_once_init_enter (&g_define_type_id)) { + static const G@Type@Value values[] = { + /*** END value-header ***/ + +@@ -24,13 +24,13 @@ GType + /*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; +- GType g_define_type_id = \ ++ GType type_id = \ + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + +- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); ++ g_once_init_leave (&g_define_type_id, type_id); + } + +- return g_define_type_id__volatile; ++ return g_define_type_id; + } + + /*** END value-tail ***/ +-- +GitLab + diff --git a/user/weechat/APKBUILD b/user/weechat/APKBUILD index 099bf8adb..d99af8283 100644 --- a/user/weechat/APKBUILD +++ b/user/weechat/APKBUILD @@ -2,7 +2,7 @@ # Contributor: zlg <zlg+adelie@zlg.space> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=weechat -pkgver=3.8 +pkgver=4.2.1 pkgrel=0 pkgdesc="Fast, light, extensible ncurses-based chat client" url="https://www.weechat.org" @@ -63,4 +63,4 @@ _plugin() { mv "$pkgdir"/$_dir/${_name}.so "$subpkgdir"/$_dir } -sha512sums="1c176280380d735ae609341272526b1bb8707b98c6715c69ac298f79e290ebb5544f7abc4b3f5c751168a99e78d8919b135e8557adea50af6e467bf7ee340ca6 weechat-3.8.tar.gz" +sha512sums="0f26ea34480f6388c51eb18c9f08b893cc1e16a27b02c30ef2642a93806f94ca58ccc5aebd7c06711ab77d7d1693653e00873340da38bd555f60adb13557d768 weechat-4.2.1.tar.gz" diff --git a/user/wget/APKBUILD b/user/wget/APKBUILD index 967995609..53803f238 100644 --- a/user/wget/APKBUILD +++ b/user/wget/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Nathan <ndowens@artixlinux.org> # Maintainer: Zach van Rijn <me@zv.io> pkgname=wget -pkgver=1.20.3 +pkgver=1.24.5 pkgrel=0 pkgdesc="Network utility to retrieve files from the Web" url="https://www.gnu.org/software/wget/wget.html" @@ -34,4 +34,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e8b82b40e270296228094a78d47f81580bdbdea9e6b93fd61b37dccb39430aeb9bda5397dc53a31c952a61629383c7e2a8c8abf414c8a4dd369af6ecf2717e6c wget-1.20.3.tar.gz" +sha512sums="572aa54717e51a9eb9959e127c7afb696645088f32ff7df2cfe9d243957e34ee235e98988fa94649df023d2e3d62b6973e8c9f2eb92beba820dd96d5de2a950d wget-1.24.5.tar.gz" diff --git a/user/x11vnc/APKBUILD b/user/x11vnc/APKBUILD index b9154729b..722f249ba 100644 --- a/user/x11vnc/APKBUILD +++ b/user/x11vnc/APKBUILD @@ -2,9 +2,9 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=x11vnc pkgver=0.9.16 -pkgrel=0 +pkgrel=1 pkgdesc="VNC server for X11 sessions" -url="http://www.karlrunge.com/x11vnc/" +url=" " arch="all" license="GPL-2.0-only" depends="" @@ -14,6 +14,7 @@ subpackages="$pkgname-doc" source="$pkgname-$pkgver.tar.gz::https://github.com/LibVNC/x11vnc/archive/$pkgver.tar.gz time64.patch utmps.patch + gcc10.patch " prepare() { @@ -43,4 +44,5 @@ package() { sha512sums="69f65ee312f8dede6051b401304987502a213c6c28c7f41e855734f11de1fae14d5d493dc9c28b2e4b7c0be55f8dbd3b35dd2610aae910183772c3e626736fec x11vnc-0.9.16.tar.gz 764dc0d22f4b167b7683b1551a6d8cc8ea6745fdd9791422404ef604186930615b52ef1bf66fd03dd9c6eed18845ff4a1e5a235eee80810177e082359a8c4766 time64.patch -8aaa6d1fd9e795a60cad162f2b21fe96cd3a7076a0c4fae6e6b0021881bd019312a678fa3ed69b694da36ee64cc0601812da5df96c6461baf68b7e70adf6cd4e utmps.patch" +8aaa6d1fd9e795a60cad162f2b21fe96cd3a7076a0c4fae6e6b0021881bd019312a678fa3ed69b694da36ee64cc0601812da5df96c6461baf68b7e70adf6cd4e utmps.patch +b7b774c155f326bca1fee4bed22609f1e0236dae5cb2fea96bab18301bc6ae8f9c7fb11ba1950eb9488683bd2d3158b7b16a71948f2c8d483594e36625b3d470 gcc10.patch" diff --git a/user/x11vnc/gcc10.patch b/user/x11vnc/gcc10.patch new file mode 100644 index 000000000..a32d5785d --- /dev/null +++ b/user/x11vnc/gcc10.patch @@ -0,0 +1,42 @@ +From a48b0b1cd887d7f3ae67f525d7d334bd2feffe60 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy <alexander@tsoy.me> +Date: Tue, 28 Jan 2020 22:21:01 +0300 +Subject: [PATCH] Fix build with -fno-common + +GCC 10 defaults to -fno-common +--- + src/util.c | 3 +++ + src/util.h | 6 +++--- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/util.c b/src/util.c +index a82a1a42..6a52ebf4 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -47,6 +47,9 @@ int hxl = 0; + #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD + MUTEX(x11Mutex); + MUTEX(scrollMutex); ++MUTEX(clientMutex); ++MUTEX(inputMutex); ++MUTEX(pointerMutex); + #endif + + int nfix(int i, int n); +diff --git a/src/util.h b/src/util.h +index 35c1afd2..99b5dd1d 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -102,9 +102,9 @@ extern struct timeval _mysleep; + #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD + extern MUTEX(x11Mutex); + extern MUTEX(scrollMutex); +-MUTEX(clientMutex); +-MUTEX(inputMutex); +-MUTEX(pointerMutex); ++extern MUTEX(clientMutex); ++extern MUTEX(inputMutex); ++extern MUTEX(pointerMutex); + #endif + + #define X_INIT INIT_MUTEX(x11Mutex) diff --git a/user/xapian-core/APKBUILD b/user/xapian-core/APKBUILD index 85f8f8f89..54298c775 100644 --- a/user/xapian-core/APKBUILD +++ b/user/xapian-core/APKBUILD @@ -1,18 +1,18 @@ # Contributor: Francesco Colista <fcolista@alpinelinux.org> # Maintainer: pkgname=xapian-core -pkgver=1.4.17 +pkgver=1.4.25 pkgrel=0 pkgdesc="Open source search engine library" url="https://xapian.org/" arch="all" -options="!check" # sortableserialise1 is still broken license="GPL-2.0+" depends="" depends_dev="zlib-dev util-linux-dev" makedepends="$depends_dev libtool" subpackages="$pkgname-dev $pkgname-doc libxapian" -source="http://oligarchy.co.uk/xapian/$pkgver/$pkgname-$pkgver.tar.xz +source="https://oligarchy.co.uk/xapian/$pkgver/$pkgname-$pkgver.tar.xz + sortable-serialise.patch timeval-t.patch " @@ -46,5 +46,6 @@ libxapian() { mv "$pkgdir"/usr/lib/$subpkgname* "$subpkgdir"/usr/lib } -sha512sums="3eaf45d31eb9318e292fa052b32b1d9e1035651bdd3c366a0134f4b39d03d987083c19426a3d4b10f60078190fc3388f05b332cba958263bab1abf236c7a3ca7 xapian-core-1.4.17.tar.xz +sha512sums="e8069f2cb75554978716a99580fb57fc73bbdd607c82394f53d07205d8c78fb59265004be0c676a6806bb2840a3933499dfc867e36a28855278569a0676d469d xapian-core-1.4.25.tar.xz +d5c6dac118b96ed66ce7d01c0d8c41b4765397e56fec5ea64cd1d223e4d152c9bb9171bbd8bd804d1285103850ae8a1d21fe137e906da94c42b421b0e6e2a49a sortable-serialise.patch 639c0ecd75be0627d334628b5adf581a7da92c4f86dfb86a92669368ff8a874d4bf4e344b8f3b1276d22d126d2bc44c8ab727e39e1c29c0358fe7bbc8aa8050d timeval-t.patch" diff --git a/user/xapian-core/sortable-serialise.patch b/user/xapian-core/sortable-serialise.patch new file mode 100644 index 000000000..d7cb9209a --- /dev/null +++ b/user/xapian-core/sortable-serialise.patch @@ -0,0 +1,15 @@ +Discussing with upstream, but for now, this does fix both the test suite +and operationally the ability to serialise +Inf values. +--- xapian-core-1.4.25/api/sortable-serialise.cc.old 2024-03-07 16:57:54.000000000 -0600 ++++ xapian-core-1.4.25/api/sortable-serialise.cc 2024-05-30 00:49:54.835053392 -0500 +@@ -55,6 +55,10 @@ + + // Negative infinity. + if (value < -DBL_MAX) return 0; ++ if (value == HUGE_VAL) { ++ memset(buf, '\xff', 9); ++ return 9; ++ } + + mantissa = frexp(value, &exponent); + diff --git a/user/xf86-video-amdgpu/APKBUILD b/user/xf86-video-amdgpu/APKBUILD index 2a0effefa..c8df25305 100644 --- a/user/xf86-video-amdgpu/APKBUILD +++ b/user/xf86-video-amdgpu/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xf86-video-amdgpu -pkgver=19.1.0 +pkgver=23.0.0 pkgrel=0 pkgdesc="X.Org driver for brand new AMD GPUs" url="https://www.X.Org/" @@ -11,7 +11,7 @@ depends="" makedepends="eudev-dev libdrm-dev mesa-dev util-macros xorg-server-dev xorgproto-dev" subpackages="$pkgname-doc" -source="https://www.x.org/releases/individual/driver/xf86-video-amdgpu-$pkgver.tar.bz2" +source="https://www.x.org/releases/individual/driver/xf86-video-amdgpu-$pkgver.tar.xz" build() { ./configure \ @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ccdaa2378492da1a2f3d18fedacd1318c4708da534a8a959276a82730d5420619d83ad1ec8d7835c55655fe56123cd9bffb44e6223c5a97033c01f598af4a173 xf86-video-amdgpu-19.1.0.tar.bz2" +sha512sums="bf26f147629a34e84a0ae8435119e170b9c95edafcab1995b63bb8f55abef32f2efbf4536eb070e64b2ae1460424b1b27a4206cb9836d33ddc6dfbee404f718b xf86-video-amdgpu-23.0.0.tar.xz" diff --git a/user/xf86-video-ati/APKBUILD b/user/xf86-video-ati/APKBUILD index 15029c507..fc2090f95 100644 --- a/user/xf86-video-ati/APKBUILD +++ b/user/xf86-video-ati/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xf86-video-ati -pkgver=19.1.0 -pkgrel=2 +pkgver=22.0.0 +pkgrel=0 pkgdesc="ATI video driver for X11" url="https://www.X.Org/" arch="all" @@ -11,9 +11,7 @@ depends="mesa-dri" makedepends="eudev-dev libdrm-dev libxi-dev mesa-dev pixman-dev util-macros xorg-server-dev" subpackages="$pkgname-doc" -source="https://www.X.Org/releases/individual/driver/$pkgname-$pkgver.tar.bz2 - null-deref-exa.patch - " +source="https://www.X.Org/releases/individual/driver/$pkgname-$pkgver.tar.xz" build() { export LDFLAGS="$LDFLAGS -Wl,-z,lazy" @@ -29,5 +27,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="73a81f6c492daf2e89067fb52b3033dc0fe6841f109627ddca1aee54a45a738c8c134443753a2a2aaa2c131e1d560057ebc76351ff2304c16407df3ff568fcd6 xf86-video-ati-19.1.0.tar.bz2 -f9c6928f741014b47b302c2f2cf6a0110fcc0935cb3a2725e37f8b48e9cd778639231110b9a4ce67ad38174b21b47864ff0793f9181347c21ef694bedbc44b0b null-deref-exa.patch" +sha512sums="fba9ffc7b0eeb0c369eb1a6f8ef0bb3061cfeca26bc269baf6e3d16dcd943fbf4092f1e37adfb1bc71051cee0b7a0e6fb253f0b8bcd210732ccaf99e8f2356fe xf86-video-ati-22.0.0.tar.xz" diff --git a/user/xf86-video-ati/null-deref-exa.patch b/user/xf86-video-ati/null-deref-exa.patch deleted file mode 100644 index dd13e9b60..000000000 --- a/user/xf86-video-ati/null-deref-exa.patch +++ /dev/null @@ -1,77 +0,0 @@ -From a8168153037f2cfb9739285b92896c0e24872518 Mon Sep 17 00:00:00 2001 -From: Alexey Sheplyakov <asheplyakov@altlinux.org> -Date: Wed, 27 Nov 2019 20:50:58 +0400 -Subject: [PATCH] Don't crash X server if GPU acceleration is not available - -Commit d1d8e3c8d0a0a0394d395eba171460501745209b causes X server -to fail on startup when GPU acceleration is not working (or is -disabled). The reason is that `radeon_get_pixmap_bo` function -gets called too early (before EXA has been initialized) and -fails with an assert: - - #0 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 - #1 0x76ab1c6c in __GI_abort () at abort.c:79 - #2 0x76ac0b64 in __assert_fail_base (fmt=0x76bfbce4 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7658c80c "key->initialized", file=<optimized out>, line=121, - function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:92 - #3 0x76ac0c0c in __GI___assert_fail (assertion=0x7658c80c "key->initialized", file=0x7658c9d0 "../include/privates.h", line=121, - function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:101 - #4 0x76579e6c in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at ../include/privates.h:121 - #5 0x7657a954 in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at exa.c:70 - #6 dixGetPrivate (key=<optimized out>, privates=<optimized out>) at ../include/privates.h:136 - #7 exaGetPixmapDriverPrivate (pPix=<optimized out>) at exa.c:68 - #8 0x7623d460 in radeon_get_pixmap_bo (pPix=0x71c1b8) at radeon.h:804 - #9 radeon_get_pixmap_handle (pixmap=0x71c1b8, handle=0x7fa22328) at radeon_bo_helper.c:357 - #10 0x76244458 in radeon_pixmap_get_fb (pix=0x71c1b8) at radeon.h:886 - #11 drmmode_set_mode_major (crtc=0x691860, mode=0x69191c, rotation=<optimized out>, x=<optimized out>, y=<optimized out>) at drmmode_display.c:918 - #12 0x762467e8 in drmmode_set_desired_modes (pScrn=0x67c678, drmmode=<optimized out>, set_hw=1) at drmmode_display.c:3128 - #13 0x0047bfa4 in MapWindow (client=0x669ec8, pWin=0x7206c0) at window.c:2722 - #14 MapWindow (pWin=0x7206c0, client=0x669ec8) at window.c:2665 - #15 0x00449650 in dix_main (argc=3, argv=0x7fa22604, envp=<optimized out>) at main.c:247 - #16 0x76ab2198 in __libc_start_main (main=0x42db10 <main>, argc=3, argv=0x7fa22604, init=<optimized out>, fini=0x606434 <__libc_csu_fini>, rtld_fini=0x77229930 <_dl_fini>, - stack_end=0x7fa225e0) at libc-start.c:308 - #17 0x0042db80 in __start () at ../sysdeps/mips/start.S:110 - -Don't call `exaGetPixmapDriverPrivate` if the acceleration (EXA) is not -enabled [yet] to avoid the problem. - -Closes: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/188 -Closes: https://bugzilla.altlinux.org/show_bug.cgi?id=37539 ---- - src/radeon.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/radeon.h b/src/radeon.h -index 2c913466..e4a2ba66 100644 ---- a/src/radeon.h -+++ b/src/radeon.h -@@ -790,8 +790,8 @@ static inline Bool radeon_set_pixmap_bo(PixmapPtr pPix, struct radeon_buffer *bo - - static inline struct radeon_buffer *radeon_get_pixmap_bo(PixmapPtr pPix) - { --#ifdef USE_GLAMOR - RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pPix->drawable.pScreen)); -+#ifdef USE_GLAMOR - - if (info->use_glamor) { - struct radeon_pixmap *priv; -@@ -799,7 +799,7 @@ static inline struct radeon_buffer *radeon_get_pixmap_bo(PixmapPtr pPix) - return priv ? priv->bo : NULL; - } else - #endif -- { -+ if (info->accelOn) { - struct radeon_exa_pixmap_priv *driver_priv; - driver_priv = exaGetPixmapDriverPrivate(pPix); - return driver_priv ? driver_priv->bo : NULL; -@@ -896,7 +896,7 @@ radeon_pixmap_get_fb(PixmapPtr pix) - handle); - } - -- return *fb_ptr; -+ return fb_ptr ? *fb_ptr : NULL; - } - - --- -2.24.1 - diff --git a/user/xf86-video-geode/APKBUILD b/user/xf86-video-geode/APKBUILD index 71749e608..22a81e7df 100644 --- a/user/xf86-video-geode/APKBUILD +++ b/user/xf86-video-geode/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xf86-video-geode -pkgver=2.11.19 +pkgver=2.11.21 pkgrel=0 pkgdesc="AMD Geode video driver for X11" url="https://www.X.Org/" @@ -10,10 +10,7 @@ license="X11" depends="" makedepends="util-macros xorgproto-dev xorg-server-dev" subpackages="" -source="https://www.x.org/releases/individual/driver/xf86-video-geode-$pkgver.tar.bz2 - loader.patch - randr.patch - " +source="https://www.x.org/releases/individual/driver/xf86-video-geode-$pkgver.tar.xz" build() { ./configure \ @@ -34,6 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f0b1c5edf1c226a4379aa9a4983e69cbaced0618868a7902de41a7754c148324c2a4ea73704aefd96f48d36f035fb2c8063604c26e21e986e4f90c3716578d41 xf86-video-geode-2.11.19.tar.bz2 -a6703c78f2790ff67eb812de3afcdff0a86b6dee8469318ed21e8a50af0a286a087739917e7559d920085563b62eaf9874d54397e88bc810e65bd6ffa7d0830f loader.patch -c4b1d09b17e84a3aa842e37f6710fcfe420c2cd9a3efeac5ea50c0d3eb7ebbdb370536a86e1741c89fe50ae38b22d9aecf1d6919077a1579209f2f70c2e0b099 randr.patch" +sha512sums="e12f74268ab7d16b57644a9465b4be1ca28d250625a31b8810e19a1f94a17e47e0a258455155fd8f336fa59fd78160cdf3763aa94b85c6ccc2c42edf3b65bc61 xf86-video-geode-2.11.21.tar.xz" diff --git a/user/xf86-video-geode/loader.patch b/user/xf86-video-geode/loader.patch deleted file mode 100644 index f318fbb17..000000000 --- a/user/xf86-video-geode/loader.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 09aaa3d1fae4aeb099b16e7a046151761bcdea95 Mon Sep 17 00:00:00 2001 -From: Adam Jackson <ajax@redhat.com> -Date: Tue, 24 Jan 2017 09:53:06 -0500 -Subject: Remove call to LoaderGetOS - -On OSes that don't have a /dev/videox we'll just fail the open() and not -initialize the Xv adaptor. - -Signed-off-by: Adam Jackson <ajax@redhat.com> ---- - src/z4l.c | 13 ------------- - 1 file changed, 13 deletions(-) - -diff --git a/src/z4l.c b/src/z4l.c -index eccefe8..be0d345 100644 ---- a/src/z4l.c -+++ b/src/z4l.c -@@ -1709,7 +1709,6 @@ _X_EXPORT XF86ModuleData ztvModuleData = { &z4lVersionRec, z4lSetup, NULL }; - static pointer - z4lSetup(pointer module, pointer opts, int *errmaj, int *errmin) - { -- const char *osname; - static Bool setupDone = FALSE; - - if (setupDone != FALSE) { -@@ -1719,19 +1718,7 @@ z4lSetup(pointer module, pointer opts, int *errmaj, int *errmin) - } - - setupDone = TRUE; -- LoaderGetOS(&osname, NULL, NULL, NULL); -- -- if (osname == NULL || strcmp(osname, "linux") != 0) { -- if (errmaj) -- *errmaj = LDR_BADOS; -- if (errmin) -- *errmin = 0; -- -- return NULL; -- } -- - xf86AddDriver(&Z4l, module, 0); -- - return (pointer) 1; - } - --- -cgit v1.1 - diff --git a/user/xf86-video-geode/randr.patch b/user/xf86-video-geode/randr.patch deleted file mode 100644 index 9c2b34ac9..000000000 --- a/user/xf86-video-geode/randr.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8382e6bb0c76a8029493eae3f2d7a3dbfd0cfc12 Mon Sep 17 00:00:00 2001 -From: Adam Jackson <ajax@redhat.com> -Date: Mon, 5 Mar 2018 10:28:15 -0500 -Subject: gx: Fix RANDR initialization for xserver 1.20 - -xf86DisableRandR() doesn't exist anymore, and we don't need it anyway, -the core code will notice that we set up RANDR ourselves. - -Signed-off-by: Adam Jackson <ajax@redhat.com> ---- - src/gx_driver.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/gx_driver.c b/src/gx_driver.c -index ab57df1..4de336e 100644 ---- a/src/gx_driver.c -+++ b/src/gx_driver.c -@@ -1426,7 +1426,9 @@ GXScreenInit(SCREEN_INIT_ARGS_DECL) - - /* Set up RandR */ - -+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 24 - xf86DisableRandR(); /* We provide our own RandR goodness */ -+#endif - - /* Try to set up the shadow FB for rotation */ - --- -cgit v1.1 - diff --git a/user/xf86-video-intel/APKBUILD b/user/xf86-video-intel/APKBUILD index a7eb064bb..c172ed53e 100644 --- a/user/xf86-video-intel/APKBUILD +++ b/user/xf86-video-intel/APKBUILD @@ -15,7 +15,9 @@ makedepends="xorg-server-dev libxi-dev libdrm-dev mesa-dev libxvmc-dev libxv-dev " subpackages="$pkgname-doc" -source="https://dev.sick.bike/dist/$pkgname-$pkgver.tar.gz" +source="https://dev.sick.bike/dist/$pkgname-$pkgver.tar.gz + fno-common.patch + " giturl="https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git" reporev="f66d39544bb8339130c96d282a80f87ca1606caf" @@ -42,4 +44,5 @@ package() { rm "$pkgdir"/usr/libexec/xf86-video-intel-backlight-helper } -sha512sums="cb853076238cbde61faeb7dd1a07c5edc5325361dc3109acd9c142c1bf66566ee8c19f8e709bde34456e4198353ac72d337bc6a43dbcc80a4546762541be6eb9 xf86-video-intel-2.99.917_git20200224.tar.gz" +sha512sums="cb853076238cbde61faeb7dd1a07c5edc5325361dc3109acd9c142c1bf66566ee8c19f8e709bde34456e4198353ac72d337bc6a43dbcc80a4546762541be6eb9 xf86-video-intel-2.99.917_git20200224.tar.gz +2290b7d1773ccff902b1300448513dd1be4db45db234a726b4a533430c9fb62a9802f306440f751e864e7a8fb5304468719a020fc86181465501b5b2d93f1390 fno-common.patch" diff --git a/user/xf86-video-intel/fno-common.patch b/user/xf86-video-intel/fno-common.patch new file mode 100644 index 000000000..5c0640f9f --- /dev/null +++ b/user/xf86-video-intel/fno-common.patch @@ -0,0 +1,24 @@ +From 7ca3a0d0d9a2de49db30708d38195b6585df4ed8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <hanno@gentoo.org> +Date: Sun, 2 Feb 2020 14:18:39 +0100 +Subject: [PATCH] Avoid duplicate definition of I810CopyROP in i810.h and + i810_accel.c, fixes compilation with -fno-common/gcc-10. + +--- + src/legacy/i810/i810.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h +index 347188c9..901b7e64 100644 +--- a/src/legacy/i810/i810.h ++++ b/src/legacy/i810/i810.h +@@ -322,6 +322,5 @@ extern void I810InitMC(ScreenPtr pScreen); + extern const OptionInfoRec *I810AvailableOptions(int chipid, int busid); + + extern const int I810CopyROP[16]; +-const int I810PatternROP[16]; + + #endif /* _I810_H_ */ +-- +2.24.1 + diff --git a/user/xf86-video-openchrome/APKBUILD b/user/xf86-video-openchrome/APKBUILD index 3d32b7dff..7846e5efc 100644 --- a/user/xf86-video-openchrome/APKBUILD +++ b/user/xf86-video-openchrome/APKBUILD @@ -18,6 +18,7 @@ prepare() { } build() { + export CFLAGS="$CFLAGS -fcommon" ./configure \ --build=$CBUILD \ --host=$CHOST \ diff --git a/user/xf86-video-r128/0001-Fix-output-detection-on-non-x86-and-allow-override.patch b/user/xf86-video-r128/0001-Fix-output-detection-on-non-x86-and-allow-override.patch new file mode 100644 index 000000000..83f70bef6 --- /dev/null +++ b/user/xf86-video-r128/0001-Fix-output-detection-on-non-x86-and-allow-override.patch @@ -0,0 +1,197 @@ +From c0d6b63859c4ef67bc87cf2efae1d608db176286 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sat, 11 Nov 2023 21:15:29 -0600 +Subject: [PATCH 1/3] Fix output detection on non-x86 and allow override + +This exposes a new option, "ForceOutput", which is read when the VBIOS is +inaccessible. With this change, r128 is usable on at least PPC systems. + +Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com> +--- + man/r128.man | 4 ++++ + src/r128.h | 2 +- + src/r128_driver.c | 29 ++--------------------- + src/r128_options.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++ + src/r128_output.c | 11 ++++++++- + 5 files changed, 76 insertions(+), 29 deletions(-) + create mode 100644 src/r128_options.h + +diff --git a/man/r128.man b/man/r128.man +index a93157a..c465531 100644 +--- a/man/r128.man ++++ b/man/r128.man +@@ -94,6 +94,10 @@ Beware that this may damage your panel, so use this + .B at your own risk. + The default depends on the device. + .TP ++.BI "Option \*qForceOutput\*q \*q" integer \*q ++Force a specific output layout. This option is only read when the video card BIOS is ++inaccessible (typically on non-x86 architectures). This allows you to override the ++default output layout, which is a single VGA output on port 0. + .BI "Option \*qPanelWidth\*q \*q" integer \*q + .TP + .BI "Option \*qPanelHeight\*q \*q" integer \*q +diff --git a/src/r128.h b/src/r128.h +index 6ab6beb..1ddb0f9 100644 +--- a/src/r128.h ++++ b/src/r128.h +@@ -66,7 +66,7 @@ + #undef R128DRI + #endif + +-#if R128DRI ++#ifdef R128DRI + #define _XF86DRI_SERVER_ + #include "r128_dripriv.h" + #include "dri.h" +diff --git a/src/r128_driver.c b/src/r128_driver.c +index 6791290..213b948 100644 +--- a/src/r128_driver.c ++++ b/src/r128_driver.c +@@ -67,6 +67,7 @@ + + /* Driver data structures */ + #include "r128.h" ++#include "r128_options.h" + #include "r128_probe.h" + #include "r128_reg.h" + #include "r128_version.h" +@@ -114,33 +115,6 @@ static Bool R128SaveScreen(ScreenPtr pScreen, int mode); + static void R128Save(ScrnInfoPtr pScrn); + static void R128Restore(ScrnInfoPtr pScrn); + +-typedef enum { +- OPTION_NOACCEL, +- OPTION_FBDEV, +- OPTION_DAC_6BIT, +- OPTION_VGA_ACCESS, +- OPTION_SHOW_CACHE, +- OPTION_SW_CURSOR, +- OPTION_VIDEO_KEY, +- OPTION_PANEL_WIDTH, +- OPTION_PANEL_HEIGHT, +- OPTION_PROG_FP_REGS, +-#ifdef R128DRI +- OPTION_XV_DMA, +- OPTION_IS_PCI, +- OPTION_CCE_PIO, +- OPTION_NO_SECURITY, +- OPTION_USEC_TIMEOUT, +- OPTION_AGP_MODE, +- OPTION_AGP_SIZE, +- OPTION_RING_SIZE, +- OPTION_BUFFER_SIZE, +- OPTION_PAGE_FLIP, +-#endif +- OPTION_ACCELMETHOD, +- OPTION_RENDERACCEL +-} R128Opts; +- + static const OptionInfoRec R128Options[] = { + { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_FBDEV, "UseFBDev", OPTV_BOOLEAN, {0}, FALSE }, +@@ -166,6 +140,7 @@ static const OptionInfoRec R128Options[] = { + #endif + { OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, + { OPTION_RENDERACCEL, "RenderAccel", OPTV_BOOLEAN, {0}, FALSE }, ++ { OPTION_FORCEOUTPUT, "ForceOutput", OPTV_INTEGER, {0}, FALSE }, + { -1, NULL, OPTV_NONE, {0}, FALSE } + }; + +diff --git a/src/r128_options.h b/src/r128_options.h +new file mode 100644 +index 0000000..cce765b +--- /dev/null ++++ b/src/r128_options.h +@@ -0,0 +1,59 @@ ++/* ++ * Copyright 2023 A. Wilcox, Tulsa, Oklahoma. ++ * ++ * All Rights Reserved. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining ++ * a copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation on the rights to use, copy, modify, merge, ++ * publish, distribute, sublicense, and/or sell copies of the Software, ++ * and to permit persons to whom the Software is furnished to do so, ++ * subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the ++ * next paragraph) shall be included in all copies or substantial ++ * portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR ++ * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ */ ++ ++#ifndef _R128_OPTIONS_H_ ++#define _R128_OPTIONS_H_ 1 ++ ++typedef enum { ++ OPTION_NOACCEL, ++ OPTION_FBDEV, ++ OPTION_DAC_6BIT, ++ OPTION_VGA_ACCESS, ++ OPTION_SHOW_CACHE, ++ OPTION_SW_CURSOR, ++ OPTION_VIDEO_KEY, ++ OPTION_PANEL_WIDTH, ++ OPTION_PANEL_HEIGHT, ++ OPTION_PROG_FP_REGS, ++#ifdef R128DRI ++ OPTION_XV_DMA, ++ OPTION_IS_PCI, ++ OPTION_CCE_PIO, ++ OPTION_NO_SECURITY, ++ OPTION_USEC_TIMEOUT, ++ OPTION_AGP_MODE, ++ OPTION_AGP_SIZE, ++ OPTION_RING_SIZE, ++ OPTION_BUFFER_SIZE, ++ OPTION_PAGE_FLIP, ++#endif ++ OPTION_ACCELMETHOD, ++ OPTION_RENDERACCEL, ++ OPTION_FORCEOUTPUT ++} R128Opts; ++ ++#endif /* _R128_OPTIONS_H_ */ +diff --git a/src/r128_output.c b/src/r128_output.c +index 1d98fb9..05b8c1f 100644 +--- a/src/r128_output.c ++++ b/src/r128_output.c +@@ -44,6 +44,7 @@ + #endif + + #include "r128.h" ++#include "r128_options.h" + #include "r128_probe.h" + #include "r128_reg.h" + +@@ -425,7 +426,15 @@ void R128GetConnectorInfoFromBIOS(ScrnInfoPtr pScrn, R128OutputType *otypes) + + /* non-x86 platform */ + if (!info->VBIOS) { +- otypes[0] = OUTPUT_VGA; ++ int outputs; ++ xf86GetOptValInteger(info->Options, OPTION_FORCEOUTPUT, &outputs); ++ if (outputs) { ++ otypes[0] = outputs & 0x3; ++ otypes[1] = (outputs >> 2) & 0x3; ++ } else { ++ otypes[0] = OUTPUT_VGA; ++ } ++ return; + } + + bios_header = R128_BIOS16(0x48); +-- +2.39.3 (Apple Git-145) + diff --git a/user/xf86-video-r128/0002-Only-try-to-init-XAA-when-XAA-is-available.patch b/user/xf86-video-r128/0002-Only-try-to-init-XAA-when-XAA-is-available.patch new file mode 100644 index 000000000..5a2167609 --- /dev/null +++ b/user/xf86-video-r128/0002-Only-try-to-init-XAA-when-XAA-is-available.patch @@ -0,0 +1,34 @@ +From 4f9f1ba9d55dd946b81c7bbb640a24010b4ce16c Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sat, 11 Nov 2023 21:19:07 -0600 +Subject: [PATCH 2/3] Only try to init XAA when XAA is available + +--- + src/r128_driver.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/r128_driver.c b/src/r128_driver.c +index 213b948..109c290 100644 +--- a/src/r128_driver.c ++++ b/src/r128_driver.c +@@ -1862,14 +1862,15 @@ Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL) + } + + if (!info->noAccel) { ++#ifdef HAVE_XAA_H + if (R128XAAAccelInit(pScreen)) { + info->accelOn = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "XAA acceleration enabled.\n"); +- } else { ++ } else ++#endif + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Acceleration disabled.\n"); +- } + } + } + } +-- +2.39.3 (Apple Git-145) + diff --git a/user/xf86-video-r128/0003-Disable-Int10-support-on-all-non-x86-arches.patch b/user/xf86-video-r128/0003-Disable-Int10-support-on-all-non-x86-arches.patch new file mode 100644 index 000000000..cd8b6887a --- /dev/null +++ b/user/xf86-video-r128/0003-Disable-Int10-support-on-all-non-x86-arches.patch @@ -0,0 +1,48 @@ +From 4d54c24e7637a82838b5b79caa8a09bbeb8f0d99 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sat, 11 Nov 2023 21:25:09 -0600 +Subject: [PATCH 3/3] Disable Int10 support on all non-x86 arches + +--- + src/r128_driver.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/r128_driver.c b/src/r128_driver.c +index 109c290..499ecd5 100644 +--- a/src/r128_driver.c ++++ b/src/r128_driver.c +@@ -961,7 +961,7 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) + + static Bool R128PreInitDDC(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10) + { +-#if !defined(__powerpc__) && !defined(__alpha__) && !defined(__sparc__) ++#if defined(__i386__) || defined(__x86_64__) + R128InfoPtr info = R128PTR(pScrn); + vbeInfoPtr pVbe; + #endif +@@ -969,8 +969,8 @@ static Bool R128PreInitDDC(ScrnInfoPtr pScrn, xf86Int10InfoPtr pInt10) + if (!xf86LoadSubModule(pScrn, "ddc")) return FALSE; + if (!xf86LoadSubModule(pScrn, "i2c")) return FALSE; + +-#if defined(__powerpc__) || defined(__alpha__) || defined(__sparc__) +- /* Int10 is broken on PPC and some Alphas */ ++#if !defined(__i386__) && !defined(__x86_64__) ++ /* Int10 is broken on non-x86 */ + return TRUE; + #else + if (xf86LoadSubModule(pScrn, "vbe")) { +@@ -1006,9 +1006,9 @@ static Bool R128PreInitCursor(ScrnInfoPtr pScrn) + + static Bool R128PreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10) + { ++#if defined(__i386__) || defined(__x86_64__) + R128InfoPtr info = R128PTR(pScrn); +-#if !defined(__powerpc__) && !defined(__alpha__) +- /* int10 is broken on some Alphas and powerpc */ ++ /* int10 is broken on non-x86 */ + if (xf86LoadSubModule(pScrn, "int10")) { + xf86DrvMsg(pScrn->scrnIndex,X_INFO,"initializing int10\n"); + *ppInt10 = xf86InitInt10(info->pEnt->index); +-- +2.39.3 (Apple Git-145) + diff --git a/user/xf86-video-r128/APKBUILD b/user/xf86-video-r128/APKBUILD index 0e6702994..80d5a6922 100644 --- a/user/xf86-video-r128/APKBUILD +++ b/user/xf86-video-r128/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xf86-video-r128 -pkgver=6.12.0 +pkgver=6.12.1 pkgrel=0 pkgdesc="ATi Rage 128 video driver for X11" url="https://www.X.Org/" @@ -10,8 +10,10 @@ license="X11 AND MIT" depends="" makedepends="util-macros xorgproto-dev xorg-server-dev" subpackages="$pkgname-doc" -source="https://www.x.org/releases/individual/driver/xf86-video-r128-$pkgver.tar.bz2 - xaa.patch +source="https://www.x.org/releases/individual/driver/xf86-video-r128-$pkgver.tar.xz + 0001-Fix-output-detection-on-non-x86-and-allow-override.patch + 0002-Only-try-to-init-XAA-when-XAA-is-available.patch + 0003-Disable-Int10-support-on-all-non-x86-arches.patch " build() { @@ -33,5 +35,7 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="0e667e2cfa8a87a00846361d86528c93754c403c812b66798953fa4c857b2143b2c4c44885da467e7f910d8cb910b69492cdcb6f25e2197bae6617364d152e38 xf86-video-r128-6.12.0.tar.bz2 -45104ea2da49933f6d40834badb58c4db8706a9bf3080df7b2538f4cb1e7964b900c10b47386b9502bb4abee796b5f40f30252d1526e26d860b833c4dabca8ba xaa.patch" +sha512sums="18b2408fe68161c32f84c7147717f8e6c6377e81e9d59e2f098843c54cd0ae757aab5059568da8c71ef38100807d56ee22447417c236c1b3deea292bb676e700 xf86-video-r128-6.12.1.tar.xz +2b4e4769ef05a2daa552a15adc92ba2b8fc3417e6e43111715ea0c8b0c7a77a97e94b858f3062cf71a73beed0a6f487e765b505e96b7636d881dc10afe4eba5e 0001-Fix-output-detection-on-non-x86-and-allow-override.patch +490f598f268d3ab3c19deed1f1f1d64a5f4c628cb8fb0f15448942480f13517ad7a3eeabcc9fcb3a98e9988aef96870c44ec4d96743fd742050971387e11cb67 0002-Only-try-to-init-XAA-when-XAA-is-available.patch +f5871aa1cf8231bd8c983cb78c0602991facef4be04aa12d3f08258cf40c9e1087c55f275efb4e27dc934e55b40805a18acfcc8454ab97dd75adaeb5a09917b9 0003-Disable-Int10-support-on-all-non-x86-arches.patch" diff --git a/user/xf86-video-r128/xaa.patch b/user/xf86-video-r128/xaa.patch deleted file mode 100644 index 3ede81203..000000000 --- a/user/xf86-video-r128/xaa.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- xf86-video-r128-6.12.0/src/r128_driver.c.old 2019-01-05 15:59:11.340000000 +0000 -+++ xf86-video-r128-6.12.0/src/r128_driver.c 2019-01-05 16:16:10.810000000 +0000 -@@ -1887,14 +1887,16 @@ - } - - if (!info->noAccel) { -+#ifdef HAVE_XAA_H - if (R128XAAAccelInit(pScreen)) { - info->accelOn = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "XAA acceleration enabled.\n"); -- } else { -+ } else -+#endif - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Acceleration disabled.\n"); -- } -+ - } - } - } diff --git a/user/xf86-video-vmware/APKBUILD b/user/xf86-video-vmware/APKBUILD index 511336412..c8dc14371 100644 --- a/user/xf86-video-vmware/APKBUILD +++ b/user/xf86-video-vmware/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xf86-video-vmware -pkgver=13.3.0 -pkgrel=1 +pkgver=13.4.0 +pkgrel=0 pkgdesc="X.Org driver for VMware's SVGA adaptor" url="https://www.X.Org/" # Requires kernel interfaces unavailable on ARM. @@ -11,9 +11,7 @@ license="X11" depends="" makedepends="eudev-dev util-macros xorg-server-dev xorgproto-dev" subpackages="$pkgname-doc" -source="https://www.X.Org/releases/individual/driver/xf86-video-vmware-$pkgver.tar.bz2 - fix-stdbool-includes.patch - " +source="https://www.X.Org/releases/individual/driver/xf86-video-vmware-$pkgver.tar.xz" build() { ./configure \ @@ -34,5 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c318de893cae7b2b11e11c1b389ee47478b7c8d1f52c27099dbe453efec28f3e9da449217307a8c2251999eada66312f766996be1a6ead413b8b6dedc42c68ca xf86-video-vmware-13.3.0.tar.bz2 -b607f875143213015a839336b453131a477387ca9c8422957697628b3b7d1667b1a196f6aa41ea93f262589a8bea560d3e1f2337aea5fbf466610191a78ad5f4 fix-stdbool-includes.patch" +sha512sums="7cacde21a490501dd9c2e9121040274c1f6ef64e6dc0ef49946b400f6297fab73a6e9548e45fe8930cee9028e65e45aaff9ba489dd69ac75a5133114726bf55d xf86-video-vmware-13.4.0.tar.xz" diff --git a/user/xfce-desktop/APKBUILD b/user/xfce-desktop/APKBUILD index 7b90fe7de..3182ade61 100644 --- a/user/xfce-desktop/APKBUILD +++ b/user/xfce-desktop/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce-desktop pkgver=4.13 -pkgrel=0 +pkgrel=1 arch="noarch" pkgdesc="Complete XFCE desktop environment" url="https://xfce.org" @@ -13,7 +13,7 @@ depends="catfish gigolo exo mousepad orage parole ristretto thunar xfce4-power-manager xfce4-settings xfce4-volumed-pulse xfdesktop xfce4-appfinder xfce4-panel xfce4-screenshooter xfce4-taskmanager xfconf xfce4-dict xfce4-panel-profiles xfce4-session xfdashboard xfmpc - xfwm4 xfce4-terminal xfce4-notifyd" + xfwm4 xfce4-terminal xfce4-notifyd adelie-fonts" makedepends="" source="org.adelie-linux.about-xfce.desktop" diff --git a/user/xfce4-clipman-plugin/APKBUILD b/user/xfce4-clipman-plugin/APKBUILD index dbad959c5..ecf17f84c 100644 --- a/user/xfce4-clipman-plugin/APKBUILD +++ b/user/xfce4-clipman-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-clipman-plugin -pkgver=1.6.4 +pkgver=1.6.6 pkgrel=0 pkgdesc="Clipboard management plugin for the XFCE panel" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e2cb4068ad00e89d848c72ab4c1b7aac0d41bdd006b60afd09e0323fca1c903eeee3b04a68221f5a2cb6be1347eac8879dfa6bd8b0483c2a075eb36e8cf65ea7 xfce4-clipman-plugin-1.6.4.tar.bz2" +sha512sums="4f6bb8f56111903af576d06ce5883e8ada2cb3ea377e09a79d2c5fb6f37743dac621649465a573a8a29a1fb884e7608a53dd6486eada23c7f8ee6401237988af xfce4-clipman-plugin-1.6.6.tar.bz2" diff --git a/user/xfce4-dev-tools/APKBUILD b/user/xfce4-dev-tools/APKBUILD index e42a4ff0d..11107699d 100644 --- a/user/xfce4-dev-tools/APKBUILD +++ b/user/xfce4-dev-tools/APKBUILD @@ -1,14 +1,14 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-dev-tools -pkgver=4.18.0 +pkgver=4.18.1 pkgrel=0 pkgdesc="Developer tools for XFCE" url="https://xfce.org" arch="all" license="GPL-2.0+" depends="" -makedepends="glib-dev" +makedepends="glib-dev libxslt-dev" subpackages="$pkgname-dev $pkgname-doc" source="https://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="59f858b633d95585a74c9b9515a0994744f4355ab3813e582e10c776454ac41c86296a9fbd935d5dae88929ec09ec9c30f48629c7addb5729e6bea108d304f7c xfce4-dev-tools-4.18.0.tar.bz2" +sha512sums="8fa65aa57450d3e65ef55bf86e8a113c06e64289a9f71875049b422da2a8bdfcdd36c3a3e94a3c0e7c602a3e9577eca14d63318489f81fd88d6743e188636304 xfce4-dev-tools-4.18.1.tar.bz2" diff --git a/user/xfce4-dict/APKBUILD b/user/xfce4-dict/APKBUILD index 2c6751e0c..b8fe50843 100644 --- a/user/xfce4-dict/APKBUILD +++ b/user/xfce4-dict/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-dict -pkgver=0.8.5 +pkgver=0.8.6 pkgrel=0 pkgdesc="Dictionary application for the XFCE desktop environment" url="https://xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4ff6e881c4dfec6cc6a2e9a33ccad1362d3304e58d91cc5da9305a937c7e3382d9c2ad3356d9e4d5f080d4368f7e0f3ceded1c2fbf18bca8ac7903310d22ffc3 xfce4-dict-0.8.5.tar.bz2" +sha512sums="bbb5926121e31c5adbd8f4c3ceb479759ee07b902e690245087213668fade48b92f9ffc7f4cabdfaa3ee1c02db8847468dd0bbd11e240017cd3c2b9901b81485 xfce4-dict-0.8.6.tar.bz2" diff --git a/user/xfce4-docklike-plugin/APKBUILD b/user/xfce4-docklike-plugin/APKBUILD index c02ff050e..7d68c8b46 100644 --- a/user/xfce4-docklike-plugin/APKBUILD +++ b/user/xfce4-docklike-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-docklike-plugin -pkgver=0.4.1 +pkgver=0.4.2 pkgrel=0 pkgdesc="A modern, minimalist taskbar for XFCE" url="https://www.xfce.org" @@ -32,5 +32,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e2de70eb56a64a9d8c809c669ca590b9c10d5ee87c94d49f73463ac51e301ae66e78954d1740b3bd611bdf6da5cb8d63cb98512111be8509b5133d0c67e4dc14 xfce4-docklike-plugin-0.4.1.tar.bz2 +sha512sums="8e96abbde0f9f81bb4797302aba3a711307ab46c832aac92351e038543e078bbf42f86785ee06c28c9d38dff0655ee2933247e9086ba0925f5aa05416b3ef708 xfce4-docklike-plugin-0.4.2.tar.bz2 6613eb5214bd88319f0bd9414cc6378647d7dd5b7f8b5624e72d8dc1ea8a7818033a3a4c9583dbe296398eb40ce1f093883fe74e31fffdfccfd2271771540da4 xfce4-docklike-plugin-0.4.0-fix-missing-include.patch" diff --git a/user/xfce4-notes-plugin/APKBUILD b/user/xfce4-notes-plugin/APKBUILD index c94d42b4b..ea9531c6f 100644 --- a/user/xfce4-notes-plugin/APKBUILD +++ b/user/xfce4-notes-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-notes-plugin -pkgver=1.10.0 +pkgver=1.11.0 pkgrel=0 pkgdesc="XFCE panel plugin for sticky notes" url="https://www.xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4c050a95f879f0ba5e28662853ab764a14fbcef513e037bfdef1e3cae91b504d0c55eb0b533098589cf568c8e6e6e3ec2dec0841eb54c99c50105f6fff55a447 xfce4-notes-plugin-1.10.0.tar.bz2" +sha512sums="3644049bb2aa77bbed5b391f47d67dbf6528cb535448287a28a011d78a6fb31971a3556fe37ad380858d2b561ef67fee2bc93c4ed0c19c75c564d832cd4d47f1 xfce4-notes-plugin-1.11.0.tar.bz2" diff --git a/user/xfce4-notifyd/APKBUILD b/user/xfce4-notifyd/APKBUILD index a8247f575..c4e8a8e5f 100644 --- a/user/xfce4-notifyd/APKBUILD +++ b/user/xfce4-notifyd/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-notifyd -pkgver=0.8.2 +pkgver=0.9.4 pkgrel=0 pkgdesc="Notification service for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8da4bc1f81c1baa91367ba508be87e2bac71180734062cdcb308076acf97a5ccb52382b7e1bd031750253dda6a69882eb92f4679220bb042426092a47eb8c7e0 xfce4-notifyd-0.8.2.tar.bz2" +sha512sums="d3339ec3555f27e624e643b52ce4de2a0834d38f675b286976abcb4e143cbbb32665b1f36fbff23791c152e1f0616b752a7f049045fc32829c27c0a87d82df94 xfce4-notifyd-0.9.4.tar.bz2" diff --git a/user/xfce4-panel/APKBUILD b/user/xfce4-panel/APKBUILD index 8c3fd4258..cc455a49a 100644 --- a/user/xfce4-panel/APKBUILD +++ b/user/xfce4-panel/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-panel -pkgver=4.18.5 +pkgver=4.18.6 pkgrel=0 pkgdesc="Panel for the XFCE desktop environment" url="https://xfce.org" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6d3fcf7d56cad2d5f6aa083937c912fe131bd5838a074c4fc9477a01d2c2ceab75fe53edf3681c266f659c6dac7466df38ec2ad3554a1e14267cc62e6c02d818 xfce4-panel-4.18.5.tar.bz2" +sha512sums="a1c4597bbbb72d2f3ef90abe0082abe3404e0ea7fa6027e26ca50e31e03645464ce3e0a72f4d927e84c5775a775e3a70f70e25bd3d2e4358da869f9c474e6174 xfce4-panel-4.18.6.tar.bz2" diff --git a/user/xfce4-power-manager/APKBUILD b/user/xfce4-power-manager/APKBUILD index 36f633fcc..23839e0fe 100644 --- a/user/xfce4-power-manager/APKBUILD +++ b/user/xfce4-power-manager/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-power-manager -pkgver=4.18.2 +pkgver=4.18.3 pkgrel=0 pkgdesc="Power management support for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4f192cbd13938fdd8c8483196bb8f17bc05300fff77790e03ae9b839c992ab6629a9770cf73c97bb3e5a4115c36fcd9ff0b89bc5230b639d2fe04d065b56b90c xfce4-power-manager-4.18.2.tar.bz2" +sha512sums="97f198ed78c3a13c5e64f0551d49533ac2efe0c719f4360eab94736790b225411b347a8524e8a2d7e28b14e546df6133df5273c80d8e0eb5766145782e1412fb xfce4-power-manager-4.18.3.tar.bz2" diff --git a/user/xfce4-pulseaudio-plugin/APKBUILD b/user/xfce4-pulseaudio-plugin/APKBUILD index 1d5aed762..27e3e473f 100644 --- a/user/xfce4-pulseaudio-plugin/APKBUILD +++ b/user/xfce4-pulseaudio-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-pulseaudio-plugin -pkgver=0.4.7 +pkgver=0.4.8 pkgrel=0 pkgdesc="Pulseaudio plugin for the XFCE panel" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a20c2250e36a9ac4308b07a937377dd8098b1609f01e86a35da9496a1c111ecafd85cd6b26945ee64e0be6d4a637d4e4d8950e6f09def6f8c869e32f4b3d69e3 xfce4-pulseaudio-plugin-0.4.7.tar.bz2" +sha512sums="8f6f06a65295ff53bd18a32dc302b2d12fb722bcfacd549c79dbc88e8ab6890888f158ea02ce5a21b261fa681068d68f18eb076f1dc2cb9135b7fc1e77fa7ce8 xfce4-pulseaudio-plugin-0.4.8.tar.bz2" diff --git a/user/xfce4-screenshooter/APKBUILD b/user/xfce4-screenshooter/APKBUILD index 0a9b0a35a..d845da586 100644 --- a/user/xfce4-screenshooter/APKBUILD +++ b/user/xfce4-screenshooter/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-screenshooter -pkgver=1.10.4 +pkgver=1.10.5 pkgrel=0 pkgdesc="Screenshot tool for the XFCE desktop environment" url="https://xfce.org" @@ -31,4 +31,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="7d5eebf897aa2b45e92e4447052c58813c34aa437e10f61712ff50b96b3fa954849a4cb6bf0720659e4c2a596e9f09f79bde2ebdab98b4e8c35fde25a7839011 xfce4-screenshooter-1.10.4.tar.bz2" +sha512sums="0040b28514ffc77473b2d9f182c1bc162f8ac21aac97f2e28eb2b5556255dd74f7d4545f049b4060a8db6c0d415831fe5988da581857f22894bed01136aee677 xfce4-screenshooter-1.10.5.tar.bz2" diff --git a/user/xfce4-settings/APKBUILD b/user/xfce4-settings/APKBUILD index 3d5e065a2..d0cae3f1d 100644 --- a/user/xfce4-settings/APKBUILD +++ b/user/xfce4-settings/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-settings -pkgver=4.18.3 +pkgver=4.18.4 pkgrel=0 pkgdesc="GUI settings application for the XFCE desktop environment" url="https://xfce.org" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="81a79a886966a5f017f066ece6ad134d132b1fa18c4f8b203212fb56b45a62fe8d9814f3039cc9bda41c52338b7e80685e9671cd80db3f2f9bcd99dd7bc47d8e xfce4-settings-4.18.3.tar.bz2" +sha512sums="2f9e2de4a3a0cc59b4701b44899464532fbae8805270485d2821b65b9d78be54bb636c4cd4205de97e18c13b20912fcd1f4ca0b3baa561bf1a783829f53a06a0 xfce4-settings-4.18.4.tar.bz2" diff --git a/user/xfce4-taskmanager/APKBUILD b/user/xfce4-taskmanager/APKBUILD index d4381b299..b2d5bcbe5 100644 --- a/user/xfce4-taskmanager/APKBUILD +++ b/user/xfce4-taskmanager/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-taskmanager -pkgver=1.5.5 +pkgver=1.4.2 pkgrel=0 pkgdesc="Process manager for the XFCE desktop environment" url="https://xfce.org" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="492d3cc466fdda5a51aae5d3ccaab13feed5ae9a4796a9588c5bdb44a794945c3b8d6d8c475065948d4391c26ac12b556673d57faf27a2ca320022f06599bafa xfce4-taskmanager-1.5.5.tar.bz2" +sha512sums="cd7f26c7ab0e0557be52155d58c677258da8479c2a09b0e1dd4006fe0ecb2a3c82d68ecdf72c10e8b8977eac5a158fcb606027229e973edb6ea7570d040c2444 xfce4-taskmanager-1.4.2.tar.bz2" diff --git a/user/xfce4-terminal/APKBUILD b/user/xfce4-terminal/APKBUILD index c718b4cf7..99c6ae219 100644 --- a/user/xfce4-terminal/APKBUILD +++ b/user/xfce4-terminal/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-terminal -pkgver=1.1.0 +pkgver=1.1.3 _xfce=4.18 pkgrel=0 pkgdesc="Terminal for the XFCE desktop environment" @@ -32,4 +32,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c01f0e7a293c4e55b4ee151eb8beb5ff9634a8134b545452c87ee9fa9928507e73bda1a63634900f669a58353877c2cb3f48e7b95cf236bdc857ca311c73c86f xfce4-terminal-1.1.0.tar.bz2" +sha512sums="12d489099851b281d3ac83a4d9b2f459ed8442899823edba36055a0aa731d1821686f400d5d370833077b0ccf930cb3dfdf5800af58dd2339377dd7e902210b9 xfce4-terminal-1.1.3.tar.bz2" diff --git a/user/xfce4-whiskermenu-plugin/APKBUILD b/user/xfce4-whiskermenu-plugin/APKBUILD index c868118ce..accfa2675 100644 --- a/user/xfce4-whiskermenu-plugin/APKBUILD +++ b/user/xfce4-whiskermenu-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfce4-whiskermenu-plugin -pkgver=2.8.0 +pkgver=2.8.3 pkgrel=0 pkgdesc="Whisker menu plugin for the XFCE panel" url="https://xfce.org" @@ -33,4 +33,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="844c34ea85e2574dc39e90bb08774c3e7e9e3e13a0a35b1da916d3b3187f158d9f6e130312f2545e26cd214f98cc03461a857ad4c91893febe9942ad08c58a70 xfce4-whiskermenu-plugin-2.8.0.tar.bz2" +sha512sums="ef4fe09fe69f1d6a5b0ab54a6cae48319c859b6b9d16facf39631814986d852913410a1ca1b32cfa7b355dafa78a6d91c12843b0c685e24bf168d6065a5f6099 xfce4-whiskermenu-plugin-2.8.3.tar.bz2" diff --git a/user/xfconf/APKBUILD b/user/xfconf/APKBUILD index 4e8e584fe..cf7a5b2bf 100644 --- a/user/xfconf/APKBUILD +++ b/user/xfconf/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xfconf -pkgver=4.18.1 +pkgver=4.18.3 pkgrel=0 pkgdesc="Configuration framework for the XFCE desktop environment" url="https://xfce.org" @@ -39,4 +39,4 @@ perl() { mv "$pkgdir"/usr/lib/perl5 "$subpkgdir"/usr/lib } -sha512sums="cb4cc29497865755df4c9b8db7cbb84f9f2b5ce5eb7216bd5a3e7202424c565a36f4e4592c5ee0035a01fe4df043a87de43a536b0e63e1e200a077631e1c807a xfconf-4.18.1.tar.bz2" +sha512sums="e1aa133f79ea584af067369f6fd059cd444c4743270ed90a8b0dfe158f7ae6fbc78af62fab67c64674060c2fd1404f06602ac8c019b0db8b70779a17fde4a327 xfconf-4.18.3.tar.bz2" diff --git a/user/xgc/APKBUILD b/user/xgc/APKBUILD index 83c8d1a3f..f581dbf81 100644 --- a/user/xgc/APKBUILD +++ b/user/xgc/APKBUILD @@ -8,7 +8,7 @@ url="https://www.X.Org/" arch="all" license="X11" depends="" -makedepends="cmd:lex cmd:yacc libxaw-dev libxt-dev util-macros" +makedepends="flex cmd:yacc libxaw-dev libxt-dev util-macros" subpackages="$pkgname-doc" source="https://www.x.org/releases/individual/app/$pkgname-$pkgver.tar.xz" diff --git a/user/xmlsec/APKBUILD b/user/xmlsec/APKBUILD index 0d20b20f7..0d56de411 100644 --- a/user/xmlsec/APKBUILD +++ b/user/xmlsec/APKBUILD @@ -1,8 +1,8 @@ # Maintainer: Max Rees <maxcrees@me.com> pkgname=xmlsec -pkgver=1.2.30 +pkgver=1.3.4 _pkgname="$pkgname${pkgver%%.*}" -pkgrel=1 +pkgrel=0 pkgdesc="C-based XML signature and encryption syntax and processing library" url="https://www.aleksey.com/xmlsec/" arch="all" @@ -13,7 +13,8 @@ makedepends="gnutls-dev libgcrypt-dev libtool libxml2-dev libxslt-dev nss-dev openssl-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-gcrypt $pkgname-gnutls $pkgname-nss" -source="https://www.aleksey.com/xmlsec/download/$_pkgname-$pkgver.tar.gz" +source="https://github.com/lsh123/xmlsec/releases/download/${pkgver}/${_pkgname}-${pkgver}.tar.gz + testrun.patch" builddir="$srcdir/$_pkgname-$pkgver" build() { @@ -69,4 +70,5 @@ nss() { mv "$pkgdir"/usr/lib/libxmlsec1-nss.so* "$subpkgdir"/usr/lib/ } -sha512sums="07152470a9fe5d077f8a358608ca1d8a79ee0d2777660f61ed5717dc640714a3adfe66843e6a4023898eb0f5ed79771d70c41132571f3a1aeda82c1894b69c98 xmlsec1-1.2.30.tar.gz" +sha512sums="959a97ed7d7cbdc3e5ef037b2cb4f05bda299274c09ed3dfe24f7203d97e3dfc13bf480e15a2d15bcc7893569d341204884de58cc9b462b6c29306b67672e9c7 xmlsec1-1.3.4.tar.gz +d29fad9689d6c8d9583802143bdfa38b27fbcc2e54232a052138da08f495b40de677849e3c1062070ef2d2efe59357d6efa6b7df429ea6563ea6b6cb126c3b6f testrun.patch" diff --git a/user/xmlsec/testrun.patch b/user/xmlsec/testrun.patch new file mode 100644 index 000000000..6666f7d28 --- /dev/null +++ b/user/xmlsec/testrun.patch @@ -0,0 +1,11 @@ +--- xmlsec1-1.3.3/tests/testrun.sh 2024-04-05 18:19:20.980000000 +0000 ++++ xmlsec1-1.3.3/tests/testrun.sh 2024-04-05 18:19:36.110000000 +0000 +@@ -769,7 +769,7 @@ + rm -rf $tmpfile $tmpfile.2 tmpfile.3 + + # run tests +-source "$testfile" ++. "$testfile" + + # calculate success + percent_success=0 diff --git a/user/xmoto/APKBUILD b/user/xmoto/APKBUILD index f13b7d68d..55c9deb9b 100644 --- a/user/xmoto/APKBUILD +++ b/user/xmoto/APKBUILD @@ -4,7 +4,7 @@ pkgname=xmoto pkgver=0.5.11 pkgrel=0 pkgdesc="Challenging 2D motocross platform game" -url="https://xmoto.tuxfamily.org/" +url=" " arch="all" license="GPL-2.0+" depends="" @@ -13,7 +13,7 @@ makedepends="bzip2-dev curl-dev glu-dev libjpeg-turbo-dev libpng-dev sdl_mixer-dev sdl_net-dev sdl_ttf-dev sqlite-dev zlib-dev autoconf automake" subpackages="$pkgname-doc $pkgname-lang" -source="http://download.tuxfamily.org/xmoto/xmoto/0.5.11/xmoto-$pkgver-src.tar.gz +source="https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/$pkgname-$pkgver-src.tar.gz stupid-lua.patch utf8.patch " diff --git a/user/xorg-server/APKBUILD b/user/xorg-server/APKBUILD index 0bca19339..17909c830 100644 --- a/user/xorg-server/APKBUILD +++ b/user/xorg-server/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=xorg-server pkgver=1.20.9 -pkgrel=0 +pkgrel=1 pkgdesc="X.Org X11 server" url="https://www.X.Org/" arch="all" @@ -26,6 +26,8 @@ subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc xvfb $pkgname-xephyr source="https://www.X.Org/releases/individual/xserver/$pkgname-$pkgver.tar.bz2 autoconfig-sis.patch fix-musl-arm.patch + rgb-mask.patch + gcc12.patch " # secfixes: @@ -142,4 +144,6 @@ xwayland() { sha512sums="d9b5f93e1b9763a89187d8b272aa7d4ce9709641b8539f4536708af153310e5a4931bffd4229c51a3b0e3b12da7838750aa71b635751fb4c0bb27438cce4e5e6 xorg-server-1.20.9.tar.bz2 d77151bc51766e1230a121c008ac1d0695275bf889b1db4b3330c1f8ee720b0e046cc935fa14aaef40b02fdea508e84e53959b560131ace14ace14943c8eb734 autoconfig-sis.patch -a5f910e72ff9abd4e4a0c6806cdbe48d1b0b6cc0586f36568da5864a8dedc46a3112fe86d7a1969033f4d5b0def4dc6e5c11b656fbcc964732b417e6c9577f22 fix-musl-arm.patch" +a5f910e72ff9abd4e4a0c6806cdbe48d1b0b6cc0586f36568da5864a8dedc46a3112fe86d7a1969033f4d5b0def4dc6e5c11b656fbcc964732b417e6c9577f22 fix-musl-arm.patch +e38d7323a9046f405f1b568e592f90bb9ed7dd4954480d251431f1e550ea4898d9e6c4bc4bd425ece877464392ed54c92ba582b6f27677fc139a2901209de48a rgb-mask.patch +1abdf004c16ece7e0d1313cbbcbcfdb706d52917ff974b74a4de180fbc0e9d09e6fcc1a3f2b2875885e12d240512679ef0456b8e43bf69ebc1d307be5cd5deaf gcc12.patch" diff --git a/user/xorg-server/gcc12.patch b/user/xorg-server/gcc12.patch new file mode 100644 index 000000000..5aa2f08c6 --- /dev/null +++ b/user/xorg-server/gcc12.patch @@ -0,0 +1,89 @@ +From c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <ofourdan@redhat.com> +Date: Thu, 20 Jan 2022 10:20:38 +0100 +Subject: [PATCH] render: Fix build with gcc 12 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The xserver fails to compile with the latest gcc 12: + + render/picture.c: In function ‘CreateSolidPicture’: + render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds] + 874 | pPicture->pSourcePict->type = SourcePictTypeSolidFill; + | ^~ + render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’ + 868 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + render/picture.c: In function ‘CreateLinearGradientPicture’: + render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] + 906 | pPicture->pSourcePict->linear.type = SourcePictTypeLinear; + | ^~ + render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’ + 899 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + render/picture.c: In function ‘CreateConicalGradientPicture’: + render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] + 989 | pPicture->pSourcePict->conical.type = SourcePictTypeConical; + | ^~ + render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’ + 982 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + cc1: some warnings being treated as errors + ninja: build stopped: subcommand failed. + +This is because gcc 12 has become stricter and raises a warning now. + +Fix the warning/error by allocating enough memory to store the union +struct. + +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> +Acked-by: Michel Dänzer <mdaenzer@redhat.com> +Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256 +--- + render/picture.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/render/picture.c b/render/picture.c +index afa0d258fa..2be4b1954f 100644 +--- a/render/picture.c ++++ b/render/picture.c +@@ -865,7 +865,7 @@ CreateSolidPicture(Picture pid, xRenderColor * color, int *error) + } + + pPicture->id = pid; +- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); ++ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); + if (!pPicture->pSourcePict) { + *error = BadAlloc; + free(pPicture); +@@ -896,7 +896,7 @@ CreateLinearGradientPicture(Picture pid, xPointFixed * p1, xPointFixed * p2, + } + + pPicture->id = pid; +- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); ++ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); + if (!pPicture->pSourcePict) { + *error = BadAlloc; + free(pPicture); +@@ -936,7 +936,7 @@ CreateRadialGradientPicture(Picture pid, xPointFixed * inner, + } + + pPicture->id = pid; +- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictRadialGradient)); ++ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); + if (!pPicture->pSourcePict) { + *error = BadAlloc; + free(pPicture); +@@ -979,7 +979,7 @@ CreateConicalGradientPicture(Picture pid, xPointFixed * center, xFixed angle, + } + + pPicture->id = pid; +- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); ++ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); + if (!pPicture->pSourcePict) { + *error = BadAlloc; + free(pPicture); +-- +GitLab + diff --git a/user/xorg-server/rgb-mask.patch b/user/xorg-server/rgb-mask.patch new file mode 100644 index 000000000..a503a6e16 --- /dev/null +++ b/user/xorg-server/rgb-mask.patch @@ -0,0 +1,70 @@ +From 7e142cb2a848acb6af986fa91d254d4c23963b24 Mon Sep 17 00:00:00 2001 +From: luporl <luporl@FreeBSD.org> +Date: Wed, 9 Dec 2020 11:11:15 -0300 +Subject: [PATCH] xserver: fix RGB mask handling + +On FreeBSD 13.0-CURRENT for PowerPC64 big-endian (BE), X was +crashing in some cases. For instance, when twm was started +and the background was clicked to open its menu, X crashed +with a segmentation fault, trying to dereference a null pointer +at CreatePicture(). + +There were 2 issues with xorg-server handling of RGB masks that +caused the pointer above to be null and thus the crash: +- wrong use of ffs() to get the RGB offsets from the masks +- overflow when shifting a 16-bit integer + +This change fixes both issues. They happen when the system is BE +but has a video adapter using a little-endian (LE) ARGB32 +framebuffer. In order to display the correct colors, this setup +requires a BE RGBA32 color format to be used by X, by setting +the RGB masks appropriately, that didn't work properly because of +the issues above. +--- + hw/xfree86/common/xf86Helper.c | 6 +++--- + render/picture.c | 12 ++++++------ + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c +index 31aa068e0e..16ab309e27 100644 +--- a/hw/xfree86/common/xf86Helper.c ++++ b/hw/xfree86/common/xf86Helper.c +@@ -729,9 +729,9 @@ xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask) + scrp->mask.red = mask.red; + scrp->mask.green = mask.green; + scrp->mask.blue = mask.blue; +- scrp->offset.red = ffs(mask.red); +- scrp->offset.green = ffs(mask.green); +- scrp->offset.blue = ffs(mask.blue); ++ scrp->offset.red = ffs(mask.red) - 1; ++ scrp->offset.green = ffs(mask.green) - 1; ++ scrp->offset.blue = ffs(mask.blue) - 1; + } + return TRUE; + } +diff --git a/render/picture.c b/render/picture.c +index 876316dc1c..afa0d258fa 100644 +--- a/render/picture.c ++++ b/render/picture.c +@@ -523,12 +523,12 @@ PictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual) + return format; + } + else { +- if (format->direct.redMask << format->direct.red == +- pVisual->redMask && +- format->direct.greenMask << format->direct.green == +- pVisual->greenMask && +- format->direct.blueMask << format->direct.blue == +- pVisual->blueMask) { ++ if ((unsigned long)format->direct.redMask << ++ format->direct.red == pVisual->redMask && ++ (unsigned long)format->direct.greenMask << ++ format->direct.green == pVisual->greenMask && ++ (unsigned long)format->direct.blueMask << ++ format->direct.blue == pVisual->blueMask) { + return format; + } + } +-- +GitLab + diff --git a/user/xsane/APKBUILD b/user/xsane/APKBUILD index 3c17b6f6d..73df03ca5 100644 --- a/user/xsane/APKBUILD +++ b/user/xsane/APKBUILD @@ -12,7 +12,7 @@ depends="" makedepends="gtk+2.0-dev lcms2-dev libjpeg-turbo-dev libpng-dev sane-dev tiff-dev" subpackages="$pkgname-doc $pkgname-lang" -source="http://distfiles.gentoo.org/distfiles/xsane-$pkgver.tar.gz +source="https://distfiles.adelielinux.org/source/archive/$pkgname-$pkgver/xsane-$pkgver.tar.gz xsane-0.999-lcms2.patch xsane-0.999-libpng16.patch " diff --git a/user/xscreensaver/APKBUILD b/user/xscreensaver/APKBUILD index a11c1c42a..17202200f 100644 --- a/user/xscreensaver/APKBUILD +++ b/user/xscreensaver/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xscreensaver -pkgver=6.06 +pkgver=6.08 pkgrel=0 pkgdesc="X Screensaver suite" url="https://www.jwz.org/xscreensaver/" @@ -43,4 +43,4 @@ elogind() { "$subpkgdir"/usr/libexec/$pkgname/ } -sha512sums="988e30d422ef985ac348c275e098ddfe1ee034a2e916c91690ee2836c908801c1e017e22d828aca981b0f8bfc5491cd83ab7c45aabc155ba5013df8b149cbcb5 xscreensaver-6.06.tar.gz" +sha512sums="a333d4921ed3a8219f3b672dd68543aea31fcd64ea6766143f1c7f6e5ed3bc7122355635d5afba1632457ad71a11cabdc7b2756431e4f1dc7e0426ae0896e6db xscreensaver-6.08.tar.gz" diff --git a/user/xsv/APKBUILD b/user/xsv/APKBUILD index d445d6514..dab03c7dc 100644 --- a/user/xsv/APKBUILD +++ b/user/xsv/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Samuel Holland <samuel@sholland.org> pkgname=xsv pkgver=0.13.0 -pkgrel=0 +pkgrel=1 pkgdesc="A fast CSV command line toolkit written in Rust" url="https://github.com/BurntSushi/xsv" arch="all" @@ -105,8 +105,7 @@ check() { package() { export CARGO_HOME="$srcdir/cargo-home" - cargo install --path . --root="$pkgdir"/usr - rm "$pkgdir"/usr/.crates.toml + cargo install --no-track --path . --root="$pkgdir"/usr } sha512sums="6db4e6e13613feb645bd71d9a1c9b7c9150e04f9880731bea143248ceb5c460503799d6f487f3c983f613964a56c998ba9d325cc1b61def8db0b63e74e387ce1 xsv-0.13.0.tar.gz diff --git a/user/xterm/APKBUILD b/user/xterm/APKBUILD index 3305fe58b..ec6384a96 100644 --- a/user/xterm/APKBUILD +++ b/user/xterm/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=xterm -pkgver=368 +pkgver=390 pkgrel=0 pkgdesc="An X-based terminal emulator" url="https://invisible-island.net/xterm/" @@ -18,6 +18,10 @@ source="https://invisible-mirror.net/archives/xterm/xterm-$pkgver.tgz " # secfixes: +# 390-r0: +# - CVE-2022-24130 +# - CVE-2022-45063 +# - CVE-2023-40359 # 368-r0: # - CVE-2021-27135 @@ -49,5 +53,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ea2f27722795c47a406cf4956ecdd05bae19aee621a0183aa167d188a90767a859ce41c6d1b1352b5ebd94d920360d3f26248ec0bb2068c253583d460baeafda xterm-368.tgz +sha512sums="865ae292a56635ec2811a950763da22cbbb4de463bee75b4595b7387a09227f612c5620986e431631c3d73fe783d862fd9a6694c54c33898327339467b7085b7 xterm-390.tgz 6811cd67ffe21dc23c9ad6a439291bb0b3c3d347f4d5e2cd65de9f790fde2bf7323fe9f1b309d95ac98a3ffaae5989bc73a2c5fe08aa9f6a2c6cbc3b9adcf8d9 posix-ptmx.patch" diff --git a/user/yubikey-personalization/APKBUILD b/user/yubikey-personalization/APKBUILD index b4db9bdd2..5f01b39bd 100644 --- a/user/yubikey-personalization/APKBUILD +++ b/user/yubikey-personalization/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house> pkgname=yubikey-personalization pkgver=1.20.0 -pkgrel=1 +pkgrel=2 pkgdesc="Cross-platform library & tools for personalizing YubiKey devices" url="https://developers.yubico.com/yubikey-personalization/" arch="all" @@ -14,6 +14,9 @@ subpackages="$pkgname-dev $pkgname-doc" source="yubikey-personalization-$pkgver.tar.gz::https://github.com/Yubico/yubikey-personalization/archive/v$pkgver.tar.gz use-asciidoctor.patch json_c.patch + gcc10.patch + uninit.patch + wipe-mem.patch " prepare() { @@ -42,4 +45,7 @@ package() { sha512sums="a38b26700793f0a801e5f5889bbbce4a3f728d22aaecf8d0890f1b5135e67bed16a78b7a36dbc323c5d296901f6dd420fa658a982492a0cd9f0bbf95a5fbc823 yubikey-personalization-1.20.0.tar.gz d6777a43e5e57430268bb50ab704641465a7314b15fc821d8bfa7f0c6510829d0118ced426cd5f8730589efe6264df6b82fc70e8bfe3d8b7d735e51339a25af2 use-asciidoctor.patch -a8bc7ae71d0a05476688abfaea070ca7dc2eaa68e033524d4a1b2b6240eec2932d867e9eeaa248874a04f254618cd79bf9ebaa17421938b0c2e62502bf90c055 json_c.patch" +a8bc7ae71d0a05476688abfaea070ca7dc2eaa68e033524d4a1b2b6240eec2932d867e9eeaa248874a04f254618cd79bf9ebaa17421938b0c2e62502bf90c055 json_c.patch +063acafb26941bc061d8613187bcbffe3fd1ca19a7c5346b0c347e052a30e4b4c750f4a40bb59b479173dbc7b5458383f5d5e25e385539b127cf4d9636caa549 gcc10.patch +1d29331994f43a99e2cb854ff3ff8302800102e7c9eaef30228efa8ddf9a188279fdb4981b28f64141cfa5659af11af9325ecd249041b745c1cd0d55fe5fbd69 uninit.patch +cca0729be2337923ab758fcf4a225d40cf12ac79fce609904e536ff811abec4231ecf58d47096587c974223335b35ec6c63ab4fc872cbfabf1f49f76313c8541 wipe-mem.patch" diff --git a/user/yubikey-personalization/gcc10.patch b/user/yubikey-personalization/gcc10.patch new file mode 100644 index 000000000..0e09e821e --- /dev/null +++ b/user/yubikey-personalization/gcc10.patch @@ -0,0 +1,25 @@ +From 09ea16d9e2030e4da6ad00c1e5147e962aa7ff84 Mon Sep 17 00:00:00 2001 +From: Klas Lindfors <klas@yubico.com> +Date: Mon, 17 Feb 2020 08:58:33 +0100 +Subject: [PATCH] make header declarations extern + +fixes #155 +--- + ykpers-args.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ykpers-args.h b/ykpers-args.h +index 2a63268d..9ff455a7 100644 +--- a/ykpers-args.h ++++ b/ykpers-args.h +@@ -33,8 +33,8 @@ + + #include "ykpers.h" + +-const char *usage; +-const char *optstring; ++extern const char *usage; ++extern const char *optstring; + + int args_to_config(int argc, char **argv, YKP_CONFIG *cfg, char *oathid, + size_t oathid_len, const char **infname, diff --git a/user/yubikey-personalization/uninit.patch b/user/yubikey-personalization/uninit.patch new file mode 100644 index 000000000..713ce1699 --- /dev/null +++ b/user/yubikey-personalization/uninit.patch @@ -0,0 +1,204 @@ +From f86b334504693afe9ee6ec61416182d23c66e1ad Mon Sep 17 00:00:00 2001 +From: Gabriel Kihlman <g.kihlman@yubico.com> +Date: Mon, 27 Apr 2020 14:52:53 +0200 +Subject: [PATCH] Initialize bufs to 0 to avoid potentially leaking + uninitialized memory + +Based on a report from Christian Reitter doing fuzzing with MSAN. + +Extracts of logs: + +==16111==WARNING: MemorySanitizer: use-of-uninitialized-value + #0 0x4d59d4 in yk_write_to_key +/yubikey-personalization/ykcore/ykcore.c:715:8 + #1 0x4d9c00 in _yk_write /yubikey-personalization/ykcore/ykcore.c:233:7 + #2 0x4dc74d in yk_write_scan_map +/yubikey-personalization/ykcore/ykcore.c:357:9 + #3 0x4ce352 in ykpersonalize_main +/yubikey-personalization/ykpersonalize.c:423:9 +[...] + + Uninitialized value was stored to memory at + #0 0x45392b in __msan_memcpy +(/yubikey-personalization/.libs/ykpersonalize+0x45392b) + #1 0x4d52f7 in yk_write_to_key +/yubikey-personalization/ykcore/ykcore.c:689:2 + #2 0x4d9c00 in _yk_write /yubikey-personalization/ykcore/ykcore.c:233:7 + #3 0x4dc74d in yk_write_scan_map +/yubikey-personalization/ykcore/ykcore.c:357:9 + #4 0x4ce352 in ykpersonalize_main +/yubikey-personalization/ykpersonalize.c:423:9 +[...] + + Uninitialized value was created by an allocation of 'scan_codes' in +the stack frame of function 'ykpersonalize_main' +==18180==WARNING: MemorySanitizer: use-of-uninitialized-value + #0 0x4d5a24 in yk_write_to_key /yubikey-personalization/ykcore/ykcore.c:715:8 + #1 0x4d9c50 in _yk_write /yubikey-personalization/ykcore/ykcore.c:233:7 + #2 0x4dae6c in yk_write_command /yubikey-personalization/ykcore/ykcore.c:288:8 + #3 0x4cec93 in ykpersonalize_main /yubikey-personalization/ykpersonalize.c:440:10 + + Uninitialized value was stored to memory at + #0 0x45392b in __msan_memcpy (/yubikey-personalization/.libs/ykpersonalize+0x45392b) + #1 0x4d5347 in yk_write_to_key /yubikey-personalization/ykcore/ykcore.c:689:2 + #2 0x4d9c50 in _yk_write /yubikey-personalization/ykcore/ykcore.c:233:7 + #3 0x4dae6c in yk_write_command /yubikey-personalization/ykcore/ykcore.c:288:8 + #4 0x4cec93 in ykpersonalize_main /yubikey-personalization/ykpersonalize.c:440:10 + + Uninitialized value was stored to memory at + #0 0x45392b in __msan_memcpy (/yubikey-personalization/.libs/ykpersonalize+0x45392b) + #1 0x4dacdb in yk_write_command /yubikey-personalization/ykcore/ykcore.c:280:3 + #2 0x4cec93 in ykpersonalize_main /yubikey-personalization/ykpersonalize.c:440:10 + + Uninitialized value was stored to memory at + #0 0x45392b in __msan_memcpy (/yubikey-personalization/.libs/ykpersonalize+0x45392b) + #1 0x7f6fd2ea32f9 in ykp_set_fixed /yubikey-personalization/ykpers.c:787:1 + #2 0x50193c in _set_fixed /yubikey-personalization/ykpers-args.c:900:2 + #3 0x4ed040 in args_to_config /yubikey-personalization/ykpers-args.c:558:9 + #4 0x4c865c in ykpersonalize_main /yubikey-personalization/ykpersonalize.c:167:8 + + Uninitialized value was created by an allocation of 'fixedbin' in the stack frame of function '_set_fixed' + #0 0x501130 in _set_fixed /yubikey-personalization/ykpers-args.c:889 +--- + ykpers-args.c | 8 ++++---- + ykpers.c | 12 ++++++------ + ykpersonalize.c | 13 +++++++------ + 3 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/ykpers-args.c b/ykpers-args.c +index 53f7c22b..62ff7b2f 100644 +--- a/ykpers-args.c ++++ b/ykpers-args.c +@@ -548,7 +548,7 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg, char *oathid, + else if (strncmp(optarg, "uid", 3) == 0) { + char *uid = optarg+4; + size_t uidlen; +- unsigned char uidbin[256]; ++ unsigned char uidbin[256] = {0}; + size_t uidbinlen = 0; + int rc; + char *uidtmp = NULL; +@@ -787,7 +787,7 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg, char *oathid, + size_t key_bytes = (size_t)ykp_get_supported_key_length(cfg); + int res = 0; + char *key_tmp = NULL; +- char keybuf[20]; ++ char keybuf[20] = {0}; + + if(keylocation == 2) { + const char *prompt = " AES key, 16 bytes (32 characters hex) : "; +@@ -865,7 +865,7 @@ int args_to_config(int argc, char **argv, YKP_CONFIG *cfg, char *oathid, + static int _set_fixed(char *opt, YKP_CONFIG *cfg) { + const char *fixed = opt; + size_t fixedlen = strlen (fixed); +- unsigned char fixedbin[256]; ++ unsigned char fixedbin[256] = {0}; + size_t fixedbinlen = 0; + int rc = hex_modhex_decode(fixedbin, &fixedbinlen, + fixed, fixedlen, +@@ -898,7 +898,7 @@ static int _format_decimal_as_hex(uint8_t *dst, size_t dst_len, uint8_t *src) + /* For details, see YubiKey Manual 2010-09-16 section 5.3.4 - OATH-HOTP Token Identifier */ + static int _format_oath_id(uint8_t *dst, size_t dst_len, uint8_t vendor, uint8_t type, uint32_t mui) + { +- uint8_t buf[8 + 1]; ++ uint8_t buf[8 + 1] = {0}; + + if (mui > 99999999) + return 0; +diff --git a/ykpers.c b/ykpers.c +index 7941d0e3..81cb0dff 100644 +--- a/ykpers.c ++++ b/ykpers.c +@@ -264,7 +264,7 @@ int ykp_get_supported_key_length(const YKP_CONFIG *cfg) + + /* Decode 128 bit AES key into cfg->ykcore_config.key */ + int ykp_AES_key_from_hex(YKP_CONFIG *cfg, const char *hexkey) { +- char aesbin[256]; ++ char aesbin[256] = {0}; + + /* Make sure that the hexkey is exactly 32 characters */ + if (strlen(hexkey) != 32) { +@@ -311,7 +311,7 @@ int ykp_HMAC_key_from_raw(YKP_CONFIG *cfg, const char *key) { + * and 32 bits into the first four bytes of cfg->ykcore_config.uid. + */ + int ykp_HMAC_key_from_hex(YKP_CONFIG *cfg, const char *hexkey) { +- char aesbin[256]; ++ char aesbin[256] = {0}; + size_t i; + + /* Make sure that the hexkey is exactly 40 characters */ +@@ -351,9 +351,9 @@ int ykp_AES_key_from_passphrase(YKP_CONFIG *cfg, const char *passphrase, + 0 + }; + const char **random_place; +- uint8_t _salt[8]; ++ uint8_t _salt[8] = {0}; + size_t _salt_len = 0; +- unsigned char buf[sizeof(cfg->ykcore_config.key) + 4]; ++ unsigned char buf[sizeof(cfg->ykcore_config.key) + 4] = {0}; + int rc; + int key_bytes = ykp_get_supported_key_length(cfg); + YK_PRF_METHOD prf_method = {20, yk_hmac_sha1}; +@@ -931,7 +931,7 @@ static const char str_extended_flags[] = "extended_flags"; + + static int _ykp_legacy_export_config(const YKP_CONFIG *cfg, char *buf, size_t len) { + if (cfg) { +- char buffer[256]; ++ char buffer[256] = {0}; + struct map_st *p; + unsigned char t_flags; + bool key_bits_in_uid = false; +@@ -1131,7 +1131,7 @@ int ykp_write_config(const YKP_CONFIG *cfg, + void *userdata), + void *userdata) { + if(cfg) { +- char buffer[1024]; ++ char buffer[1024] = {0}; + int ret = _ykp_legacy_export_config(cfg, buffer, 1024); + if(ret) { + writer(buffer, strlen(buffer), userdata); +diff --git a/ykpersonalize.c b/ykpersonalize.c +index 15338c6a..2c991e32 100644 +--- a/ykpersonalize.c ++++ b/ykpersonalize.c +@@ -48,17 +48,17 @@ int main(int argc, char **argv) + FILE *outf = NULL; const char *outfname = NULL; + int data_format = YKP_FORMAT_LEGACY; + bool verbose = false; +- unsigned char access_code[256]; ++ unsigned char access_code[256] = {0}; + char *acc_code = NULL; + char *new_acc_code = NULL; +- unsigned char scan_codes[sizeof(SCAN_MAP)]; +- unsigned char device_info[128]; ++ unsigned char scan_codes[sizeof(SCAN_MAP)] = {0}; ++ unsigned char device_info[128] = {0}; + size_t device_info_len = 0; + YK_KEY *yk = 0; + YKP_CONFIG *cfg = ykp_alloc(); + YK_STATUS *st = ykds_alloc(); + bool autocommit = false; +- char data[1024]; ++ char data[1024] = {0}; + bool dry_run = false; + + /* Options */ +@@ -184,7 +184,7 @@ int main(int argc, char **argv) + } + } + if(new_acc_code) { +- unsigned char accbin[256]; ++ unsigned char accbin[256] = {0}; + size_t accbinlen = 0; + int rc = hex_modhex_decode (accbin, &accbinlen, + new_acc_code, strlen(new_acc_code), +@@ -261,7 +261,8 @@ int main(int argc, char **argv) + goto err; + } + } else { +- char commitbuf[256]; size_t commitlen; ++ char commitbuf[256] = {0}; ++ size_t commitlen; + + if (ykp_command(cfg) == SLOT_SWAP) { + fprintf(stderr, "Configuration in slot 1 and 2 will be swapped\n"); diff --git a/user/yubikey-personalization/wipe-mem.patch b/user/yubikey-personalization/wipe-mem.patch new file mode 100644 index 000000000..a5ef05e8d --- /dev/null +++ b/user/yubikey-personalization/wipe-mem.patch @@ -0,0 +1,29 @@ +From 13f69440ac7cca05a94bd9cf9011e2ea352dad68 Mon Sep 17 00:00:00 2001 +From: Gabriel Kihlman <g.kihlman@yubico.com> +Date: Mon, 27 Apr 2020 14:56:00 +0200 +Subject: [PATCH] Wipe stack memory containing key material before returning + +--- + ykpers.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ykpers.c b/ykpers.c +index 81cb0df..2413b35 100644 +--- a/ykpers.c ++++ b/ykpers.c +@@ -280,6 +280,7 @@ int ykp_AES_key_from_hex(YKP_CONFIG *cfg, const char *hexkey) { + + yubikey_hex_decode(aesbin, hexkey, sizeof(aesbin)); + memcpy(cfg->ykcore_config.key, aesbin, sizeof(cfg->ykcore_config.key)); ++ insecure_memzero (aesbin, sizeof(aesbin)); + + return 0; + } +@@ -330,6 +331,7 @@ int ykp_HMAC_key_from_hex(YKP_CONFIG *cfg, const char *hexkey) { + i = sizeof(cfg->ykcore_config.key); + memcpy(cfg->ykcore_config.key, aesbin, i); + memcpy(cfg->ykcore_config.uid, aesbin + i, 20 - i); ++ insecure_memzero (aesbin, sizeof(aesbin)); + + return 0; + } |