summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rwxr-xr-xconfigure103
-rw-r--r--experimental/otter-browser/APKBUILD22
-rw-r--r--experimental/zola/APKBUILD (renamed from user/zola/APKBUILD)5
-rw-r--r--legacy/lxmenu-data/APKBUILD (renamed from user/lxmenu-data/APKBUILD)0
-rw-r--r--legacy/minizip-ng/APKBUILD (renamed from user/minizip-ng/APKBUILD)0
-rw-r--r--legacy/mozjs/0003-build-Fix-library-install-name-on-macOS.patch (renamed from user/mozjs/0003-build-Fix-library-install-name-on-macOS.patch)0
-rw-r--r--legacy/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch (renamed from user/mozjs/0009-build-Include-configure-script-be-nicer-about-option.patch)0
-rw-r--r--legacy/mozjs/1002_drop_build_id.patch (renamed from user/mozjs/1002_drop_build_id.patch)0
-rw-r--r--legacy/mozjs/1004_fix_pie_detection.patch (renamed from user/mozjs/1004_fix_pie_detection.patch)0
-rw-r--r--legacy/mozjs/6006_musl_pthread_setname.patch (renamed from user/mozjs/6006_musl_pthread_setname.patch)0
-rw-r--r--legacy/mozjs/APKBUILD (renamed from user/mozjs/APKBUILD)0
-rw-r--r--legacy/mozjs/endian.patch (renamed from user/mozjs/endian.patch)0
-rwxr-xr-xscripts/cargo.pl31
-rwxr-xr-xscripts/genmake93
-rwxr-xr-xscripts/healthchecks2
-rw-r--r--system/adelie-base/APKBUILD24
-rw-r--r--system/apk-tools/APKBUILD15
-rw-r--r--system/argon2/APKBUILD8
-rw-r--r--system/bash/APKBUILD4
-rw-r--r--system/binutils/APKBUILD44
-rw-r--r--system/binutils/ar-deterministic-tests.patch67
-rw-r--r--system/binutils/binutils-ld-fix-static-linking.patch6
-rw-r--r--system/binutils/disable-ifunc-tests.patch2
-rw-r--r--system/binutils/disable-mbind2b.patch2
-rw-r--r--system/binutils/disable-pr26580-test.patch2
-rw-r--r--system/binutils/disable-preinit-array-tests.patch6
-rw-r--r--system/binutils/disable-relr-glibc-tests.patch2
-rw-r--r--system/binutils/disable-textrel-test.patch43
-rw-r--r--system/binutils/fix-pr28158-test.patch30
-rw-r--r--system/binutils/libctf-32bit-test.patch27
-rw-r--r--system/binutils/musl-preinit-array.patch2
-rw-r--r--system/binutils/musl-versioned-syms.patch2
-rw-r--r--system/binutils/ppc32-pic-required.patch23
-rw-r--r--system/binutils/ppc64-abiv2-addr2line.patch15
-rw-r--r--system/binutils/remove-pr19719-test.patch2
-rw-r--r--system/binutils/remove-pr2404-tests.patch8
-rw-r--r--system/binutils/skip-thumb-plt-musl.patch28
-rw-r--r--system/binutils/vers-tests-eabi.patch33
-rw-r--r--system/binutils/x86_64-mark-plt.patch37
-rw-r--r--system/binutils/x86_64-missing-test.patch91
-rw-r--r--system/ca-certificates/APKBUILD6
-rw-r--r--system/curl/APKBUILD17
-rw-r--r--system/curl/errorcodes.pl99
-rw-r--r--system/curl/fix-fseek-type-mismatch.patch130
-rw-r--r--system/db/APKBUILD21
-rw-r--r--system/easy-kernel/APKBUILD12
-rw-r--r--system/easy-kernel/config-aarch64194
-rw-r--r--system/easy-kernel/config-pmmx14
-rw-r--r--system/easy-kernel/config-ppc48
-rw-r--r--system/easy-kernel/config-ppc64325
-rw-r--r--system/easy-kernel/config-x86_6436
-rw-r--r--system/execline/APKBUILD48
-rw-r--r--system/file/APKBUILD4
-rw-r--r--system/gcc/0008-s390x-muslldso.patch26
-rw-r--r--system/gcc/0009-microblaze-pr65649.patch34
-rw-r--r--system/gcc/0010-ldbl128-config.patch76
-rw-r--r--system/gcc/0011-m68k.patch40
-rw-r--r--system/gcc/0012-static-pie.patch62
-rw-r--r--system/gcc/0016-invalid-tls-model.patch51
-rw-r--r--system/gcc/002_all_default-relro.patch8
-rw-r--r--system/gcc/005_all_default-as-needed.patch68
-rw-r--r--system/gcc/006_as-needed-gold.patch58
-rw-r--r--system/gcc/007_all_alpha-mieee-default.patch48
-rw-r--r--system/gcc/011_all_default-warn-format-security.patch9
-rw-r--r--system/gcc/012_all_default-warn-trampolines.patch4
-rw-r--r--system/gcc/020_all_msgfmt-libstdc++-link.patch4
-rw-r--r--system/gcc/050_all_sanitizer-lfs.patch197
-rw-r--r--system/gcc/051_all_libiberty-pic.patch2
-rw-r--r--system/gcc/076_all_match.pd-don-t-emit-label-if-not-needed.patch114
-rw-r--r--system/gcc/078_all_match.pd-CSE-the-dump-output-check.patch70
-rw-r--r--system/gcc/092_all_riscv_PR109760-gstreamer.patch337
-rw-r--r--system/gcc/101-pr115836.patch50
-rw-r--r--system/gcc/201-ada.patch250
-rw-r--r--system/gcc/202-ibm-ldbl.patch4
-rw-r--r--system/gcc/205-nopie.patch4
-rw-r--r--system/gcc/206-arm-unwind-functionise.patch6
-rw-r--r--system/gcc/320-libffi-gnulinux.patch13
-rw-r--r--system/gcc/330-gccgo-link-to-ucontext.patch2
-rw-r--r--system/gcc/331-gccgo-use-real-off_t-type.patch39
-rw-r--r--system/gcc/332-gccgo-sysinfo.patch2
-rw-r--r--system/gcc/333-gccgo-signal-ppc64.patch11
-rw-r--r--system/gcc/334-gccgo-signal-shell.patch16
-rw-r--r--system/gcc/335-gccgo-signal-ppc32.patch2
-rw-r--r--system/gcc/336-gccgo-mmap64.patch29
-rw-r--r--system/gcc/337-gccgo-signal-sig34.patch11
-rw-r--r--system/gcc/338-gccgo-syscall.patch115
-rw-r--r--system/gcc/339-gccgo-errstr.patch45
-rw-r--r--system/gcc/340-gccgo-time64-stat.patch19
-rw-r--r--system/gcc/341-gccgo-libucontext-stack.patch38
-rw-r--r--system/gcc/342-gccgo-more-unwinding.patch37
-rw-r--r--system/gcc/342-gccgo-reflect-underscore.patch28
-rw-r--r--system/gcc/APKBUILD151
-rw-r--r--system/gcc/ada-shared.patch8
-rw-r--r--system/gcc/backport-r267157-posix-conformant-snprintf.patch80
-rw-r--r--system/gcc/fix-cxxflags-passing.patch2
-rw-r--r--system/gcc/gcc-4.9-musl-fortify.patch2
-rw-r--r--system/gcc/gcc-5.4.0-locale.patch2
-rw-r--r--system/gcc/gcc-6.1-musl-libssp.patch11
-rw-r--r--system/gcc/gcc-pure64.patch60
-rw-r--r--system/gcc/insn-split.patch1404
-rw-r--r--system/gcc/libgcc-always-build-gcceh.a.patch6
-rw-r--r--system/gcc/match-split.patch3583
-rw-r--r--system/gcc/risc-san.patch59
-rw-r--r--system/gcc/sanitation.patch184
-rw-r--r--system/gdb/APKBUILD3
-rw-r--r--system/git/APKBUILD6
-rw-r--r--system/git/perl-getopt-long.patch459
-rw-r--r--system/heirloom-devtools/APKBUILD4
-rw-r--r--system/heirloom-pax/APKBUILD9
-rw-r--r--system/heirloom-pax/modern-c.patch71
-rw-r--r--system/icu/APKBUILD6
-rw-r--r--system/jfsutils/APKBUILD6
-rw-r--r--system/jfsutils/modern-gcc.patch72
-rw-r--r--system/libarchive/APKBUILD17
-rw-r--r--system/libarchive/fix-test-32-bit-zstd.patch29
-rw-r--r--system/libarchive/revert-autotools-Fix-static-linking-when-openssl-is-.patch49
-rw-r--r--system/libelf/APKBUILD4
-rw-r--r--system/libelf/mkdir-p.patch13
-rw-r--r--system/libtool/APKBUILD6
-rw-r--r--system/libtool/gnulib-tests-dont-require-gpg-passphrase.patch10
-rw-r--r--system/mandoc/APKBUILD2
-rw-r--r--system/mandoc/mandoc.trigger2
-rw-r--r--system/mdevd/APKBUILD21
-rw-r--r--system/ncurses/APKBUILD6
-rw-r--r--system/nss/APKBUILD4
-rw-r--r--system/openrc/0006-mount-efivars-read-only.patch27
-rw-r--r--system/openrc/APKBUILD6
-rw-r--r--system/openrc/modern-gcc.patch14
-rw-r--r--system/perl-cpanel-json-xs/APKBUILD4
-rw-r--r--system/perl-dbd-sqlite/APKBUILD4
-rw-r--r--system/perl-file-listing/APKBUILD4
-rw-r--r--system/perl-http-cookiejar/APKBUILD35
-rw-r--r--system/perl-http-cookies/APKBUILD4
-rw-r--r--system/perl-http-message/APKBUILD4
-rw-r--r--system/perl-io-socket-ssl/APKBUILD4
-rw-r--r--system/perl-ipc-run3/APKBUILD (renamed from user/perl-ipc-run3/APKBUILD)4
-rw-r--r--system/perl-json-maybexs/APKBUILD4
-rw-r--r--system/perl-libwww/APKBUILD8
-rw-r--r--system/perl-module-scandeps/APKBUILD6
-rw-r--r--system/perl-net-http/APKBUILD4
-rw-r--r--system/perl-net-ssleay/APKBUILD4
-rw-r--r--system/perl-test-deep/APKBUILD (renamed from user/perl-test-deep/APKBUILD)0
-rw-r--r--system/perl-test-harness/APKBUILD4
-rw-r--r--system/perl-test-simple/APKBUILD4
-rw-r--r--system/perl-test-warnings/APKBUILD4
-rw-r--r--system/perl-uri/APKBUILD4
-rw-r--r--system/perl/APKBUILD28
-rw-r--r--system/perl/cve-2023-31484.patch11
-rw-r--r--system/perl/cve-2023-31486.patch84
-rw-r--r--system/python3/fix-xattrs-glibc.patch14
-rw-r--r--system/s6-linux-init/APKBUILD67
-rwxr-xr-xsystem/s6-linux-init/dracut_module.sh17
-rw-r--r--system/s6-rc/APKBUILD50
-rw-r--r--system/s6/APKBUILD50
-rw-r--r--system/s6/s6.post-upgrade13
-rw-r--r--system/scdoc/APKBUILD24
-rw-r--r--system/sharutils/APKBUILD9
-rw-r--r--system/sharutils/modern-gcc.patch47
-rw-r--r--system/skalibs/APKBUILD42
-rw-r--r--system/slibtool/APKBUILD6
-rw-r--r--system/utmps/APKBUILD48
-rw-r--r--system/vim/APKBUILD20
-rw-r--r--system/zlib/APKBUILD4
-rw-r--r--user/adelie-fonts/APKBUILD19
-rw-r--r--user/adelie-kde-theme/APKBUILD23
-rw-r--r--user/adelie-kde-theme/adelie-kde-theme.js33
-rw-r--r--user/adelie-kde-theme/kdeglobals10
-rw-r--r--user/adelie-kde-theme/kscreenlockerrc13
-rw-r--r--user/adelie-lxqt-theme/APKBUILD28
-rw-r--r--user/adelie-lxqt-theme/lxqt-desktop.conf20
-rw-r--r--user/adelie-lxqt-theme/lxqt-qt5ct.conf19
-rw-r--r--user/adelie-lxqt-theme/lxqt-session.conf2
-rw-r--r--user/adelie-mate-theme/APKBUILD22
-rw-r--r--user/adelie-mate-theme/adelie-mate-theme.post-install3
-rw-r--r--user/adelie-mate-theme/dconf.conf17
-rw-r--r--user/adelie-wallpapers/APKBUILD28
-rw-r--r--user/akonadi-search/APKBUILD2
-rw-r--r--user/apache-httpd/APKBUILD4
-rw-r--r--user/apaste/APKBUILD82
-rw-r--r--user/apaste/apasted-log.run5
-rw-r--r--user/apaste/apasted.confd32
-rw-r--r--user/apaste/apasted.initd64
-rw-r--r--user/apaste/apasted.pre-install7
-rw-r--r--user/apaste/apasted.run19
-rw-r--r--user/apaste/apastesd.run23
-rw-r--r--user/apkvitrine/APKBUILD4
-rw-r--r--user/apr-util/APKBUILD8
-rw-r--r--user/apr/APKBUILD8
-rw-r--r--user/aspell-dict-da/APKBUILD4
-rw-r--r--user/aspell-dict-hi/APKBUILD5
-rw-r--r--user/aspell-dict-lv/APKBUILD11
-rw-r--r--user/aspell-dict-mr/APKBUILD6
-rw-r--r--user/aspell/APKBUILD4
-rw-r--r--user/assimp/01-rm-revision-test.patch14
-rw-r--r--user/assimp/APKBUILD6
-rw-r--r--user/atkmm/APKBUILD2
-rw-r--r--user/awesome/APKBUILD11
-rw-r--r--user/awesome/gcc10.patch236
-rw-r--r--user/bash-completion/APKBUILD4
-rw-r--r--user/bash-completion/gcc-x86-tests.patch22
-rw-r--r--user/bearssl/APKBUILD11
-rw-r--r--user/cairomm/APKBUILD4
-rw-r--r--user/cbindgen/APKBUILD5
-rw-r--r--user/clazy/APKBUILD4
-rw-r--r--user/clearsans/APKBUILD2
-rw-r--r--user/cunit/APKBUILD1
-rw-r--r--user/cups-filters/APKBUILD12
-rw-r--r--user/dconf/APKBUILD9
-rw-r--r--user/dconf/user-profile.conf2
-rw-r--r--user/dhcpcd/APKBUILD6
-rw-r--r--user/digikam/APKBUILD6
-rw-r--r--user/digikam/isdigit.patch12
-rw-r--r--user/diskdev_cmds/APKBUILD11
-rw-r--r--user/dnsmasq/APKBUILD39
-rw-r--r--user/dnsmasq/dnsmasq.confd4
-rw-r--r--user/dnsmasq/dnsmasq.initd29
-rw-r--r--user/dnsmasq/dnsmasq.pre-install7
-rw-r--r--user/dovecot/APKBUILD10
-rw-r--r--user/duktape/APKBUILD29
-rw-r--r--user/elixir/APKBUILD4
-rw-r--r--user/elogind/APKBUILD49
-rw-r--r--user/elogind/disable-cgroup-test.patch13
-rwxr-xr-xuser/elogind/dracut_module.sh18
-rw-r--r--user/elogind/elogind-252.9-musl-getdents.patch37
-rw-r--r--user/elogind/elogind-252.9-musl-gshadow.patch14
-rw-r--r--user/elogind/elogind-252.9-musl-lfs.patch52
-rw-r--r--user/elogind/elogind-252.9-musl-more-strerror_r.patch44
-rw-r--r--user/elogind/elogind-252.9-musl-statx.patch26
-rw-r--r--user/elogind/fix-rlim-fmt.patch40
-rw-r--r--user/elogind/fix-strerror.patch13
-rw-r--r--user/elogind/fix-test-bus-error.patch12
-rw-r--r--user/elogind/hostname-length.patch16
-rw-r--r--user/elogind/signal-include.patch13
-rw-r--r--user/elogind/utmps.patch14
-rw-r--r--user/emacs/APKBUILD2
-rw-r--r--user/erl-rebar3/APKBUILD4
-rw-r--r--user/erlang/APKBUILD12
-rw-r--r--user/faad2/APKBUILD50
-rw-r--r--user/faad2/fix-ensure-libraries-versioned.patch50
-rw-r--r--user/faad2/fix-x86-lrintf.patch11
-rw-r--r--user/fastfetch/APKBUILD42
-rw-r--r--user/firefox-esr/APKBUILD38
-rw-r--r--user/firefox-esr/disable-arm-flac.patch15
-rw-r--r--user/firefox-esr/gcc13.patch10
-rw-r--r--user/fish/APKBUILD9
-rw-r--r--user/fluxbox/APKBUILD9
-rw-r--r--user/fluxbox/modern-c.patch25
-rw-r--r--user/freeglut/APKBUILD8
-rw-r--r--user/freetype/APKBUILD8
-rw-r--r--user/fuse3/APKBUILD6
-rw-r--r--user/gambit-c/0001-Avoid-fixnum-overflow-on-32-bit-machines-in-port-set.patch439
-rw-r--r--user/gambit-c/APKBUILD30
-rw-r--r--user/gambit-c/disable-srfi-179.patch21
-rw-r--r--user/gambit-c/remove-non-ascii-character-from-gambit-txi.patch22
-rw-r--r--user/gambit-c/s390.patch46
-rw-r--r--user/garcon/APKBUILD4
-rw-r--r--user/gcr3/APKBUILD39
-rw-r--r--user/gdbm/APKBUILD4
-rw-r--r--user/gigolo/APKBUILD4
-rw-r--r--user/gitlab-runner/APKBUILD29
-rw-r--r--user/gitlab-runner/clean-tmpdirs.patch21
-rw-r--r--user/gitlab-runner/disable-crap.patch7
-rw-r--r--user/gitlab-runner/fix-multiple-redef-seek.patch38
-rw-r--r--user/gitlab-runner/gccgo.patch60
-rw-r--r--user/gitlab-runner/posix-shell-escape.patch139
-rw-r--r--user/gitlab-runner/posix-shell.patch30
-rw-r--r--user/gitlab-runner/tests.patch47
-rw-r--r--user/glibmm/APKBUILD2
-rw-r--r--user/glm/APKBUILD20
-rw-r--r--user/gnucobol/APKBUILD2
-rw-r--r--user/gprbuild/APKBUILD25
-rw-r--r--user/grfcodec/APKBUILD26
-rw-r--r--user/grfcodec/va_copy.patch16
-rw-r--r--user/groff/APKBUILD5
-rw-r--r--user/grub/APKBUILD11
-rw-r--r--user/gsl/APKBUILD12
-rw-r--r--user/gsl/static-inline.patch12
-rw-r--r--user/gst-plugins-bad/APKBUILD6
-rw-r--r--user/gst-plugins-bad/fix-arm-parser-alignment.patch32
-rw-r--r--user/gtkmm+3.0/APKBUILD2
-rw-r--r--user/gucharmap/APKBUILD6
-rw-r--r--user/gvfs/APKBUILD45
-rw-r--r--user/gvim/APKBUILD20
-rw-r--r--user/hexchat/APKBUILD14
-rw-r--r--user/horizon/APKBUILD31
-rw-r--r--user/horizon/apm-disklabel.patch75
-rw-r--r--user/htop/APKBUILD19
-rw-r--r--user/htop/correctness.patch78
-rw-r--r--user/htop/fix-python-path.patch8
-rw-r--r--user/hyfetch/APKBUILD33
-rw-r--r--user/hyfetch/no-typing-extensions.patch21
-rw-r--r--user/hyfetch/python3.patch16
-rw-r--r--user/i3lock/APKBUILD29
-rw-r--r--user/icewm/APKBUILD4
-rw-r--r--user/iotop-c/APKBUILD27
-rw-r--r--user/irssi/APKBUILD4
-rw-r--r--user/kaffeine/APKBUILD2
-rw-r--r--user/kde/APKBUILD4
-rw-r--r--user/krb5/APKBUILD29
-rw-r--r--user/krb5/mit-krb5_krb5-config_LDFLAGS.patch12
-rw-r--r--user/kscreen/APKBUILD43
-rw-r--r--user/libcanberra/APKBUILD4
-rw-r--r--user/libcdio-paranoia/APKBUILD14
-rw-r--r--user/libcdio-paranoia/pkg-version-format.patch14
-rw-r--r--user/libebml/APKBUILD4
-rw-r--r--user/libetonyek/APKBUILD6
-rw-r--r--user/libevent/APKBUILD6
-rw-r--r--user/libfm-qt/APKBUILD6
-rw-r--r--user/libgnt/APKBUILD10
-rw-r--r--user/libgnt/ncurses.patch62
-rw-r--r--user/libgphoto2/APKBUILD4
-rw-r--r--user/libimobiledevice/APKBUILD38
-rw-r--r--user/libimobiledevice/modern-libplist.patch34
-rw-r--r--user/libixion/APKBUILD15
-rw-r--r--user/liblbxutil/APKBUILD9
-rw-r--r--user/liblbxutil/gcc10.patch18
-rw-r--r--user/liblxqt/APKBUILD10
-rw-r--r--user/liblxqt/revert-kwindowsystem-bump.patch40
-rw-r--r--user/libmspub/APKBUILD9
-rw-r--r--user/libmspub/missing-header.patch10
-rw-r--r--user/libnatpmp/APKBUILD4
-rw-r--r--user/libnih/APKBUILD6
-rw-r--r--user/libnih/gcc10.patch15
-rw-r--r--user/liborcus/APKBUILD15
-rw-r--r--user/libpfm/APKBUILD6
-rw-r--r--user/libplist/APKBUILD35
-rw-r--r--user/libptytty/APKBUILD43
-rw-r--r--user/libptytty/force-utmps.patch12
-rw-r--r--user/libqtxdg/APKBUILD4
-rw-r--r--user/libstaroffice/APKBUILD9
-rw-r--r--user/libstaroffice/mistake.patch22
-rw-r--r--user/libusbmuxd/APKBUILD34
-rw-r--r--user/libxfce4ui/APKBUILD4
-rw-r--r--user/libxfce4util/APKBUILD4
-rw-r--r--user/lighttpd/APKBUILD74
-rw-r--r--user/lighttpd/lighttpd.conf61
-rw-r--r--user/lighttpd/lighttpd.initd2
-rw-r--r--user/lilo/APKBUILD4
-rw-r--r--user/lilo/gcc10.patch51
-rw-r--r--user/livecd-support/APKBUILD56
-rw-r--r--user/livecd-support/allow-nullpw.start6
-rw-r--r--user/livecd-support/allow-nullpw.stop5
-rw-r--r--user/livecd-support/dhcpcd-suid.start5
-rw-r--r--user/livecd-support/horizon-ui4
-rw-r--r--user/livecd-support/horizon.desktop8
-rw-r--r--user/livecd-support/live.sudoersd3
-rw-r--r--user/livecd-support/livecd-support.post-deinstall3
-rw-r--r--user/livecd-support/livecd-support.post-install3
-rw-r--r--user/livecd-support/set-time.start5
-rw-r--r--user/livecd-support/xfce.sddm.conf3
-rw-r--r--user/llvm14/APKBUILD23
-rw-r--r--user/llvm14/graph-diff-simple.txt238
-rw-r--r--user/llvm14/musl-ppc64-elfv2.patch2
-rw-r--r--user/llvm14/ppc-gcc-bug.patch22
-rw-r--r--user/llvm18/APKBUILD328
-rw-r--r--user/llvm18/disable-FileSystemTest.CreateDir-perms-assert.patch61
-rw-r--r--user/llvm18/dwarf-info.patch28
-rw-r--r--user/llvm18/dyld-elf-ppc32.patch24
-rw-r--r--user/llvm18/hexagon.patch95
-rw-r--r--user/llvm18/i586-json-test.patch19
-rw-r--r--user/llvm18/llvm-fix-build-with-musl-libc.patch46
-rw-r--r--user/llvm18/m68k-endianness.patch26
-rw-r--r--user/llvm18/macho32.patch17
-rw-r--r--user/llvm18/musl-ppc64-elfv2.patch28
-rw-r--r--user/llvm18/ppc-gcc-bug.patch22
-rw-r--r--user/llvm18/python3-test.patch8
-rw-r--r--user/llvm18/roundeven.patch49
-rw-r--r--user/luarocks/APKBUILD15
-rw-r--r--user/luarocks/config.lua17
-rw-r--r--user/lximage-qt/APKBUILD4
-rw-r--r--user/lxqt-about/APKBUILD4
-rw-r--r--user/lxqt-admin/APKBUILD6
-rw-r--r--user/lxqt-archiver/APKBUILD6
-rw-r--r--user/lxqt-config/APKBUILD12
-rw-r--r--user/lxqt-config/revert-kscren-bump.patch57
-rw-r--r--user/lxqt-desktop/APKBUILD4
-rw-r--r--user/lxqt-globalkeys/APKBUILD6
-rw-r--r--user/lxqt-menu-data/APKBUILD40
-rw-r--r--user/lxqt-notificationd/APKBUILD10
-rw-r--r--user/lxqt-notificationd/revert-kwindowsystem-bump.patch32
-rw-r--r--user/lxqt-openssh-askpass/APKBUILD4
-rw-r--r--user/lxqt-panel/APKBUILD12
-rw-r--r--user/lxqt-panel/revert-kwindowsystem-bump.patch643
-rw-r--r--user/lxqt-policykit/APKBUILD6
-rw-r--r--user/lxqt-powermanagement/APKBUILD10
-rw-r--r--user/lxqt-powermanagement/revert-kwindowsystem-bump.patch32
-rw-r--r--user/lxqt-qtplugin/APKBUILD4
-rw-r--r--user/lxqt-runner/APKBUILD10
-rw-r--r--user/lxqt-runner/revert-kwindowsystem-bump.patch92
-rw-r--r--user/lxqt-session/APKBUILD6
-rw-r--r--user/lxqt-sudo/APKBUILD6
-rw-r--r--user/lynx/APKBUILD10
-rw-r--r--user/mariadb/APKBUILD4
-rw-r--r--user/mariadb/missing-header.patch12
-rw-r--r--user/mate-complete/APKBUILD6
-rw-r--r--user/mate-themes/APKBUILD34
-rw-r--r--user/mbedtls/APKBUILD9
-rw-r--r--user/mbedtls/fix-big-endian-alignment-tests.patch313
-rw-r--r--user/mdadm/0001-udev.c-Do-not-require-libudev.h-if-DNO_LIBUDEV.patch28
-rw-r--r--user/mdadm/APKBUILD18
-rw-r--r--user/mdadm/falloc.patch41
-rw-r--r--user/mdadm/missing-header.patch29
-rw-r--r--user/mdadm/sysmacros.patch31
-rw-r--r--user/mdadm/time64.patch2
-rw-r--r--user/mdds/APKBUILD13
-rw-r--r--user/menu-cache/APKBUILD9
-rw-r--r--user/menu-cache/gcc10.patch103
-rw-r--r--user/mesa/APKBUILD19
-rw-r--r--user/mesa/llvm-opaque.patch8467
-rw-r--r--user/mesa/llvm18.patch397
-rw-r--r--user/mesa/nouveau-flush-fix.patch11
-rw-r--r--user/meson/APKBUILD8
-rw-r--r--user/meson/meson-0.62.1-gettext-tiny.patch92
-rw-r--r--user/mimetic/APKBUILD10
-rw-r--r--user/mimetic/nullptr.patch11
-rw-r--r--user/minicom/APKBUILD4
-rw-r--r--user/miniupnpc/APKBUILD4
-rw-r--r--user/minizip/APKBUILD10
-rw-r--r--user/minizip/CVE-2023-45853.patch40
-rw-r--r--user/mosh/APKBUILD10
-rw-r--r--user/mosh/fix-ppc64le-build-with-musl.patch53
-rw-r--r--user/mousepad/APKBUILD4
-rw-r--r--user/musl-obstack/APKBUILD8
-rw-r--r--user/nano/APKBUILD6
-rw-r--r--user/ncftp/APKBUILD8
-rw-r--r--user/netqmail/APKBUILD33
-rw-r--r--user/netqmail/netqmail.initd10
-rw-r--r--user/netqmail/rename-mbox-man.patch162
-rw-r--r--user/netqmail/smtpd-notls.run4
-rw-r--r--user/netqmail/smtpd.run4
-rw-r--r--user/netsurf/APKBUILD6
-rw-r--r--user/netsurf/netsurf.desktop2
-rw-r--r--user/nettle/APKBUILD4
-rw-r--r--user/obconf-qt/APKBUILD4
-rw-r--r--user/olm/APKBUILD4
-rw-r--r--user/open-vm-tools/APKBUILD111
-rw-r--r--user/open-vm-tools/disable-werror.patch21
-rw-r--r--user/open-vm-tools/dndcp-portability.patch22
-rw-r--r--user/open-vm-tools/hgfs-portability.patch34
-rw-r--r--user/open-vm-tools/loff_t.patch11
-rw-r--r--user/open-vm-tools/open-vm-tools.confd2
-rw-r--r--user/open-vm-tools/open-vm-tools.initd60
-rw-r--r--user/open-vm-tools/poll-header.patch125
-rw-r--r--user/open-vm-tools/preadv.patch11
-rw-r--r--user/open-vm-tools/resolver.patch40
-rw-r--r--user/open-vm-tools/strerror_r.patch25
-rw-r--r--user/open-vm-tools/time64.patch58
-rw-r--r--user/open-vm-tools/vgauth-portability.patch49
-rw-r--r--user/open-vm-tools/vgauthd.initd6
-rw-r--r--user/open-vm-tools/vix.patch11
-rw-r--r--user/open-vm-tools/vmtoolsd.pamd6
-rw-r--r--user/openal-soft/APKBUILD8
-rw-r--r--user/opencv/APKBUILD9
-rw-r--r--user/opencv/fix-headers.manual-patch12
-rw-r--r--user/opengfx/APKBUILD2
-rw-r--r--user/openttd/APKBUILD2
-rw-r--r--user/openvpn/APKBUILD11
-rw-r--r--user/otf-source-code-pro/APKBUILD12
-rw-r--r--user/otf-source-sans-pro/APKBUILD4
-rw-r--r--user/pangomm/APKBUILD2
-rw-r--r--user/parole/APKBUILD4
-rw-r--r--user/pavucontrol-qt/APKBUILD8
-rw-r--r--user/pcmanfm-qt/APKBUILD8
-rw-r--r--user/perl-app-licensecheck/APKBUILD6
-rw-r--r--user/perl-b-hooks-endofscope/APKBUILD4
-rw-r--r--user/perl-cgi/APKBUILD4
-rw-r--r--user/perl-code-tidyall/APKBUILD4
-rw-r--r--user/perl-commandable/APKBUILD7
-rw-r--r--user/perl-convert-color/APKBUILD6
-rw-r--r--user/perl-cookie-baker/APKBUILD4
-rw-r--r--user/perl-cpan-changes/APKBUILD6
-rw-r--r--user/perl-cpan-meta-check/APKBUILD4
-rw-r--r--user/perl-data-optlist/APKBUILD4
-rw-r--r--user/perl-datetime-locale/APKBUILD4
-rw-r--r--user/perl-datetime-timezone/APKBUILD12
-rw-r--r--user/perl-datetime/APKBUILD4
-rw-r--r--user/perl-dbd-pg/APKBUILD6
-rw-r--r--user/perl-devel-stacktrace/APKBUILD4
-rw-r--r--user/perl-email-abstract/APKBUILD4
-rw-r--r--user/perl-email-sender/APKBUILD4
-rw-r--r--user/perl-exporter-tiny/APKBUILD4
-rw-r--r--user/perl-extutils-cppguess/APKBUILD11
-rw-r--r--user/perl-extutils-cppguess/fix.patch60
-rw-r--r--user/perl-extutils-parsexs/APKBUILD6
-rw-r--r--user/perl-feature-compat-class/APKBUILD4
-rw-r--r--user/perl-file-copy-recursive-reduced/APKBUILD4
-rw-r--r--user/perl-file-find-object/APKBUILD4
-rw-r--r--user/perl-file-mimeinfo/APKBUILD4
-rw-r--r--user/perl-games-solitaire-verify/APKBUILD4
-rw-r--r--user/perl-gd/APKBUILD5
-rw-r--r--user/perl-getopt-long-descriptive/APKBUILD4
-rw-r--r--user/perl-graphics-toolkit-color/APKBUILD4
-rw-r--r--user/perl-io-interactive/APKBUILD4
-rw-r--r--user/perl-io-tty/APKBUILD4
-rw-r--r--user/perl-ipc-run/APKBUILD4
-rw-r--r--user/perl-lib-relative/APKBUILD4
-rw-r--r--user/perl-log-any-adapter-screen/APKBUILD4
-rw-r--r--user/perl-log-any/APKBUILD4
-rw-r--r--user/perl-lwp-protocol-https/APKBUILD4
-rw-r--r--user/perl-mime-types/APKBUILD4
-rw-r--r--user/perl-moose/APKBUILD4
-rw-r--r--user/perl-moosex-getopt/APKBUILD4
-rw-r--r--user/perl-mozilla-ca/APKBUILD6
-rw-r--r--user/perl-object-pad/APKBUILD8
-rw-r--r--user/perl-perl-tidy/APKBUILD4
-rw-r--r--user/perl-plack/APKBUILD4
-rw-r--r--user/perl-pod-parser/APKBUILD4
-rw-r--r--user/perl-posix-strftime-compiler/APKBUILD4
-rw-r--r--user/perl-re-engine-re2/APKBUILD4
-rw-r--r--user/perl-regexp-pattern-license/APKBUILD4
-rw-r--r--user/perl-software-license/APKBUILD4
-rw-r--r--user/perl-string-license/APKBUILD4
-rw-r--r--user/perl-string-tagged-terminal/APKBUILD4
-rw-r--r--user/perl-string-tagged/APKBUILD4
-rw-r--r--user/perl-sub-exporter/APKBUILD4
-rw-r--r--user/perl-sub-handlesvia/APKBUILD4
-rw-r--r--user/perl-sub-name/APKBUILD4
-rw-r--r--user/perl-syntax-keyword-match/APKBUILD6
-rw-r--r--user/perl-syntax-keyword-try/APKBUILD6
-rw-r--r--user/perl-term-table/APKBUILD4
-rw-r--r--user/perl-test-differences/APKBUILD4
-rw-r--r--user/perl-test-manifest/APKBUILD4
-rw-r--r--user/perl-test-output/APKBUILD4
-rw-r--r--user/perl-test2-suite/APKBUILD4
-rw-r--r--user/perl-type-tiny/APKBUILD4
-rw-r--r--user/perl-x11-xcb/APKBUILD6
-rw-r--r--user/perl-xml-parser/APKBUILD4
-rw-r--r--user/perl-xs-parse-keyword/APKBUILD5
-rw-r--r--user/perl-xs-parse-sublike/APKBUILD6
-rw-r--r--user/perl-yaml-libyaml/APKBUILD6
-rw-r--r--user/perl-yaml-pp/APKBUILD8
-rw-r--r--user/phonon-vlc/APKBUILD2
-rw-r--r--user/phonon/APKBUILD2
-rw-r--r--user/pidgin/APKBUILD10
-rw-r--r--user/pidgin/pidgin-2.14.8-libpurple_test_fix.patch52
-rw-r--r--user/plasma-desktop/APKBUILD9
-rw-r--r--user/plasma-desktop/remove-discover-from-taskmanager.patch16
-rw-r--r--user/plasma-meta/APKBUILD5
-rw-r--r--user/polkit/0001-make-netgroup-support-optional.patch250
-rw-r--r--user/polkit/APKBUILD55
-rw-r--r--user/polkit/fix-consolekit-db-stat.patch6
-rw-r--r--user/polkit/polkit-0.115-elogind.patch28
-rw-r--r--user/postfix/APKBUILD12
-rw-r--r--user/postfix/honour-config-directory.patch2
-rw-r--r--user/postfix/linux-6.patch24
-rw-r--r--user/py3-distutils-extra/APKBUILD4
-rw-r--r--user/py3-pexpect/APKBUILD4
-rw-r--r--user/py3-pycairo/APKBUILD4
-rw-r--r--user/py3-pygobject/APKBUILD4
-rw-r--r--user/qca/APKBUILD11
-rw-r--r--user/qca/gcc11.patch26
-rw-r--r--user/qca/test.patch77
-rw-r--r--user/qps/APKBUILD7
-rw-r--r--user/qt-creator/APKBUILD10
-rw-r--r--user/qt-creator/cstdint.patch27
-rw-r--r--user/qt5-qtbase/APKBUILD2
-rw-r--r--user/qt5-qtwebkit/APKBUILD4
-rw-r--r--user/qt5-qtwebkit/missing-header.patch11
-rw-r--r--user/qt5ct/APKBUILD4
-rw-r--r--user/qterminal/APKBUILD6
-rw-r--r--user/qtermwidget/APKBUILD4
-rw-r--r--user/qtxdg-tools/APKBUILD6
-rw-r--r--user/quassel/APKBUILD29
-rw-r--r--user/range-v3/APKBUILD4
-rw-r--r--user/readstat/APKBUILD13
-rw-r--r--user/readstat/big-endian.patch76
-rw-r--r--user/readstat/buf-overflow.patch26
-rw-r--r--user/readstat/use-after-free.patch37
-rw-r--r--user/recode/APKBUILD2
-rw-r--r--user/redis/APKBUILD4
-rw-r--r--user/ripgrep/APKBUILD5
-rw-r--r--user/ristretto/APKBUILD4
-rw-r--r--user/rspamd/10-conf-split-workers.patch2
-rw-r--r--user/rspamd/APKBUILD13
-rw-r--r--user/rttr/APKBUILD16
-rw-r--r--user/rttr/clang.patch141
-rw-r--r--user/rttr/gcc9.patch103
-rw-r--r--user/rttr/header.patch21
-rw-r--r--user/rttr/no-pessimising-moves.patch65
-rw-r--r--user/rttr/show-warnings-not-error-out.patch16
-rw-r--r--user/rxvt-unicode/APKBUILD16
-rw-r--r--user/rxvt-unicode/kerning.patch2
-rw-r--r--user/s6-dns/APKBUILD42
-rw-r--r--user/s6-linux-utils/APKBUILD20
-rw-r--r--user/s6-networking/APKBUILD46
-rw-r--r--user/s6-portable-utils/APKBUILD19
-rw-r--r--user/sane/APKBUILD19
-rw-r--r--user/sane/BTS-304.patch6
-rw-r--r--user/sane/endian.patch26
-rw-r--r--user/sane/network.patch6
-rw-r--r--user/sane/pidfile.patch2
-rw-r--r--user/screengrab/APKBUILD11
-rw-r--r--user/screengrab/revert-kwindowsystem-bump.patch899
-rw-r--r--user/seatd/APKBUILD19
-rw-r--r--user/smtpd-starttls-proxy/APKBUILD10
-rw-r--r--user/sonnet/APKBUILD2
-rw-r--r--user/spack/APKBUILD68
-rw-r--r--user/spack/clingo-explicit-libatomic.patch12
-rw-r--r--user/spack/config.yaml22
-rw-r--r--user/spack/default-adelie-upstream-git.patch27
-rw-r--r--user/spack/default-no-buildcache.patch13
-rw-r--r--user/spack/openssl-explicit-linux-headers.patch12
-rw-r--r--user/spack/spack.post-install28
-rw-r--r--user/spectrwm/APKBUILD4
-rw-r--r--user/spice-gtk/APKBUILD15
-rw-r--r--user/spice-protocol/APKBUILD6
-rw-r--r--user/squashfs-tools/APKBUILD15
-rw-r--r--user/squashfs-tools/fix-compat.patch28
-rw-r--r--user/strongswan/APKBUILD9
-rw-r--r--user/supertux/APKBUILD6
-rw-r--r--user/supertux/zip-header.patch30
-rw-r--r--user/swig/APKBUILD15
-rw-r--r--user/swig/fix-overload-simple-cast-test.patch23
-rw-r--r--user/terminus-font/APKBUILD7
-rw-r--r--user/the_silver_searcher/APKBUILD14
-rw-r--r--user/the_silver_searcher/no-common.patch207
-rw-r--r--user/the_silver_searcher/pattern-fix.patch78
-rw-r--r--user/the_silver_searcher/pipe-symlink.patch26
-rw-r--r--user/thunar-archive-plugin/APKBUILD4
-rw-r--r--user/thunar/APKBUILD4
-rw-r--r--user/thunderbird/APKBUILD36
-rw-r--r--user/thunderbird/disable-arm-flac.patch15
-rw-r--r--user/thunderbird/gcc13.patch10
-rw-r--r--user/tigervnc/0001-CSecurityTLS-Use-size_t-as-argument-for-new.patch66
-rw-r--r--user/tigervnc/APKBUILD13
-rw-r--r--user/tigervnc/use-intltool.patch32
-rw-r--r--user/tipidee/APKBUILD89
-rw-r--r--user/tipidee/httpd.run19
-rw-r--r--user/tipidee/httpsd.run23
-rw-r--r--user/tipidee/logger.run5
-rw-r--r--user/tipidee/tipidee.conf18
-rw-r--r--user/tipidee/tipidee.confd33
-rw-r--r--user/tipidee/tipidee.initd64
-rw-r--r--user/tipidee/tipidee.post-deinstall3
-rw-r--r--user/tipidee/tipidee.post-install3
-rw-r--r--user/tipidee/tipidee.pre-install7
-rw-r--r--user/ttf-sudo/APKBUILD4
-rw-r--r--user/ttf-terminus/APKBUILD4
-rw-r--r--user/tumbler/APKBUILD4
-rw-r--r--user/unicode-data/APKBUILD38
-rw-r--r--user/uptimed/APKBUILD4
-rw-r--r--user/v4l-utils/APKBUILD54
-rw-r--r--user/v4l-utils/getsubopt.patch35
-rw-r--r--user/v4l-utils/qv4l2.desktop12
-rw-r--r--user/v4l-utils/qv4l2.svg31
-rw-r--r--user/v4l-utils/time64.patch11
-rw-r--r--user/v4l-utils/types.patch26
-rw-r--r--user/vlc/APKBUILD6
-rw-r--r--user/volume_key/APKBUILD6
-rw-r--r--user/vte/APKBUILD6
-rw-r--r--user/vte/gcc-volatile.patch45
-rw-r--r--user/weechat/APKBUILD4
-rw-r--r--user/wget/APKBUILD4
-rw-r--r--user/x11vnc/APKBUILD8
-rw-r--r--user/x11vnc/gcc10.patch42
-rw-r--r--user/xapian-core/APKBUILD9
-rw-r--r--user/xapian-core/sortable-serialise.patch15
-rw-r--r--user/xf86-video-amdgpu/APKBUILD6
-rw-r--r--user/xf86-video-ati/APKBUILD11
-rw-r--r--user/xf86-video-ati/null-deref-exa.patch77
-rw-r--r--user/xf86-video-geode/APKBUILD11
-rw-r--r--user/xf86-video-geode/loader.patch48
-rw-r--r--user/xf86-video-geode/randr.patch30
-rw-r--r--user/xf86-video-intel/APKBUILD7
-rw-r--r--user/xf86-video-intel/fno-common.patch24
-rw-r--r--user/xf86-video-openchrome/APKBUILD1
-rw-r--r--user/xf86-video-r128/0001-Fix-output-detection-on-non-x86-and-allow-override.patch197
-rw-r--r--user/xf86-video-r128/0002-Only-try-to-init-XAA-when-XAA-is-available.patch34
-rw-r--r--user/xf86-video-r128/0003-Disable-Int10-support-on-all-non-x86-arches.patch48
-rw-r--r--user/xf86-video-r128/APKBUILD14
-rw-r--r--user/xf86-video-r128/xaa.patch21
-rw-r--r--user/xf86-video-vmware/APKBUILD11
-rw-r--r--user/xfce-desktop/APKBUILD4
-rw-r--r--user/xfce4-clipman-plugin/APKBUILD4
-rw-r--r--user/xfce4-dev-tools/APKBUILD6
-rw-r--r--user/xfce4-dict/APKBUILD4
-rw-r--r--user/xfce4-docklike-plugin/APKBUILD4
-rw-r--r--user/xfce4-notes-plugin/APKBUILD4
-rw-r--r--user/xfce4-notifyd/APKBUILD4
-rw-r--r--user/xfce4-panel/APKBUILD4
-rw-r--r--user/xfce4-power-manager/APKBUILD4
-rw-r--r--user/xfce4-pulseaudio-plugin/APKBUILD4
-rw-r--r--user/xfce4-screenshooter/APKBUILD4
-rw-r--r--user/xfce4-settings/APKBUILD4
-rw-r--r--user/xfce4-taskmanager/APKBUILD4
-rw-r--r--user/xfce4-terminal/APKBUILD4
-rw-r--r--user/xfce4-whiskermenu-plugin/APKBUILD4
-rw-r--r--user/xfconf/APKBUILD4
-rw-r--r--user/xgc/APKBUILD2
-rw-r--r--user/xmlsec/APKBUILD10
-rw-r--r--user/xmlsec/testrun.patch11
-rw-r--r--user/xmoto/APKBUILD4
-rw-r--r--user/xorg-server/APKBUILD8
-rw-r--r--user/xorg-server/gcc12.patch89
-rw-r--r--user/xorg-server/rgb-mask.patch70
-rw-r--r--user/xsane/APKBUILD2
-rw-r--r--user/xscreensaver/APKBUILD4
-rw-r--r--user/xsv/APKBUILD5
-rw-r--r--user/xterm/APKBUILD8
-rw-r--r--user/yubikey-personalization/APKBUILD10
-rw-r--r--user/yubikey-personalization/gcc10.patch25
-rw-r--r--user/yubikey-personalization/uninit.patch204
-rw-r--r--user/yubikey-personalization/wipe-mem.patch29
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(&params, 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, &centroid_x_offset,
+ &centroid_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(&params, 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(&params, 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(&params, 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="{&quot;project_files_url&quot;:&quot;/mesa/mesa/-/files/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0?format=json&quot;,&quot;project_blob_url&quot;:&quot;/mesa/mesa/-/blob/b3cfec2fd824a52023c92fd5928f4f5c1cb449a0&quot;}" data-force-desktop-expanded-sidebar="" data-root-path="/" data-sidebar="{&quot;is_logged_in&quot;:false,&quot;context_switcher_links&quot;:[{&quot;title&quot;:&quot;Explore&quot;,&quot;link&quot;:&quot;/explore&quot;,&quot;icon&quot;:&quot;compass&quot;}],&quot;current_menu_items&quot;:[{&quot;id&quot;:&quot;project_overview&quot;,&quot;title&quot;:&quot;mesa&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:&quot;/uploads/-/system/project/avatar/176/gears.png&quot;,&quot;entity_id&quot;:176,&quot;link&quot;:&quot;/mesa/mesa&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:&quot;shortcuts-project&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;manage_menu&quot;,&quot;title&quot;:&quot;Manage&quot;,&quot;icon&quot;:&quot;users&quot;,&quot;avatar&quot;:null,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/activity&quot;,&quot;is_active&quot;:false,&quot;pill_count&quot;:null,&quot;items&quot;:[{&quot;id&quot;:&quot;activity&quot;,&quot;title&quot;:&quot;Activity&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/activity&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:&quot;shortcuts-project-activity&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;members&quot;,&quot;title&quot;:&quot;Members&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/project_members&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:null,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;labels&quot;,&quot;title&quot;:&quot;Labels&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/labels&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:null,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;plan_menu&quot;,&quot;title&quot;:&quot;Plan&quot;,&quot;icon&quot;:&quot;planning&quot;,&quot;avatar&quot;:null,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/issues&quot;,&quot;is_active&quot;:false,&quot;pill_count&quot;:null,&quot;items&quot;:[{&quot;id&quot;:&quot;project_issue_list&quot;,&quot;title&quot;:&quot;Issues&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/issues&quot;,&quot;pill_count&quot;:&quot;3.7k&quot;,&quot;link_classes&quot;:&quot;shortcuts-issues has-sub-items&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;boards&quot;,&quot;title&quot;:&quot;Issue boards&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/boards&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:&quot;shortcuts-issue-boards&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;milestones&quot;,&quot;title&quot;:&quot;Milestones&quot;,&quot;icon&quot;:null,&quot;avatar&quot;:null,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/milestones&quot;,&quot;pill_count&quot;:null,&quot;link_classes&quot;:null,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;code_menu&quot;,&quot;title&quot;:&quot;Code&quot;,&quot;icon&quot;:&quot;code&quot;,&quot;avatar&quot;:null,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;entity_id&quot;:null,&quot;link&quot;:&quot;/mesa/mesa/-/merge_requests&quot;,&quot;is_active&quot;:true,&quot;pill_count&quot;:null,&quot;items&quot;:[{&quot;id&quot;:&quot;project_merge_request_list&quot;,&quot;title&quot;:&quot;Merge requests&quot;,&quot;icon&quot;: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(&quot;#linearGradient2969&quot;) 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;
+ }